From 1fd93eed90ec4015201a98f7eb31748d66605d8b Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 17 Apr 2024 17:44:40 +0200 Subject: [PATCH] Improve top level await coverage (#64508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What? - Changes webpack output target to `es6` (required for `async function` output) - Adds tests for top level await in server components and client components (App Router) - Converted the async-modules tests to `test/e2e` - Has one skipped test that @gnoff is going to look into. This shouldn't block merging this PR 👍 Adds additional tests for top level `await`. Since [Next.js 13.4.5](https://github.com/vercel/next.js/releases/tag/v13.4.5) webpack has top level await support enabled by default. Similarly Turbopack supports top level await by default as well. TLDR: You can remove `topLevelAwait: true` from the webpack configuration. In writing these tests I found that client components are missing some kind of handling for top level await (async modules) so I've raised that to @gnoff who is going to have a look. Closes NEXT-3126 Fixes https://github.com/vercel/next.js/issues/43382 --- .eslintignore | 1 + .prettierignore | 1 + .../src/build/webpack/config/blocks/base.ts | 2 +- .../typescript/writeConfigurationDefaults.ts | 14 +- .../client-component/skipped-page.tsx | 6 + .../async-modules-app/app/app-router/page.tsx | 5 + test/e2e/async-modules-app/app/layout.tsx | 16 + test/e2e/async-modules-app/index.test.ts | 21 + test/e2e/async-modules-app/next.config.js | 1 + test/e2e/async-modules/amp-validator-wasm.js | 2254 +++++++++++++++++ test/e2e/async-modules/index.test.ts | 60 + test/e2e/async-modules/next.config.js | 7 + .../async-modules/pages/404.jsx | 0 .../async-modules/pages/_app.jsx | 0 .../async-modules/pages/_document.jsx | 0 .../async-modules/pages/_error.jsx | 0 .../async-modules/pages/api/hello.js | 0 .../async-modules/pages/config.jsx | 0 .../async-modules/pages/gsp.jsx | 0 .../async-modules/pages/gssp.jsx | 0 .../async-modules/pages/index.jsx | 0 .../async-modules/pages/make-error.jsx | 0 .../tsconfig-module-preserve/index.test.ts | 1 + test/integration/async-modules/next.config.js | 12 - .../async-modules/test/index.test.js | 136 - .../tsconfig-verifier/test/index.test.js | 844 +++--- 26 files changed, 2817 insertions(+), 564 deletions(-) create mode 100644 test/e2e/async-modules-app/app/app-router/client-component/skipped-page.tsx create mode 100644 test/e2e/async-modules-app/app/app-router/page.tsx create mode 100644 test/e2e/async-modules-app/app/layout.tsx create mode 100644 test/e2e/async-modules-app/index.test.ts create mode 100644 test/e2e/async-modules-app/next.config.js create mode 100644 test/e2e/async-modules/amp-validator-wasm.js create mode 100644 test/e2e/async-modules/index.test.ts create mode 100644 test/e2e/async-modules/next.config.js rename test/{integration => e2e}/async-modules/pages/404.jsx (100%) rename test/{integration => e2e}/async-modules/pages/_app.jsx (100%) rename test/{integration => e2e}/async-modules/pages/_document.jsx (100%) rename test/{integration => e2e}/async-modules/pages/_error.jsx (100%) rename test/{integration => e2e}/async-modules/pages/api/hello.js (100%) rename test/{integration => e2e}/async-modules/pages/config.jsx (100%) rename test/{integration => e2e}/async-modules/pages/gsp.jsx (100%) rename test/{integration => e2e}/async-modules/pages/gssp.jsx (100%) rename test/{integration => e2e}/async-modules/pages/index.jsx (100%) rename test/{integration => e2e}/async-modules/pages/make-error.jsx (100%) delete mode 100644 test/integration/async-modules/next.config.js delete mode 100644 test/integration/async-modules/test/index.test.js diff --git a/.eslintignore b/.eslintignore index 7e2800e2acb9..d9ff00758757 100644 --- a/.eslintignore +++ b/.eslintignore @@ -42,3 +42,4 @@ test/development/basic/hmr/components/parse-error.js packages/next-swc/docs/assets/**/* test/lib/amp-validator-wasm.js test/production/pages-dir/production/fixture/amp-validator-wasm.js +test/e2e/async-modules/amp-validator-wasm.js diff --git a/.prettierignore b/.prettierignore index d78b968e08f6..a297d08637c3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -39,3 +39,4 @@ bench/nested-deps/components/**/* **/.tina/__generated__/** test/lib/amp-validator-wasm.js test/production/pages-dir/production/fixture/amp-validator-wasm.js +test/e2e/async-modules/amp-validator-wasm.js diff --git a/packages/next/src/build/webpack/config/blocks/base.ts b/packages/next/src/build/webpack/config/blocks/base.ts index 522fe745dbef..7cac0d9addd6 100644 --- a/packages/next/src/build/webpack/config/blocks/base.ts +++ b/packages/next/src/build/webpack/config/blocks/base.ts @@ -18,7 +18,7 @@ export const base = curry(function base( ? 'node18.17' // Same version defined in packages/next/package.json#engines : ctx.isEdgeRuntime ? ['web', 'es6'] - : ['web', 'es5'] + : ['web', 'es6'] // https://webpack.js.org/configuration/devtool/#development if (ctx.isDevelopment) { diff --git a/packages/next/src/lib/typescript/writeConfigurationDefaults.ts b/packages/next/src/lib/typescript/writeConfigurationDefaults.ts index ef0718fab1b6..607bf0d501ed 100644 --- a/packages/next/src/lib/typescript/writeConfigurationDefaults.ts +++ b/packages/next/src/lib/typescript/writeConfigurationDefaults.ts @@ -9,7 +9,7 @@ import * as Log from '../../build/output/log' type DesiredCompilerOptionsShape = { [K in keyof CompilerOptions]: - | { suggested: any } + | { suggested: any; reason?: string } | { parsedValue?: any parsedValues?: Array @@ -23,6 +23,11 @@ function getDesiredCompilerOptions( tsOptions?: CompilerOptions ): DesiredCompilerOptionsShape { const o: DesiredCompilerOptionsShape = { + target: { + suggested: 'ES2017', + reason: + 'For top-level `await`. Note: Next.js only polyfills for the esmodules target.', + }, // These are suggested values and will be set when not present in the // tsconfig.json lib: { suggested: ['dom', 'dom.iterable', 'esnext'] }, @@ -168,7 +173,12 @@ export async function writeConfigurationDefaults( } userTsConfig.compilerOptions[optionKey] = check.suggested suggestedActions.push( - cyan(optionKey) + ' was set to ' + bold(check.suggested) + cyan(optionKey) + + ' was set to ' + + bold(check.suggested) + + check.reason + ? ` (${check.reason})` + : '' ) } } else if ('value' in check) { diff --git a/test/e2e/async-modules-app/app/app-router/client-component/skipped-page.tsx b/test/e2e/async-modules-app/app/app-router/client-component/skipped-page.tsx new file mode 100644 index 000000000000..9d7b4e20bb99 --- /dev/null +++ b/test/e2e/async-modules-app/app/app-router/client-component/skipped-page.tsx @@ -0,0 +1,6 @@ +'use client' +const appValue = await Promise.resolve('hello') + +export default function Page() { + return

{appValue}

+} diff --git a/test/e2e/async-modules-app/app/app-router/page.tsx b/test/e2e/async-modules-app/app/app-router/page.tsx new file mode 100644 index 000000000000..ea5ffde5d5c3 --- /dev/null +++ b/test/e2e/async-modules-app/app/app-router/page.tsx @@ -0,0 +1,5 @@ +const appValue = await Promise.resolve('hello') + +export default function Page() { + return

{appValue}

+} diff --git a/test/e2e/async-modules-app/app/layout.tsx b/test/e2e/async-modules-app/app/layout.tsx new file mode 100644 index 000000000000..a14e64fcd5e3 --- /dev/null +++ b/test/e2e/async-modules-app/app/layout.tsx @@ -0,0 +1,16 @@ +export const metadata = { + title: 'Next.js', + description: 'Generated by Next.js', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/test/e2e/async-modules-app/index.test.ts b/test/e2e/async-modules-app/index.test.ts new file mode 100644 index 000000000000..def810e6430d --- /dev/null +++ b/test/e2e/async-modules-app/index.test.ts @@ -0,0 +1,21 @@ +/* eslint-env jest */ +import { nextTestSetup } from 'e2e-utils' + +describe('Async modules', () => { + const { next } = nextTestSetup({ + files: __dirname, + }) + it('app router server component async module', async () => { + const browser = await next.browser('/app-router') + expect(await browser.elementByCss('#app-router-value').text()).toBe('hello') + }) + + // TODO: Investigate/fix issue with React loading async modules failing. + // Rename app/app-router/client-component/skipped-page.tsx to app/app-router/client-component/page.tsx to run this test. + it.skip('app router client component async module', async () => { + const browser = await next.browser('/app-router/client') + expect( + await browser.elementByCss('#app-router-client-component-value').text() + ).toBe('hello') + }) +}) diff --git a/test/e2e/async-modules-app/next.config.js b/test/e2e/async-modules-app/next.config.js new file mode 100644 index 000000000000..4ba52ba2c8df --- /dev/null +++ b/test/e2e/async-modules-app/next.config.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/test/e2e/async-modules/amp-validator-wasm.js b/test/e2e/async-modules/amp-validator-wasm.js new file mode 100644 index 000000000000..f2226efcfb54 --- /dev/null +++ b/test/e2e/async-modules/amp-validator-wasm.js @@ -0,0 +1,2254 @@ +(function(){var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b>>0,$jscomp.propertyToPolyfillSymbol[d]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.global.Symbol(d):$jscomp.POLYFILL_PREFIX+e+"$"+d),e=$jscomp.propertyToPolyfillSymbol[d],$jscomp.defineProperty(a,e,{configurable:!0,writable:!0,value:b})))};$jscomp.initSymbol=function(){}; +$jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(f,g){this.$jscomp$symbol$id_=f;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:g})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};a=1E9*Math.random()>>>0;var c="jscomp_symbol_"+a+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e},"es6","es3"); +$jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cb?-c:c}},"es6","es3");$jscomp.polyfill("Math.log2",function(a){return a?a:a=function(b){return Math.log(b)/Math.LN2}},"es6","es3");$jscomp.polyfill("Object.values",function(a){return a?a:a=function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push(b[d]);return c}},"es8","es3"); +$jscomp.polyfill("Object.is",function(a){return a?a:a=function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}},"es6","es3");$jscomp.polyfill("Array.prototype.includes",function(a){return a?a:a=function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));cc&&(c=Math.max(0,e+c));if(null==d||d>e)d=e;d=Number(d);0>d&&(d=Math.max(0,e+d));for(c=Number(c||0);c=e}},"es6","es3"); +$jscomp.polyfill("String.prototype.startsWith",function(a){return a?a:a=function(b,c){var d=$jscomp.checkStringArgs(this,b,"startsWith");b+="";var e=d.length,f=b.length;c=Math.max(0,Math.min(c|0,d.length));for(var g=0;g=f}},"es6","es3"); +$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:a=function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279>>=1)c+=c;return d}},"es6","es3");$jscomp.polyfill("globalThis",function(a){return a||$jscomp.global},"es_2020","es3"); +$jscomp.polyfill("Array.prototype.copyWithin",function(a){function b(c){c=Number(c);return Infinity===c||-Infinity===c?c:c|0}return a?a:a=function(c,d,e){var f=this.length;c=b(c);d=b(d);e=void 0===e?f:b(e);c=0>c?Math.max(f+c,0):Math.min(c,f);d=0>d?Math.max(f+d,0):Math.min(d,f);e=0>e?Math.max(f+e,0):Math.min(e,f);if(cd;)--e in this?this[--c]=this[e]:delete this[--c];return this}},"es6","es3"); +$jscomp.typedArrayCopyWithin=function(a){return a?a:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +var CLOSURE_TOGGLE_ORDINALS={GoogFlags__async_throw_on_unicode_to_byte__enable:!1,GoogFlags__client_only_wiz_attribute_sanitization__disable:!1,GoogFlags__client_only_wiz_hook_context_fix__enable:!1,GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable:!1,GoogFlags__override_disable_toggles:!1,GoogFlags__testonly_debug_flag__enable:!1,GoogFlags__testonly_disabled_flag__enable:!1,GoogFlags__testonly_stable_flag__disable:!1,GoogFlags__testonly_staging_flag__disable:!1,GoogFlags__use_toggles:!1, +GoogFlags__use_user_agent_client_hints__enable:!1};/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ +var goog=goog||{};goog.global=this||self;goog.exportPath_=function(a,b,c,d){a=a.split(".");d=d||goog.global;a[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)if(a.length||void 0===b)d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={};else if(!c&&goog.isObject(b)&&goog.isObject(d[e]))for(var f in b)b.hasOwnProperty(f)&&(d[e][f]=b[f]);else d[e]=b};goog.define=function(a,b){return a=b};goog.FEATURESET_YEAR=2012;goog.DEBUG=!0;goog.LOCALE="en"; +goog.TRUSTED_SITE=!0;goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.readFlagInternalDoNotUseOrElse=function(a,b){var c=goog.getObjectByName(goog.FLAGS_OBJECT_);a=c&&c[a];return null!=a?a:b};goog.FLAGS_OBJECT_="CLOSURE_FLAGS";goog.FLAGS_STAGING_DEFAULT=!0; +goog.readToggleInternalDoNotCallDirectly=function(a){var b="object"===typeof CLOSURE_TOGGLE_ORDINALS?CLOSURE_TOGGLE_ORDINALS:void 0;a=b&&b[a];return"number"!==typeof a?!!a:!!(goog.TOGGLES_[Math.floor(a/30)]&1<>>0);goog.uidCounter_=0; +goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if("function"===typeof a.clone)return a.clone();if("undefined"!==typeof Map&&a instanceof Map)return new Map(a);if("undefined"!==typeof Set&&a instanceof Set)return new Set(a);b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)}; +goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2").replace(/'/g,"'").replace(/"/g,'"').replace(/&/g,"&"));b&&(a=a.replace(/\{\$([^}]+)}/g,function(d,e){return null!=b&&e in b?b[e]:d}));return a};goog.getMsgWithFallback=function(a){return a}; +goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,!0,c)};goog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h=a} +function module$contents$jspb$BinaryConstants_FieldTypeToWireType(a){switch(a){case module$exports$jspb$BinaryConstants.FieldType.INT32:case module$exports$jspb$BinaryConstants.FieldType.INT64:case module$exports$jspb$BinaryConstants.FieldType.UINT32:case module$exports$jspb$BinaryConstants.FieldType.UINT64:case module$exports$jspb$BinaryConstants.FieldType.SINT32:case module$exports$jspb$BinaryConstants.FieldType.SINT64:case module$exports$jspb$BinaryConstants.FieldType.BOOL:case module$exports$jspb$BinaryConstants.FieldType.ENUM:return module$exports$jspb$BinaryConstants.WireType.VARINT;case module$exports$jspb$BinaryConstants.FieldType.DOUBLE:case module$exports$jspb$BinaryConstants.FieldType.FIXED64:case module$exports$jspb$BinaryConstants.FieldType.SFIXED64:return module$exports$jspb$BinaryConstants.WireType.FIXED64; +case module$exports$jspb$BinaryConstants.FieldType.STRING:case module$exports$jspb$BinaryConstants.FieldType.MESSAGE:case module$exports$jspb$BinaryConstants.FieldType.BYTES:return module$exports$jspb$BinaryConstants.WireType.DELIMITED;case module$exports$jspb$BinaryConstants.FieldType.FLOAT:case module$exports$jspb$BinaryConstants.FieldType.FIXED32:case module$exports$jspb$BinaryConstants.FieldType.SFIXED32:return module$exports$jspb$BinaryConstants.WireType.FIXED32;default:return module$exports$jspb$BinaryConstants.WireType.INVALID}} +module$exports$jspb$BinaryConstants.INVALID_FIELD_NUMBER=-1;module$exports$jspb$BinaryConstants.INVALID_TAG=-1;module$exports$jspb$BinaryConstants.FLOAT32_EPS=1.401298464324817E-45;module$exports$jspb$BinaryConstants.FLOAT32_MIN=1.1754943508222875E-38;module$exports$jspb$BinaryConstants.FLOAT32_MAX=3.4028234663852886E38;module$exports$jspb$BinaryConstants.FLOAT64_EPS=4.9E-324;module$exports$jspb$BinaryConstants.FLOAT64_MIN=2.2250738585072014E-308;module$exports$jspb$BinaryConstants.FLOAT64_MAX=1.7976931348623157E308; +module$exports$jspb$BinaryConstants.TWO_TO_20=1048576;module$exports$jspb$BinaryConstants.TWO_TO_23=8388608;module$exports$jspb$BinaryConstants.TWO_TO_31=2147483648;module$exports$jspb$BinaryConstants.TWO_TO_32=4294967296;module$exports$jspb$BinaryConstants.TWO_TO_52=4503599627370496;module$exports$jspb$BinaryConstants.TWO_TO_63=0x7fffffffffffffff;module$exports$jspb$BinaryConstants.TWO_TO_64=1.8446744073709552E19;module$exports$jspb$BinaryConstants.ZERO_HASH="\x00\x00\x00\x00\x00\x00\x00\x00"; +module$exports$jspb$BinaryConstants.MESSAGE_SET_GROUP_NUMBER=1;module$exports$jspb$BinaryConstants.MESSAGE_SET_TYPE_ID_FIELD_NUMBER=2;module$exports$jspb$BinaryConstants.MESSAGE_SET_MESSAGE_FIELD_NUMBER=3;module$exports$jspb$BinaryConstants.MESSAGE_SET_MAX_TYPE_ID=4294967294;module$exports$jspb$BinaryConstants.FieldTypeToWireType=module$contents$jspb$BinaryConstants_FieldTypeToWireType;module$exports$jspb$BinaryConstants.isValidWireType=module$contents$jspb$BinaryConstants_isValidWireType;goog.debug={};function module$contents$goog$debug$Error_DebugError(a,b){if(Error.captureStackTrace)Error.captureStackTrace(this,module$contents$goog$debug$Error_DebugError);else{var c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a));void 0!==b&&(this.cause=b)}goog.inherits(module$contents$goog$debug$Error_DebugError,Error);module$contents$goog$debug$Error_DebugError.prototype.name="CustomError";goog.debug.Error=module$contents$goog$debug$Error_DebugError;goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;function module$contents$goog$asserts_AssertionError(a,b){var c=module$contents$goog$debug$Error_DebugError,d=c.call;a=a.split("%s");for(var e="",f=a.length-1,g=0;g>=8}c[d++]=f}return c};goog.crypt.byteArrayToString=function(a){return goog.crypt.byteArrayToBinaryString(a)}; +goog.crypt.byteArrayToBinaryString=function(a){if(8192>=a.length)return String.fromCharCode.apply(null,a);for(var b="",c=0;ce?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};goog.crypt.utf8ByteArrayToString=function(a){return goog.crypt.byteArrayToText(a)}; +goog.crypt.byteArrayToText=function(a){for(var b=[],c=0,d=0;ce)b[d++]=String.fromCharCode(e);else if(191e){var f=a[c++];b[d++]=String.fromCharCode((e&31)<<6|f&63)}else if(239e){f=a[c++];var g=a[c++],h=a[c++];e=((e&7)<<18|(f&63)<<12|(g&63)<<6|h&63)-65536;b[d++]=String.fromCharCode(55296+(e>>10));b[d++]=String.fromCharCode(56320+(e&1023))}else f=a[c++],g=a[c++],b[d++]=String.fromCharCode((e&15)<<12|(f&63)<<6|g&63)}return b.join("")}; +goog.crypt.xorByteArray=function(a,b){goog.asserts.assert(a.length==b.length,"XOR array lengths must match");for(var c=[],d=0;d":"
")}; +goog.string.internal.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.internal.AMP_RE_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.internal.LT_RE_, +"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.internal.GT_RE_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.internal.QUOT_RE_,"""));-1!=a.indexOf("'")&&(a=a.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'"));-1!=a.indexOf("\x00")&&(a=a.replace(goog.string.internal.NULL_RE_,"�"))}return a};goog.string.internal.AMP_RE_=/&/g;goog.string.internal.LT_RE_=//g;goog.string.internal.QUOT_RE_=/"/g;goog.string.internal.SINGLE_QUOTE_RE_=/'/g; +goog.string.internal.NULL_RE_=/\x00/g;goog.string.internal.ALL_RE_=/[\x00&<>"']/;goog.string.internal.whitespaceEscape=function(a,b){return goog.string.internal.newLineToBr(a.replace(/ /g,"  "),b)};goog.string.internal.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.internal.caseInsensitiveContains=function(a,b){return goog.string.internal.contains(a.toLowerCase(),b.toLowerCase())}; +goog.string.internal.compareVersions=function(a,b){var c=0;a=goog.string.internal.trim(String(a)).split(".");b=goog.string.internal.trim(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&eb?1:0};goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.chromiumRebrands={};var module$contents$goog$labs$userAgent$chromiumRebrands_ChromiumRebrand={GOOGLE_CHROME:"Google Chrome",BRAVE:"Brave",OPERA:"Opera",EDGE:"Microsoft Edge"};goog.labs.userAgent.chromiumRebrands.ChromiumRebrand=module$contents$goog$labs$userAgent$chromiumRebrands_ChromiumRebrand;var module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles={TOGGLE_GoogFlags__use_toggles:!1,TOGGLE_GoogFlags__override_disable_toggles:!1,TOGGLE_GoogFlags__use_user_agent_client_hints__enable:!1,TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable:!1,TOGGLE_GoogFlags__client_only_wiz_attribute_sanitization__disable:!1,TOGGLE_GoogFlags__client_only_wiz_hook_context_fix__enable:!1,TOGGLE_GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable:!1,TOGGLE_GoogFlags__testonly_disabled_flag__enable:!1, +TOGGLE_GoogFlags__testonly_debug_flag__enable:!1,TOGGLE_GoogFlags__testonly_staging_flag__disable:!1,TOGGLE_GoogFlags__testonly_stable_flag__disable:!1};goog.flags={};var module$contents$goog$flags_STAGING=goog.readFlagInternalDoNotUseOrElse(1,goog.FLAGS_STAGING_DEFAULT);goog.flags.USE_USER_AGENT_CLIENT_HINTS=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_user_agent_client_hints__enable:goog.readFlagInternalDoNotUseOrElse(610401301,!1); +goog.flags.ASYNC_THROW_ON_UNICODE_TO_BYTE=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable:goog.readFlagInternalDoNotUseOrElse(899588437,!1); +goog.flags.CLIENT_ONLY_WIZ_ATTRIBUTE_SANITIZATION=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles||!module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_attribute_sanitization__disable:goog.readFlagInternalDoNotUseOrElse(533565600,!0); +goog.flags.CLIENT_ONLY_WIZ_HOOK_CONTEXT_FIX=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_hook_context_fix__enable:goog.readFlagInternalDoNotUseOrElse(563486499,!1); +goog.flags.JSPB_DISABLE_SERIALIZING_EMPTY_REPEATED_AND_MAP_FIELDS=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles||!module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable:goog.readFlagInternalDoNotUseOrElse(572417392,!0); +goog.flags.TESTONLY_DISABLED_FLAG=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_disabled_flag__enable:goog.readFlagInternalDoNotUseOrElse(2147483644,!1); +goog.flags.TESTONLY_DEBUG_FLAG=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?goog.DEBUG||module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_debug_flag__enable:goog.readFlagInternalDoNotUseOrElse(2147483645,goog.DEBUG); +goog.flags.TESTONLY_STAGING_FLAG=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?goog.FLAGS_STAGING_DEFAULT&&(module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles||!module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_staging_flag__disable):goog.readFlagInternalDoNotUseOrElse(2147483646,module$contents$goog$flags_STAGING); +goog.flags.TESTONLY_STABLE_FLAG=module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles?module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles||!module$exports$google3$third_party$javascript$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_stable_flag__disable:goog.readFlagInternalDoNotUseOrElse(2147483647,!0);var module$contents$goog$labs$userAgent_forceClientHintsInTests=!1;goog.labs.userAgent.setUseClientHintsForTesting=function(a){module$contents$goog$labs$userAgent_forceClientHintsInTests=a};goog.labs.userAgent.useClientHints=function(){return goog.flags.USE_USER_AGENT_CLIENT_HINTS||module$contents$goog$labs$userAgent_forceClientHintsInTests};goog.labs.userAgent.util={};function module$contents$goog$labs$userAgent$util_getNativeUserAgentString(){var a=goog.global.navigator;return a&&(a=a.userAgent)?a:""}function module$contents$goog$labs$userAgent$util_getNativeUserAgentData(){var a=goog.global.navigator;return a?a.userAgentData||null:null}var module$contents$goog$labs$userAgent$util_userAgentInternal=null,module$contents$goog$labs$userAgent$util_userAgentDataInternal=module$contents$goog$labs$userAgent$util_getNativeUserAgentData(); +function module$contents$goog$labs$userAgent$util_setUserAgent(a){module$contents$goog$labs$userAgent$util_userAgentInternal="string"===typeof a?a:module$contents$goog$labs$userAgent$util_getNativeUserAgentString()}function module$contents$goog$labs$userAgent$util_getUserAgent(){return null==module$contents$goog$labs$userAgent$util_userAgentInternal?module$contents$goog$labs$userAgent$util_getNativeUserAgentString():module$contents$goog$labs$userAgent$util_userAgentInternal} +function module$contents$goog$labs$userAgent$util_setUserAgentData(a){module$contents$goog$labs$userAgent$util_userAgentDataInternal=a}function module$contents$goog$labs$userAgent$util_resetUserAgentData(){module$contents$goog$labs$userAgent$util_userAgentDataInternal=module$contents$goog$labs$userAgent$util_getNativeUserAgentData()}function module$contents$goog$labs$userAgent$util_getUserAgentData(){return module$contents$goog$labs$userAgent$util_userAgentDataInternal} +function module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand(a){if(!(0,goog.labs.userAgent.useClientHints)())return!1;var b=module$contents$goog$labs$userAgent$util_userAgentDataInternal;return b?b.brands.some(function(c){return(c=c.brand)&&(0,goog.string.internal.contains)(c,a)}):!1}function module$contents$goog$labs$userAgent$util_matchUserAgent(a){var b=module$contents$goog$labs$userAgent$util_getUserAgent();return(0,goog.string.internal.contains)(b,a)} +function module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase(a){var b=module$contents$goog$labs$userAgent$util_getUserAgent();return(0,goog.string.internal.caseInsensitiveContains)(b,a)}function module$contents$goog$labs$userAgent$util_extractVersionTuples(a){for(var b=RegExp("([A-Z][\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g"),c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c}goog.labs.userAgent.util.ASSUME_CLIENT_HINTS_SUPPORT=!1; +goog.labs.userAgent.util.extractVersionTuples=module$contents$goog$labs$userAgent$util_extractVersionTuples;goog.labs.userAgent.util.getNativeUserAgentString=module$contents$goog$labs$userAgent$util_getNativeUserAgentString;goog.labs.userAgent.util.getUserAgent=module$contents$goog$labs$userAgent$util_getUserAgent;goog.labs.userAgent.util.getUserAgentData=module$contents$goog$labs$userAgent$util_getUserAgentData;goog.labs.userAgent.util.matchUserAgent=module$contents$goog$labs$userAgent$util_matchUserAgent; +goog.labs.userAgent.util.matchUserAgentDataBrand=module$contents$goog$labs$userAgent$util_matchUserAgentDataBrand;goog.labs.userAgent.util.matchUserAgentIgnoreCase=module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase;goog.labs.userAgent.util.resetUserAgentData=module$contents$goog$labs$userAgent$util_resetUserAgentData;goog.labs.userAgent.util.setUserAgent=module$contents$goog$labs$userAgent$util_setUserAgent;goog.labs.userAgent.util.setUserAgentData=module$contents$goog$labs$userAgent$util_setUserAgentData;var module$exports$goog$labs$userAgent$highEntropy$highEntropyValue={AsyncValue:function(){}};module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.AsyncValue.prototype.getIfLoaded=function(){};module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.AsyncValue.prototype.load=function(){};module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue=function(a){this.key_=a;this.promise_=this.value_=void 0;this.pending_=!1}; +module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.getIfLoaded=function(){var a=module$contents$goog$labs$userAgent$util_userAgentDataInternal;if(a)return this.value_}; +module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.load=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress){b=module$contents$goog$labs$userAgent$util_userAgentDataInternal;if(!b)return c.return(void 0);a.promise_||(a.pending_=!0,a.promise_=function(){var d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.setFinallyBlock(2),e.yield(b.getHighEntropyValues([a.key_]), +4);if(2!=e.nextAddress)return d=e.yieldResult,a.value_=d[a.key_],e.return(a.value_);e.enterFinallyBlock();a.pending_=!1;return e.leaveFinallyBlock(0)})}());return c.yield(a.promise_,2)}return c.return(c.yieldResult)})};module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue.prototype.resetForTesting=function(){if(this.pending_)throw Error("Unsafe call to resetForTesting");this.value_=this.promise_=void 0;this.pending_=!1}; +module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version=function(a){this.versionString_=a};module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version.prototype.isAtLeast=function(a){return 0<=(0,goog.string.internal.compareVersions)(this.versionString_,a)};var module$exports$goog$labs$userAgent$highEntropy$highEntropyData={};module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList=new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue("fullVersionList");module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion=new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.HighEntropyValue("platformVersion");goog.labs.userAgent.browser={};var module$contents$goog$labs$userAgent$browser_Brand={ANDROID_BROWSER:"Android Browser",CHROMIUM:"Chromium",EDGE:"Microsoft Edge",FIREFOX:"Firefox",IE:"Internet Explorer",OPERA:"Opera",SAFARI:"Safari",SILK:"Silk"};goog.labs.userAgent.browser.Brand=module$contents$goog$labs$userAgent$browser_Brand; +function module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(a){a=void 0===a?!1:a;if(!a&&!(0,goog.labs.userAgent.useClientHints)())return!1;a=module$contents$goog$labs$userAgent$util_userAgentDataInternal;return!!a&&0=b}goog.labs.userAgent.browser.isAtLeast=module$contents$goog$labs$userAgent$browser_isAtLeast; +function module$contents$goog$labs$userAgent$browser_isAtMost(a,b){(0,goog.asserts.assert)(Math.floor(b)===b,"Major version must be an integer");return module$contents$goog$labs$userAgent$browser_versionOf_(a)<=b}goog.labs.userAgent.browser.isAtMost=module$contents$goog$labs$userAgent$browser_isAtMost; +var module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion=function(a,b,c){this.brand_=a;this.version_=new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(c);this.useUach_=b}; +module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion.prototype.getIfLoaded=function(){var a=this;if(this.useUach_){var b=module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.getIfLoaded();if(void 0!==b)return b=b.find(function(c){c=c.brand;return a.brand_===c}),(0,goog.asserts.assertExists)(b),new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(b.version)}if(module$contents$goog$labs$userAgent$browser_preUachHasLoaded)return this.version_}; +module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion.prototype.load=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return a.useUach_?d.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.load(),5):d.yield(0,3);if(3!=d.nextAddress&&(b=d.yieldResult,void 0!==b))return c=b.find(function(e){e=e.brand;return a.brand_===e}),(0,goog.asserts.assertExists)(c),d.return(new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(c.version)); +module$contents$goog$labs$userAgent$browser_preUachHasLoaded=!0;return d.return(a.version_)})};var module$contents$goog$labs$userAgent$browser_preUachHasLoaded=!1; +function module$contents$goog$labs$userAgent$browser_loadFullVersions(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(a){if(1==a.nextAddress)return module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0)?a.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.load(),2):a.jumpTo(2);module$contents$goog$labs$userAgent$browser_preUachHasLoaded=!0;a.jumpToEnd()})}goog.labs.userAgent.browser.loadFullVersions=module$contents$goog$labs$userAgent$browser_loadFullVersions; +goog.labs.userAgent.browser.resetForTesting=function(){module$contents$goog$labs$userAgent$browser_preUachHasLoaded=!1;module$exports$goog$labs$userAgent$highEntropy$highEntropyData.fullVersionList.resetForTesting()}; +function module$contents$goog$labs$userAgent$browser_fullVersionOf(a){var b="";module$contents$goog$labs$userAgent$browser_isAtLeast(module$contents$goog$labs$userAgent$browser_Brand.CHROMIUM,98)||(b=module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(a));var c=a!==module$contents$goog$labs$userAgent$browser_Brand.SILK&&module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0);if(c){var d=module$contents$goog$labs$userAgent$util_userAgentDataInternal;if(!d.brands.find(function(e){e= +e.brand;return e===a}))return}else if(""===b)return;return new module$contents$goog$labs$userAgent$browser_HighEntropyBrandVersion(a,c,b)}goog.labs.userAgent.browser.fullVersionOf=module$contents$goog$labs$userAgent$browser_fullVersionOf; +function module$contents$goog$labs$userAgent$browser_getVersionStringForLogging(a){if(module$contents$goog$labs$userAgent$browser_useUserAgentDataBrand(!0)){var b=module$contents$goog$labs$userAgent$browser_fullVersionOf(a);if(b){if(b=b.getIfLoaded())return b.versionString_;b=module$contents$goog$labs$userAgent$util_userAgentDataInternal;b=b.brands.find(function(c){c=c.brand;return c===a});(0,goog.asserts.assertExists)(b);return b.version}return""}return module$contents$goog$labs$userAgent$browser_getFullVersionFromUserAgentString(a)} +goog.labs.userAgent.browser.getVersionStringForLogging=module$contents$goog$labs$userAgent$browser_getVersionStringForLogging;goog.labs.userAgent.platform={};function module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(a){a=void 0===a?!1:a;if(!a&&!(0,goog.labs.userAgent.useClientHints)())return!1;a=module$contents$goog$labs$userAgent$util_userAgentDataInternal;return!!a&&!!a.platform} +function module$contents$goog$labs$userAgent$platform_isAndroid(){return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform()?"Android"===module$contents$goog$labs$userAgent$util_userAgentDataInternal.platform:module$contents$goog$labs$userAgent$util_matchUserAgent("Android")}function module$contents$goog$labs$userAgent$platform_isIpod(){return module$contents$goog$labs$userAgent$util_matchUserAgent("iPod")} +function module$contents$goog$labs$userAgent$platform_isIphone(){return module$contents$goog$labs$userAgent$util_matchUserAgent("iPhone")&&!module$contents$goog$labs$userAgent$util_matchUserAgent("iPod")&&!module$contents$goog$labs$userAgent$util_matchUserAgent("iPad")}function module$contents$goog$labs$userAgent$platform_isIpad(){return module$contents$goog$labs$userAgent$util_matchUserAgent("iPad")} +function module$contents$goog$labs$userAgent$platform_isIos(){return module$contents$goog$labs$userAgent$platform_isIphone()||module$contents$goog$labs$userAgent$platform_isIpad()||module$contents$goog$labs$userAgent$platform_isIpod()} +function module$contents$goog$labs$userAgent$platform_isMacintosh(){return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform()?"macOS"===module$contents$goog$labs$userAgent$util_userAgentDataInternal.platform:module$contents$goog$labs$userAgent$util_matchUserAgent("Macintosh")} +function module$contents$goog$labs$userAgent$platform_isLinux(){return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform()?"Linux"===module$contents$goog$labs$userAgent$util_userAgentDataInternal.platform:module$contents$goog$labs$userAgent$util_matchUserAgent("Linux")} +function module$contents$goog$labs$userAgent$platform_isWindows(){return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform()?"Windows"===module$contents$goog$labs$userAgent$util_userAgentDataInternal.platform:module$contents$goog$labs$userAgent$util_matchUserAgent("Windows")} +function module$contents$goog$labs$userAgent$platform_isChromeOS(){return module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform()?"Chrome OS"===module$contents$goog$labs$userAgent$util_userAgentDataInternal.platform:module$contents$goog$labs$userAgent$util_matchUserAgent("CrOS")}function module$contents$goog$labs$userAgent$platform_isChromecast(){return module$contents$goog$labs$userAgent$util_matchUserAgent("CrKey")} +function module$contents$goog$labs$userAgent$platform_isKaiOS(){return module$contents$goog$labs$userAgent$util_matchUserAgentIgnoreCase("KaiOS")} +function module$contents$goog$labs$userAgent$platform_getVersion(){var a=module$contents$goog$labs$userAgent$util_getUserAgent(),b="";module$contents$goog$labs$userAgent$platform_isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:"0.0"):module$contents$goog$labs$userAgent$platform_isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,".")):module$contents$goog$labs$userAgent$platform_isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g, +"."):"10"):module$contents$goog$labs$userAgent$platform_isKaiOS()?(b=/(?:KaiOS)\/(\S+)/i,b=(a=b.exec(a))&&a[1]):module$contents$goog$labs$userAgent$platform_isAndroid()?(b=/Android\s+([^\);]+)(\)|;)/,b=(a=b.exec(a))&&a[1]):module$contents$goog$labs$userAgent$platform_isChromeOS()&&(b=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||""} +function module$contents$goog$labs$userAgent$platform_isVersionOrHigher(a){return 0<=goog.string.internal.compareVersions(module$contents$goog$labs$userAgent$platform_getVersion(),a)}var module$contents$goog$labs$userAgent$platform_PlatformVersion=function(){this.preUachHasLoaded_=!1}; +module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.getIfLoaded=function(){if(module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(!0)){var a=module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.getIfLoaded();return void 0===a?void 0:new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(a)}if(this.preUachHasLoaded_)return new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(module$contents$goog$labs$userAgent$platform_getVersion())}; +module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.load=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress){if(!module$contents$goog$labs$userAgent$platform_useUserAgentDataPlatform(!0))return a.preUachHasLoaded_=!0,c.return(new module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version(module$contents$goog$labs$userAgent$platform_getVersion()));b=module$exports$goog$labs$userAgent$highEntropy$highEntropyValue.Version; +return c.yield(module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.load(),3)}return c.return(new b(c.yieldResult))})};module$contents$goog$labs$userAgent$platform_PlatformVersion.prototype.resetForTesting=function(){module$exports$goog$labs$userAgent$highEntropy$highEntropyData.platformVersion.resetForTesting();this.preUachHasLoaded_=!1};var module$contents$goog$labs$userAgent$platform_version=new module$contents$goog$labs$userAgent$platform_PlatformVersion; +goog.labs.userAgent.platform.getVersion=module$contents$goog$labs$userAgent$platform_getVersion;goog.labs.userAgent.platform.isAndroid=module$contents$goog$labs$userAgent$platform_isAndroid;goog.labs.userAgent.platform.isChromeOS=module$contents$goog$labs$userAgent$platform_isChromeOS;goog.labs.userAgent.platform.isChromecast=module$contents$goog$labs$userAgent$platform_isChromecast;goog.labs.userAgent.platform.isIos=module$contents$goog$labs$userAgent$platform_isIos; +goog.labs.userAgent.platform.isIpad=module$contents$goog$labs$userAgent$platform_isIpad;goog.labs.userAgent.platform.isIphone=module$contents$goog$labs$userAgent$platform_isIphone;goog.labs.userAgent.platform.isIpod=module$contents$goog$labs$userAgent$platform_isIpod;goog.labs.userAgent.platform.isKaiOS=module$contents$goog$labs$userAgent$platform_isKaiOS;goog.labs.userAgent.platform.isLinux=module$contents$goog$labs$userAgent$platform_isLinux;goog.labs.userAgent.platform.isMacintosh=module$contents$goog$labs$userAgent$platform_isMacintosh; +goog.labs.userAgent.platform.isVersionOrHigher=module$contents$goog$labs$userAgent$platform_isVersionOrHigher;goog.labs.userAgent.platform.isWindows=module$contents$goog$labs$userAgent$platform_isWindows;goog.labs.userAgent.platform.version=module$contents$goog$labs$userAgent$platform_version;goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;var module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS=2012c?Math.max(0,a.length+c):c;if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,c);for(;cc&&(c=Math.max(0,a.length+c));if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.lastIndexOf(b,c);for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.lastIndexOf=module$contents$goog$array_lastIndexOf;var module$contents$goog$array_forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;fb?null:"string"===typeof a?a.charAt(b):a[b]}goog.array.find=module$contents$goog$array_find; +function module$contents$goog$array_findIndex(a,b,c){for(var d=a.length,e="string"===typeof a?a.split(""):a,f=0;fb?null:"string"===typeof a?a.charAt(b):a[b]}goog.array.findRight=module$contents$goog$array_findRight; +function module$contents$goog$array_findIndexRight(a,b,c){var d=a.length,e="string"===typeof a?a.split(""):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1}goog.array.findIndexRight=module$contents$goog$array_findIndexRight;function module$contents$goog$array_contains(a,b){return 0<=module$contents$goog$array_indexOf(a,b)}goog.array.contains=module$contents$goog$array_contains;function module$contents$goog$array_isEmpty(a){return 0==a.length}goog.array.isEmpty=module$contents$goog$array_isEmpty; +function module$contents$goog$array_clear(a){if(!Array.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0}goog.array.clear=module$contents$goog$array_clear;function module$contents$goog$array_insert(a,b){module$contents$goog$array_contains(a,b)||a.push(b)}goog.array.insert=module$contents$goog$array_insert;function module$contents$goog$array_insertAt(a,b,c){module$contents$goog$array_splice(a,c,0,b)}goog.array.insertAt=module$contents$goog$array_insertAt; +function module$contents$goog$array_insertArrayAt(a,b,c){goog.partial(module$contents$goog$array_splice,a,c,0).apply(null,b)}goog.array.insertArrayAt=module$contents$goog$array_insertArrayAt;function module$contents$goog$array_insertBefore(a,b,c){var d;2==arguments.length||0>(d=module$contents$goog$array_indexOf(a,c))?a.push(b):module$contents$goog$array_insertAt(a,b,d)}goog.array.insertBefore=module$contents$goog$array_insertBefore; +function module$contents$goog$array_remove(a,b){b=module$contents$goog$array_indexOf(a,b);var c;(c=0<=b)&&module$contents$goog$array_removeAt(a,b);return c}goog.array.remove=module$contents$goog$array_remove;function module$contents$goog$array_removeLast(a,b){b=module$contents$goog$array_lastIndexOf(a,b);return 0<=b?(module$contents$goog$array_removeAt(a,b),!0):!1}goog.array.removeLast=module$contents$goog$array_removeLast; +function module$contents$goog$array_removeAt(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length}goog.array.removeAt=module$contents$goog$array_removeAt;function module$contents$goog$array_removeIf(a,b,c){b=module$contents$goog$array_findIndex(a,b,c);return 0<=b?(module$contents$goog$array_removeAt(a,b),!0):!1}goog.array.removeIf=module$contents$goog$array_removeIf; +function module$contents$goog$array_removeAllIf(a,b,c){var d=0;module$contents$goog$array_forEachRight(a,function(e,f){b.call(c,e,f,a)&&module$contents$goog$array_removeAt(a,f)&&d++});return d}goog.array.removeAllIf=module$contents$goog$array_removeAllIf;function module$contents$goog$array_concat(a){return Array.prototype.concat.apply([],arguments)}goog.array.concat=module$contents$goog$array_concat;function module$contents$goog$array_join(a){return Array.prototype.concat.apply([],arguments)} +goog.array.join=module$contents$goog$array_join;function module$contents$goog$array_toArray(a){var b=a.length;if(0=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)}goog.array.slice=module$contents$goog$array_slice; +function module$contents$goog$array_removeDuplicates(a,b,c){b=b||a;var d=function(l){return goog.isObject(l)?"o"+goog.getUid(l):(typeof l).charAt(0)+l};c=c||d;for(var e=d=0,f={};e>>1);var n=c?b.call(e,a[l],l,a):b(d,a[l]);0b?1:ac?(module$contents$goog$array_insertAt(a,b,-(c+1)),!0):!1}goog.array.binaryInsert=module$contents$goog$array_binaryInsert;function module$contents$goog$array_binaryRemove(a,b,c){b=module$contents$goog$array_binarySearch(a,b,c);return 0<=b?module$contents$goog$array_removeAt(a,b):!1}goog.array.binaryRemove=module$contents$goog$array_binaryRemove; +function module$contents$goog$array_bucket(a,b,c){for(var d={},e=0;ec*(f-e))return[];if(0f;a+=c)d.push(a);return d}goog.array.range=module$contents$goog$array_range;function module$contents$goog$array_repeat(a,b){for(var c=[],d=0;db&&Array.prototype.push.apply(a,a.splice(0,-b)));return a}goog.array.rotate=module$contents$goog$array_rotate;function module$contents$goog$array_moveItem(a,b,c){goog.asserts.assert(0<=b&&bparseFloat(a))?String(b):a}; +goog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0}; +goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.internal.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.internal.compareVersions(goog.userAgent.VERSION,a)})}; +goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;var JSCompiler_inline_result$jscomp$344;var doc$jscomp$inline_372=goog.global.document; +if(doc$jscomp$inline_372&&goog.userAgent.IE){var documentMode$jscomp$inline_373=goog.userAgent.getDocumentMode_();if(documentMode$jscomp$inline_373)JSCompiler_inline_result$jscomp$344=documentMode$jscomp$inline_373;else{var ieVersion$jscomp$inline_374=parseInt(goog.userAgent.VERSION,10);JSCompiler_inline_result$jscomp$344=ieVersion$jscomp$inline_374||void 0}}else JSCompiler_inline_result$jscomp$344=void 0;goog.userAgent.DOCUMENT_MODE=JSCompiler_inline_result$jscomp$344;goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=!1;goog.userAgent.product.ASSUME_IPHONE=!1;goog.userAgent.product.ASSUME_IPAD=!1;goog.userAgent.product.ASSUME_ANDROID=!1;goog.userAgent.product.ASSUME_CHROME=!1;goog.userAgent.product.ASSUME_SAFARI=!1; +goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;goog.userAgent.product.EDGE=goog.userAgent.EDGE; +goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:module$contents$goog$labs$userAgent$browser_matchFirefox();goog.userAgent.product.isIphoneOrIpod_=function(){return module$contents$goog$labs$userAgent$platform_isIphone()||module$contents$goog$labs$userAgent$platform_isIpod()};goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(); +goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:module$contents$goog$labs$userAgent$platform_isIpad();goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:module$contents$goog$labs$userAgent$browser_matchAndroidBrowser();goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:module$contents$goog$labs$userAgent$browser_matchChrome(); +goog.userAgent.product.isSafariDesktop_=function(){return module$contents$goog$labs$userAgent$browser_matchSafari()&&!module$contents$goog$labs$userAgent$platform_isIos()};goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_();goog.crypt.base64={};goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=";goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.";goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4};goog.crypt.base64.paddingChars_="=."; +goog.crypt.base64.isPadding_=function(a){return goog.string.internal.contains(goog.crypt.base64.paddingChars_,a)};goog.crypt.base64.byteToCharMaps_={};goog.crypt.base64.charToByteMap_=null;goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT;goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||"function"==typeof goog.global.btoa; +goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&"function"==typeof goog.global.atob; +goog.crypt.base64.encodeByteArray=function(a,b){goog.asserts.assert(goog.isArrayLike(a),"encodeByteArray takes an array as a parameter");void 0===b&&(b=goog.crypt.base64.Alphabet.DEFAULT);goog.crypt.base64.init_();var c=goog.crypt.base64.byteToCharMaps_[b];b=Array(Math.floor(a.length/3));for(var d=c[64]||"",e=0,f=0;e>2];g=c[(g&3)<<4|h>>4];h=c[(h&15)<<2|l>>6];l=c[l&63];b[f++]=""+n+g+h+l}l=0;n=d;switch(a.length-e){case 2:l=a[e+1],n=c[(l&15)<<2]|| +d;case 1:e=a[e],a=c[e>>2],c=c[(e&3)<<4|l>>4],b[f]=""+a+c+n+d}return b.join("")};goog.crypt.base64.encodeBinaryString=function(a,b){return goog.crypt.base64.encodeString(a,b,!0)};goog.crypt.base64.encodeString=function(a,b,c){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?goog.global.btoa(a):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a,c),b)};goog.crypt.base64.encodeStringUtf8=function(a,b){return goog.crypt.base64.encodeText(a,b)}; +goog.crypt.base64.encodeText=function(a,b){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?goog.global.btoa(unescape(encodeURIComponent(a))):goog.crypt.base64.encodeByteArray(goog.crypt.stringToUtf8ByteArray(a),b)};goog.crypt.base64.decodeToBinaryString=function(a,b){function c(e){d+=String.fromCharCode(e)}if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!b)return goog.global.atob(a);var d="";goog.crypt.base64.decodeStringInternal_(a,c);return d};goog.crypt.base64.decodeString=goog.crypt.base64.decodeToBinaryString; +goog.crypt.base64.decodeStringUtf8=function(a,b){return goog.crypt.base64.decodeToText(a,b)};goog.crypt.base64.decodeToText=function(a,b){return decodeURIComponent(escape(goog.crypt.base64.decodeString(a,b)))};goog.crypt.base64.decodeStringToByteArray=function(a){function b(d){c.push(d)}var c=[];goog.crypt.base64.decodeStringInternal_(a,b);return c}; +goog.crypt.base64.decodeStringToUint8Array=function(a){function b(g){e[f++]=g}var c=a.length,d=3*c/4;d%3?d=Math.floor(d):goog.crypt.base64.isPadding_(a[c-1])&&(d=goog.crypt.base64.isPadding_(a[c-2])?d-2:d-1);var e=new Uint8Array(d),f=0;goog.crypt.base64.decodeStringInternal_(a,b);return f!==d?e.subarray(0,f):e}; +goog.crypt.base64.decodeStringInternal_=function(a,b){function c(l){for(;d>4;b(e);64!=g&&(f=f<<4&240|g>>2,b(f),64!=h&&(g=g<<6&192|h,b(g)))}}; +goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var a=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;5>c;c++){var d=a.concat(b[c].split(""));goog.crypt.base64.byteToCharMaps_[c]=d;for(var e=0;e>>0;a=Math.floor((a-b)/module$exports$jspb$BinaryConstants.TWO_TO_32)>>>0;module$contents$jspb$utils_split64Low=b;module$contents$jspb$utils_split64High=a} +function module$contents$jspb$utils_splitInt64(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/module$exports$jspb$BinaryConstants.TWO_TO_32);b&&(c=$jscomp.makeIterator(module$contents$jspb$utils_negate(c,a)),b=c.next().value,a=c=c.next().value,c=b);module$contents$jspb$utils_split64Low=c>>>0;module$contents$jspb$utils_split64High=a>>>0} +function module$contents$jspb$utils_getScratchpad(a){(0,goog.asserts.assert)(8>=a);return module$contents$jspb$utils_scratchpad||(module$contents$jspb$utils_scratchpad=new DataView(new ArrayBuffer(8)))}function module$contents$jspb$utils_joinUint64(a,b){return b*module$exports$jspb$BinaryConstants.TWO_TO_32+(a>>>0)}function module$contents$jspb$utils_joinInt64(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=module$contents$jspb$utils_joinUint64(a,b);return c?-a:a} +function module$contents$jspb$utils_toZigzag64(a,b,c){var d=b>>31;b=(b<<1|a>>>31)^d;a=a<<1^d;return c(a,b)}function module$contents$jspb$utils_joinZigzag64(a,b){return module$contents$jspb$utils_fromZigzag64(a,b,module$contents$jspb$utils_joinInt64)}function module$contents$jspb$utils_fromZigzag64(a,b,c){var d=-(a&1);a=(a>>>1|b<<31)^d;b=b>>>1^d;return c(a,b)} +function module$contents$jspb$utils_joinUnsignedDecimalString(a,b){b>>>=0;a>>>=0;if(2097151>=b)var c=""+(module$exports$jspb$BinaryConstants.TWO_TO_32*b+a);else module$contents$jspb$internal_options_isBigIntAvailable()?c=""+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,c=c+6777216*a+6710656*b,a+=8147497*b,b*=2,1E7<=c&&(a+=Math.floor(c/1E7),c%=1E7),1E7<=a&&(b+=Math.floor(a/1E7),a%=1E7),(0,goog.asserts.assert)(b),c=b+module$contents$jspb$utils_decimalFrom1e7WithLeadingZeros(a)+ +module$contents$jspb$utils_decimalFrom1e7WithLeadingZeros(c));return c}function module$contents$jspb$utils_decimalFrom1e7WithLeadingZeros(a){a=String(a);return"0000000".slice(a.length)+a} +function module$contents$jspb$utils_joinSignedDecimalString(a,b){var c=b&2147483648;c?module$contents$jspb$internal_options_isBigIntAvailable()?b=""+(BigInt(b|0)<>>0)):(a=$jscomp.makeIterator(module$contents$jspb$utils_negate(a,b)),b=a.next().value,c=a.next().value,a=b,b=c,b="-"+module$contents$jspb$utils_joinUnsignedDecimalString(a,b)):b=module$contents$jspb$utils_joinUnsignedDecimalString(a,b);return b} +function module$contents$jspb$utils_splitDecimalString(a){(0,goog.asserts.assert)(0a.length)module$contents$jspb$utils_splitInt64(Number(a));else if(module$contents$jspb$internal_options_isBigIntAvailable())a=BigInt(a),module$contents$jspb$utils_split64Low=Number(a&BigInt(4294967295))>>>0,module$contents$jspb$utils_split64High=Number(a>>BigInt(32)&BigInt(4294967295));else{(0,goog.asserts.assert)(0=module$exports$jspb$BinaryConstants.TWO_TO_32&&(module$contents$jspb$utils_split64High+=Math.trunc(module$contents$jspb$utils_split64Low/module$exports$jspb$BinaryConstants.TWO_TO_32),module$contents$jspb$utils_split64High>>>=0,module$contents$jspb$utils_split64Low>>>= +0);b&&(b=$jscomp.makeIterator(module$contents$jspb$utils_negate(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)),a=b.next().value,b=b.next().value,module$contents$jspb$utils_split64Low=a,module$contents$jspb$utils_split64High=b)}}function module$contents$jspb$utils_negate(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};var module$exports$jspb$arith={UInt64:function(a,b){this.lo=a>>>0;this.hi=b>>>0}};module$exports$jspb$arith.UInt64.prototype.negateInTwosComplement=function(){return 0===this.lo?new module$exports$jspb$arith.UInt64(0,1+~this.hi):new module$exports$jspb$arith.UInt64(~this.lo+1,~this.hi)}; +module$exports$jspb$arith.UInt64.fromString=function(a){if(!a)return module$exports$jspb$arith.UInt64.getZero();if(!/^\d+$/.test(a))return null;module$contents$jspb$utils_splitDecimalString(a);return new module$exports$jspb$arith.UInt64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)};module$exports$jspb$arith.UInt64.fromNumber=function(a){return new module$exports$jspb$arith.UInt64(a&4294967295,a/4294967296)}; +module$exports$jspb$arith.UInt64.getZero=function(){return module$contents$jspb$arith_uint64Zero||(module$contents$jspb$arith_uint64Zero=new module$exports$jspb$arith.UInt64(0,0))};var module$contents$jspb$arith_uint64Zero;module$exports$jspb$arith.Int64=function(a,b){this.lo=a>>>0;this.hi=b>>>0}; +module$exports$jspb$arith.Int64.fromString=function(a){if(!a)return module$exports$jspb$arith.Int64.getZero();if(!/^-?\d+$/.test(a))return null;module$contents$jspb$utils_splitDecimalString(a);return new module$exports$jspb$arith.Int64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)};module$exports$jspb$arith.Int64.fromNumber=function(a){return new module$exports$jspb$arith.Int64(a&4294967295,a/4294967296)}; +module$exports$jspb$arith.Int64.getZero=function(){return module$contents$jspb$arith_int64Zero||(module$contents$jspb$arith_int64Zero=new module$exports$jspb$arith.Int64(0,0))};var module$contents$jspb$arith_int64Zero;function module$contents$jspb$binary$errors_invalidWireTypeError(a,b){return Error("Invalid wire type: "+a+" (at position "+b+")")}function module$contents$jspb$binary$errors_invalidVarintError(){return Error("Failed to read varint, encoding is invalid.")}function module$contents$jspb$binary$errors_readTooFarError(a,b){return Error("Tried to read past the end of the data "+b+" > "+a)};var module$contents$jspb$binary$utf8_USE_TEXT_ENCODING=2020<=goog.FEATURESET_YEAR;function module$contents$jspb$binary$utf8_invalid(a,b){if(a)throw Error("Invalid UTF8");b.push(65533)}function module$contents$jspb$binary$utf8_codeUnitsToString(a,b){b=String.fromCharCode.apply(null,b);return null==a?b:a+b} +var module$contents$jspb$binary$utf8_isFatalTextDecoderCachableAfterThrowing_=2020<=goog.FEATURESET_YEAR?!0:void 0,module$contents$jspb$binary$utf8_fatalDecoderInstance,module$contents$jspb$binary$utf8_nonFatalDecoderInstance,module$contents$jspb$binary$utf8_useTextDecoderDecode=module$contents$jspb$binary$utf8_USE_TEXT_ENCODING||"undefined"!==typeof TextDecoder,module$contents$jspb$binary$utf8_textEncoderInstance,module$contents$jspb$binary$utf8_HAS_WELL_FORMED_METHOD=2023f)d[c++]=f;else{if(2048>f)d[c++]=f>>6|192;else{(0,goog.asserts.assert)(65536>f);if(55296<=f&&57343>=f){if(56319>=f&&e=g){f=1024*(f-55296)+g-56320+65536;d[c++]=f>>18|240;d[c++]=f>>12&63|128;d[c++]=f>>6&63|128;d[c++]=f&63|128;continue}else e--}if(b)throw Error("Found an unpaired surrogate");f=65533}d[c++]=f>>12|224;d[c++]=f>>6&63|128}d[c++]=f&63|128}}a=c===d.length?d: +d.subarray(0,c)}return a};var module$exports$jspb$bytestring={},module$contents$jspb$bytestring_emptyByteString;function module$contents$jspb$bytestring_checkAllowedCaller(a){if(a!==module$exports$jspb$internal_bytes.I_AM_INTERNAL)throw Error("illegal external caller");} +function module$contents$jspb$bytestring_structuredCloneBasedOnMessageChannel(a,b){return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.return(new Promise(function(d,e){var f=new MessageChannel;f.port2.onmessage=function(g){d(g.data)};try{f.port1.postMessage(a,b)}catch(g){e(g)}}))})}var module$contents$jspb$bytestring_structuredClonePonyfill=module$exports$jspb$internal_bytes.SUPPORTS_STRUCTURED_CLONE?function(a,b){return Promise.resolve(structuredClone(a,{transfer:b}))}:module$contents$jspb$bytestring_structuredCloneBasedOnMessageChannel; +module$exports$jspb$bytestring.ByteString=function(a,b){module$contents$jspb$bytestring_checkAllowedCaller(b);this.value_=a;if(null!=a&&0===a.length)throw Error("ByteString should be constructed with non-empty values");goog.DEBUG&&(this.dontPassByteStringToStructuredClone=module$contents$jspb$bytestring_dontPassByteStringToStructuredClone)}; +module$exports$jspb$bytestring.ByteString.fromBase64=function(a){(0,goog.asserts.assertString)(a);return a?new module$exports$jspb$bytestring.ByteString(a,module$exports$jspb$internal_bytes.I_AM_INTERNAL):module$exports$jspb$bytestring.ByteString.empty()}; +module$exports$jspb$bytestring.ByteString.fromUint8Array=function(a){(0,goog.asserts.assert)(a instanceof Uint8Array||Array.isArray(a));return a.length?new module$exports$jspb$bytestring.ByteString(new Uint8Array(a),module$exports$jspb$internal_bytes.I_AM_INTERNAL):module$exports$jspb$bytestring.ByteString.empty()}; +module$exports$jspb$bytestring.ByteString.fromTransferredUint8Array=function(a){var b,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress){(0,goog.asserts.assertInstanceof)(a,Uint8Array);if(!a.length)return b=module$exports$jspb$bytestring.ByteString.empty(),e.jumpTo(2);d=c=module$exports$jspb$bytestring.ByteString;return e.yield(module$contents$jspb$bytestring_structuredClonePonyfill(a,[a.buffer]),3)}2!=e.nextAddress&&(b=new d(e.yieldResult,module$exports$jspb$internal_bytes.I_AM_INTERNAL)); +return e.return(b)})};module$exports$jspb$bytestring.ByteString.fromStringUtf8=function(a){(0,goog.asserts.assertString)(a);return a.length?new module$exports$jspb$bytestring.ByteString(module$contents$jspb$binary$utf8_encodeUtf8(a,!0),module$exports$jspb$internal_bytes.I_AM_INTERNAL):module$exports$jspb$bytestring.ByteString.empty()}; +module$exports$jspb$bytestring.ByteString.fromBlob=function(a){var b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return(0,goog.asserts.assertInstanceof)(a,Blob),0===a.size?c.return(module$exports$jspb$bytestring.ByteString.empty()):c.yield(a.arrayBuffer(),2);b=c.yieldResult;return c.return(new module$exports$jspb$bytestring.ByteString(new Uint8Array(b),module$exports$jspb$internal_bytes.I_AM_INTERNAL))})}; +module$exports$jspb$bytestring.ByteString.empty=function(){return module$contents$jspb$bytestring_emptyByteString||(module$contents$jspb$bytestring_emptyByteString=new module$exports$jspb$bytestring.ByteString(null,module$exports$jspb$internal_bytes.I_AM_INTERNAL))};module$exports$jspb$bytestring.ByteString.prototype.asBase64=function(){var a=this.value_;return null==a?"":"string"===typeof a?a:this.value_=module$contents$jspb$internal_bytes_encodeByteArray(a)}; +module$exports$jspb$bytestring.ByteString.prototype.asUint8Array=function(){var a=this.internalBytesUnsafe(module$exports$jspb$internal_bytes.I_AM_INTERNAL);return a?new Uint8Array(a):module$contents$jspb$internal_bytes_emptyUint8Array()};module$exports$jspb$bytestring.ByteString.prototype.isEmpty=function(){return null==this.value_};module$exports$jspb$bytestring.ByteString.prototype.legacyUnwrap=function(){var a=this.value_||"";return"string"===typeof a?a:new Uint8Array(a)}; +module$exports$jspb$bytestring.ByteString.prototype.equalsByteString=function(a){(0,goog.asserts.assertInstanceof)(a,module$exports$jspb$bytestring.ByteString);if(!this.value_||!a.value_||this.value_===a.value_)return this.value_===a.value_;if("string"===typeof this.value_&&"string"===typeof a.value_){var b=this.value_,c=a.value_;a.value_.length>this.value_.length&&(c=this.value_,b=a.value_);if(0!==b.lastIndexOf(c,0))return!1;for(a=c.length;amodule$exports$jspb$binary$decoder.BinaryDecoder.instanceCache_.length&&module$exports$jspb$binary$decoder.BinaryDecoder.instanceCache_.push(this)}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.clear=function(){this.bytes_=null;this.bytesAreImmutable_=!1;module$contents$jspb$binary$decoder_ASSUME_DATAVIEW_IS_FAST&&(this.dataView_=null);this.cursor_=this.end_=this.start_=0;this.aliasBytesFields=!1}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.setBlock=function(a,b,c){a=module$contents$jspb$binary$internal_buffer_bufferFromSource(a);this.bytes_=a.buffer;this.bytesAreImmutable_=a.isImmutable;module$contents$jspb$binary$decoder_ASSUME_DATAVIEW_IS_FAST&&(this.dataView_=null);this.start_=b||0;this.end_=void 0!==c?this.start_+c:this.bytes_.length;this.cursor_=this.start_};module$exports$jspb$binary$decoder.BinaryDecoder.prototype.setEnd=function(a){this.end_=a}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_};module$exports$jspb$binary$decoder.BinaryDecoder.prototype.getCursor=function(){return this.cursor_};module$exports$jspb$binary$decoder.BinaryDecoder.prototype.setCursor=function(a){this.cursor_=a};module$exports$jspb$binary$decoder.BinaryDecoder.prototype.advance=function(a){a=this.cursor_+a;this.setCursorAndCheck(a)}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_};module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64=function(a,b){var c=0,d=0,e=0,f=a.bytes_,g=a.cursor_;do{var h=f[g++];c|=(h&127)<e&&h&128);32>4);for(e=3;32>e&&h&128;e+=7)h=f[g++],d|=(h&127)<h)return b(c>>>0,d>>>0);throw module$contents$jspb$binary$errors_invalidVarintError();}; +module$exports$jspb$binary$decoder.BinaryDecoder.readSplitZigzagVarint64=function(a,b){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,function(c,d){return module$contents$jspb$utils_fromZigzag64(c,d,b)})};module$exports$jspb$binary$decoder.BinaryDecoder.readSplitFixed64=function(a,b){var c=a.bytes_,d=a.cursor_;a.advance(8);for(var e=a=0,f=d+7;f>=d;f--)a=a<<8|c[f],e=e<<8|c[f+4];return b(a,e)};module$exports$jspb$binary$decoder.BinaryDecoder.prototype.skipVarint=function(){module$exports$jspb$binary$decoder.BinaryDecoder.readBool(this)}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.setCursorAndCheck=function(a){this.cursor_=a;if(a>this.end_)throw module$contents$jspb$binary$errors_readTooFarError(this.end_,a);}; +module$exports$jspb$binary$decoder.BinaryDecoder.readSignedVarint32=function(a){var b=a.bytes_,c=a.cursor_,d=b[c++],e=d&127;if(d&128&&(d=b[c++],e|=(d&127)<<7,d&128&&(d=b[c++],e|=(d&127)<<14,d&128&&(d=b[c++],e|=(d&127)<<21,d&128&&(d=b[c++],e|=d<<28,d&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128)))))throw module$contents$jspb$binary$errors_invalidVarintError();a.setCursorAndCheck(c);return e}; +module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSignedVarint32(a)>>>0};module$exports$jspb$binary$decoder.BinaryDecoder.readZigzagVarint32=function(a){a=module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32(a);var b=-(a&1);return a=a>>>1^b}; +module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint64=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,module$contents$jspb$utils_joinUint64)};module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint64String=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,module$contents$jspb$utils_joinUnsignedDecimalString)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readSignedVarint64=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,module$contents$jspb$utils_joinInt64)};module$exports$jspb$binary$decoder.BinaryDecoder.readSignedVarint64String=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,module$contents$jspb$utils_joinSignedDecimalString)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readZigzagVarint64=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitVarint64(a,module$contents$jspb$utils_joinZigzag64)};module$exports$jspb$binary$decoder.BinaryDecoder.readZigzagVarint64String=function(a){return module$exports$jspb$binary$decoder.BinaryDecoder.readSplitZigzagVarint64(a,module$contents$jspb$utils_joinSignedDecimalString)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readUint8=function(a){var b=a.bytes_[a.cursor_+0];a.advance(1);return b};module$exports$jspb$binary$decoder.BinaryDecoder.readUint16=function(a){var b=a.bytes_[a.cursor_+0],c=a.bytes_[a.cursor_+1];a.advance(2);return b<<0|c<<8};module$exports$jspb$binary$decoder.BinaryDecoder.readUint32=function(a){var b=a.bytes_,c=a.cursor_,d=b[c+0],e=b[c+1],f=b[c+2];b=b[c+3];a.advance(4);return(d<<0|e<<8|f<<16|b<<24)>>>0}; +module$exports$jspb$binary$decoder.BinaryDecoder.readUint64=function(a){var b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);return module$contents$jspb$utils_joinUint64(b,a)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readUint64String=function(a){var b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);return module$contents$jspb$utils_joinUnsignedDecimalString(b,a)};module$exports$jspb$binary$decoder.BinaryDecoder.readInt8=function(a){var b=a.bytes_[a.cursor_+0];a.advance(1);return b<<24>>24}; +module$exports$jspb$binary$decoder.BinaryDecoder.readInt16=function(a){var b=a.bytes_[a.cursor_+0],c=a.bytes_[a.cursor_+1];a.advance(2);return(b<<0|c<<8)<<16>>16};module$exports$jspb$binary$decoder.BinaryDecoder.readInt32=function(a){var b=a.bytes_,c=a.cursor_,d=b[c+0],e=b[c+1],f=b[c+2];b=b[c+3];a.advance(4);return d<<0|e<<8|f<<16|b<<24}; +module$exports$jspb$binary$decoder.BinaryDecoder.readInt64=function(a){var b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);return module$contents$jspb$utils_joinInt64(b,a)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readInt64String=function(a){var b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);return module$contents$jspb$utils_joinSignedDecimalString(b,a)}; +module$exports$jspb$binary$decoder.BinaryDecoder.readFloat=function(a){var b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=2*(b>>31)+1;var c=b>>>23&255;b&=8388607;return a=255==c?b?NaN:Infinity*a:0==c?a*Math.pow(2,-149)*b:a*Math.pow(2,c-150)*(b+Math.pow(2,23))}; +module$exports$jspb$binary$decoder.BinaryDecoder.readDouble=function(a){if(module$contents$jspb$binary$decoder_ASSUME_DATAVIEW_IS_FAST){var b=a.getDataView().getFloat64(a.cursor_,!0);a.advance(8);return b}b=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);var c=module$exports$jspb$binary$decoder.BinaryDecoder.readUint32(a);a=2*(c>>31)+1;var d=c>>>20&2047;b=module$exports$jspb$BinaryConstants.TWO_TO_32*(c&1048575)+b;return b=2047==d?b?NaN:Infinity*a:0==d?a*Math.pow(2,-1074)*b:a*Math.pow(2, +d-1075)*(b+module$exports$jspb$BinaryConstants.TWO_TO_52)}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.readDoubleArrayInto=function(a,b){var c=this.cursor_,d=8*a;if(c+d>this.end_)throw module$contents$jspb$binary$errors_readTooFarError(d,this.end_-c);var e=this.bytes_;c+=e.byteOffset;if(module$contents$jspb$binary$decoder_ASSUME_DATAVIEW_IS_FAST)for(this.cursor_+=d,a=new DataView(e.buffer,c,d),d=0;;){e=d+8;if(e>a.byteLength)break;b.push(a.getFloat64(d,!0));d=e}else{var f;void 0===module$contents$jspb$binary$decoder_isLittleEndianCache&&(module$contents$jspb$binary$decoder_isLittleEndianCache= +513==(new Uint16Array((new Uint8Array([1,2])).buffer))[0]);if(f=goog.asserts.assertBoolean(module$contents$jspb$binary$decoder_isLittleEndianCache))for(this.cursor_+=d,a=new Float64Array(e.buffer.slice(c,c+d)),d=0;da)throw Error("Tried to read a negative byte length: "+a);var b=this.cursor_,c=b+a;if(c>this.end_)throw module$contents$jspb$binary$errors_readTooFarError(a,this.end_-b);this.cursor_=c;return b}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.readString=function(a,b){var c=this.checkReadLengthAndAdvance(a),d=goog.asserts.assert(this.bytes_);if(module$contents$jspb$binary$utf8_useTextDecoderDecode){var e=d;var f=a;b?(a=module$contents$jspb$binary$utf8_fatalDecoderInstance)||(a=module$contents$jspb$binary$utf8_fatalDecoderInstance=new TextDecoder("utf-8",{fatal:!0})):(a=module$contents$jspb$binary$utf8_nonFatalDecoderInstance)||(a=module$contents$jspb$binary$utf8_nonFatalDecoderInstance= +new TextDecoder("utf-8",{fatal:!1}));f=c+f;e=0===c&&f===e.length?e:e.subarray(c,f);try{var g=a.decode(e)}catch(r){if(e=b){if(void 0===module$contents$jspb$binary$utf8_isFatalTextDecoderCachableAfterThrowing_){try{a.decode(new Uint8Array([128]))}catch(x){}try{a.decode(new Uint8Array([97])),module$contents$jspb$binary$utf8_isFatalTextDecoderCachableAfterThrowing_=!0}catch(x){module$contents$jspb$binary$utf8_isFatalTextDecoderCachableAfterThrowing_=!1}}e=module$contents$jspb$binary$utf8_isFatalTextDecoderCachableAfterThrowing_; +e=!e}e&&(module$contents$jspb$binary$utf8_fatalDecoderInstance=void 0);throw r;}}else{g=d;a=c+a;d=[];for(var h=null,l,n;cl?d.push(l):224>l?c>=a?module$contents$jspb$binary$utf8_invalid(b,d):(n=g[c++],194>l||128!==(n&192)?(c--,module$contents$jspb$binary$utf8_invalid(b,d)):(l=(l&31)<<6|n&63,(0,goog.asserts.assert)(128<=l&&2047>=l),d.push(l))):240>l?c>=a-1?module$contents$jspb$binary$utf8_invalid(b,d):(n=g[c++],128!==(n&192)||224===l&&160>n||237===l&&160<=n||128!==((e=g[c++])&192)? +(c--,module$contents$jspb$binary$utf8_invalid(b,d)):(l=(l&15)<<12|(n&63)<<6|e&63,(0,goog.asserts.assert)(2048<=l&&65535>=l),(0,goog.asserts.assert)(55296>l||57343=l?c>=a-2?module$contents$jspb$binary$utf8_invalid(b,d):(n=g[c++],128!==(n&192)||0!==(l<<28)+(n-144)>>30||128!==((e=g[c++])&192)||128!==((f=g[c++])&192)?(c--,module$contents$jspb$binary$utf8_invalid(b,d)):(n=(l&7)<<18|(n&63)<<12|(e&63)<<6|f&63,(0,goog.asserts.assert)(65536<=n&&1114111>=n),n-=65536,l=(n&1023)+56320,n=(n>> +10&1023)+55296,d.push(n,l))):module$contents$jspb$binary$utf8_invalid(b,d),8192<=d.length&&(h=module$contents$jspb$binary$utf8_codeUnitsToString(h,d),d.length=0);(0,goog.asserts.assert)(c===a,"expected "+c+" === "+a);g=module$contents$jspb$binary$utf8_codeUnitsToString(h,d)}return e=g}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.readByteString=function(a){if(0==a)return module$exports$jspb$bytestring.ByteString.empty();var b=this.checkReadLengthAndAdvance(a);if(this.aliasBytesFields&&this.bytesAreImmutable_)b=this.bytes_.subarray(b,b+a);else{var c=goog.asserts.assert(this.bytes_);a=b+a;b=b===a?module$contents$jspb$internal_bytes_emptyUint8Array():module$contents$jspb$utils_SUPPORTS_UINT8ARRAY_SLICING?c.slice(b,a):new Uint8Array(c.subarray(b,a))}return module$contents$jspb$unsafe_bytestring_unsafeByteStringFromUint8Array(b)}; +module$exports$jspb$binary$decoder.BinaryDecoder.prototype.getDataView=function(){var a=this.dataView_;a||(a=this.bytes_,a=this.dataView_=new DataView(a.buffer,a.byteOffset,a.byteLength));return a};module$exports$jspb$binary$decoder.BinaryDecoder.resetInstanceCache=function(){module$exports$jspb$binary$decoder.BinaryDecoder.instanceCache_=[]};module$exports$jspb$binary$decoder.BinaryDecoder.getInstanceCache=function(){return module$exports$jspb$binary$decoder.BinaryDecoder.instanceCache_}; +module$exports$jspb$binary$decoder.BinaryDecoder.instanceCache_=[];var module$contents$jspb$binary$decoder_isLittleEndianCache=void 0,module$contents$jspb$binary$decoder_ASSUME_DATAVIEW_IS_FAST=2019<=goog.FEATURESET_YEAR;var module$exports$jspb$binary$encoder={BinaryEncoder:function(){this.buffer_=[]}};module$exports$jspb$binary$encoder.BinaryEncoder.prototype.length=function(){return this.buffer_.length};module$exports$jspb$binary$encoder.BinaryEncoder.prototype.end=function(){var a=this.buffer_;this.buffer_=[];return a}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeSplitVarint64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a>>7|b<<25)>>>0,b>>>=7;this.buffer_.push(a)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeSplitFixed64=function(a,b){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(b==Math.floor(b));goog.asserts.assert(0<=a&&a>>=7;this.buffer_.push(a)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeSignedVarint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-module$exports$jspb$BinaryConstants.TWO_TO_31&&ab;b++)this.buffer_.push(a&127|128),a>>=7;this.buffer_.push(1)}}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeUnsignedVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a=-module$exports$jspb$BinaryConstants.TWO_TO_63&&a=-module$exports$jspb$BinaryConstants.TWO_TO_31&&a>31)>>>0)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeZigzagVarint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-module$exports$jspb$BinaryConstants.TWO_TO_63&&ab;b=2*Math.abs(b);module$contents$jspb$utils_splitUint64(b);b=module$contents$jspb$utils_split64Low;var c=module$contents$jspb$utils_split64High;a&&(0==b?0==c?c=b=4294967295:(c--,b=4294967295):b--);module$contents$jspb$utils_split64Low=b;module$contents$jspb$utils_split64High= +c;this.writeSplitVarint64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)};module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeZigzagVarint64String=function(a){var b=this;module$contents$jspb$utils_splitDecimalString(a);module$contents$jspb$utils_toZigzag64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High,function(c,d){b.writeSplitVarint64(c>>>0,d>>>0)})}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeUint32=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeUint64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(0<=a&&a=-module$exports$jspb$BinaryConstants.TWO_TO_31&&a>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeInt64=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-module$exports$jspb$BinaryConstants.TWO_TO_63&&a=-module$exports$jspb$BinaryConstants.FLOAT32_MAX&&a<=module$exports$jspb$BinaryConstants.FLOAT32_MAX);var b=module$contents$jspb$utils_getScratchpad(4);b.setFloat32(0,+a,!0);module$contents$jspb$utils_split64High=0;module$contents$jspb$utils_split64Low=b.getUint32(0,!0);this.writeUint32(module$contents$jspb$utils_split64Low)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeDouble=function(a){goog.asserts.assert("number"===typeof a||"Infinity"===a||"-Infinity"===a||"NaN"===a);var b=module$contents$jspb$utils_getScratchpad(8);b.setFloat64(0,+a,!0);module$contents$jspb$utils_split64Low=b.getUint32(0,!0);module$contents$jspb$utils_split64High=b.getUint32(4,!0);this.writeUint32(module$contents$jspb$utils_split64Low);this.writeUint32(module$contents$jspb$utils_split64High)}; +module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeBool=function(a){goog.asserts.assert("boolean"===typeof a||"number"===typeof a);this.buffer_.push(a?1:0)};module$exports$jspb$binary$encoder.BinaryEncoder.prototype.writeEnum=function(a){goog.asserts.assert(a==Math.floor(a));goog.asserts.assert(a>=-module$exports$jspb$BinaryConstants.TWO_TO_31&&amodule$exports$jspb$binary$reader.BinaryReader.instanceCache_.length&&module$exports$jspb$binary$reader.BinaryReader.instanceCache_.push(this)}; +module$exports$jspb$binary$reader.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()};module$exports$jspb$binary$reader.BinaryReader.prototype.getTag=function(){return this.nextTag_};module$exports$jspb$binary$reader.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==module$exports$jspb$BinaryConstants.WireType.END_GROUP};module$exports$jspb$binary$reader.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==module$exports$jspb$BinaryConstants.WireType.DELIMITED}; +module$exports$jspb$binary$reader.BinaryReader.prototype.reset=function(){this.decoder_.reset();this.fieldCursor_=this.decoder_.getCursor();this.nextTag_=module$exports$jspb$BinaryConstants.INVALID_TAG;this.nextField_=module$exports$jspb$BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=module$exports$jspb$BinaryConstants.WireType.INVALID};module$exports$jspb$binary$reader.BinaryReader.prototype.advance=function(a){this.decoder_.advance(a)}; +module$exports$jspb$binary$reader.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;this.assertPriorFieldWasRead();this.fieldCursor_=this.decoder_.getCursor();var a=module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32(this.decoder_),b=a>>>3,c=a&7;if(!module$contents$jspb$BinaryConstants_isValidWireType(c))throw module$contents$jspb$binary$errors_invalidWireTypeError(c,this.fieldCursor_);if(1>b)throw Error("Invalid field number: "+b+" (at position "+this.fieldCursor_+ +")");this.nextTag_=a;this.nextField_=b;this.nextWireType_=c;return!0}; +module$exports$jspb$binary$reader.BinaryReader.prototype.assertPriorFieldWasRead=function(){if(goog.asserts.ENABLE_ASSERTS&&this.nextTag_!==module$exports$jspb$BinaryConstants.INVALID_TAG){var a=this.decoder_.getCursor();this.decoder_.setCursor(this.fieldCursor_);module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32(this.decoder_);this.nextWireType_===module$exports$jspb$BinaryConstants.WireType.END_GROUP||this.nextWireType_===module$exports$jspb$BinaryConstants.WireType.START_GROUP? +goog.asserts.assert(a===this.decoder_.getCursor(),"Expected to not advance the cursor. Group tags do not have values."):goog.asserts.assert(a>this.decoder_.getCursor(),"Expected to read the field, did you forget to call a read or skip method?");this.decoder_.setCursor(a)}}; +module$exports$jspb$binary$reader.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=module$exports$jspb$BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()}; +module$exports$jspb$binary$reader.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=module$exports$jspb$BinaryConstants.WireType.DELIMITED)return goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField(),0;var a=module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32(this.decoder_);this.decoder_.advance(a);return a}; +module$exports$jspb$binary$reader.BinaryReader.prototype.skipFixed32Field=function(){goog.asserts.assert(this.nextWireType_===module$exports$jspb$BinaryConstants.WireType.FIXED32);this.decoder_.advance(4)};module$exports$jspb$binary$reader.BinaryReader.prototype.skipFixed64Field=function(){goog.asserts.assert(this.nextWireType_===module$exports$jspb$BinaryConstants.WireType.FIXED64);this.decoder_.advance(8)}; +module$exports$jspb$binary$reader.BinaryReader.prototype.skipGroup=function(){var a=this.nextField_;do{if(!this.nextField())throw Error("Unmatched start-group tag: stream EOF");if(this.nextWireType_==module$exports$jspb$BinaryConstants.WireType.END_GROUP){if(this.nextField_!=a)throw Error("Unmatched end-group tag");break}this.skipField()}while(1)}; +module$exports$jspb$binary$reader.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case module$exports$jspb$BinaryConstants.WireType.VARINT:this.skipVarintField();break;case module$exports$jspb$BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case module$exports$jspb$BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case module$exports$jspb$BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case module$exports$jspb$BinaryConstants.WireType.START_GROUP:this.skipGroup(); +break;default:throw module$contents$jspb$binary$errors_invalidWireTypeError(this.nextWireType_,this.fieldCursor_);}};module$exports$jspb$binary$reader.BinaryReader.prototype.skipToEnd=function(){this.decoder_.setCursor(this.decoder_.end_)};module$exports$jspb$binary$reader.BinaryReader.prototype.readUnknownField=function(){var a=this.fieldCursor_;this.skipField();return this.readUnknownFieldsStartingFrom(a)}; +module$exports$jspb$binary$reader.BinaryReader.prototype.readUnknownFieldsStartingFrom=function(a){if(!this.discardUnknownFields){var b=this.decoder_.getCursor(),c=b-a;this.decoder_.setCursor(a);a=this.decoder_.readByteString(c);goog.asserts.assert(b==this.decoder_.getCursor());return a}}; +module$exports$jspb$binary$reader.BinaryReader.prototype.readMessage=function(a,b,c,d,e){goog.asserts.assert(this.nextWireType_==module$exports$jspb$BinaryConstants.WireType.DELIMITED);var f=this.decoder_.end_,g=module$exports$jspb$binary$decoder.BinaryDecoder.readUnsignedVarint32(this.decoder_),h=this.decoder_.getCursor()+g,l=h-f;0>=l&&(this.decoder_.setEnd(h),b(a,this,c,d,e),l=h-this.decoder_.getCursor());if(l)throw Error("Message parsing ended unexpectedly. Expected to read "+(g+" bytes, instead read "+ +(g-l)+" bytes, either the data ended unexpectedly or the message misreported its own length"));this.decoder_.setCursor(h);this.decoder_.setEnd(f);return a}; +module$exports$jspb$binary$reader.BinaryReader.prototype.readGroup=function(a,b,c){goog.asserts.assert(this.nextWireType_==module$exports$jspb$BinaryConstants.WireType.START_GROUP);goog.asserts.assert(this.nextField_==a);c(b,this);if(this.nextWireType_!==module$exports$jspb$BinaryConstants.WireType.END_GROUP)throw Error("Group submessage did not end with an END_GROUP tag");if(this.nextField_!==a)throw Error("Unmatched end-group tag");return b}; +module$exports$jspb$binary$reader.BinaryReader.prototype.isMessageSetGroup=function(){return this.getTag()===module$contents$jspb$binary$reader_MESSAGE_SET_START_GROUP_TAG}; +module$exports$jspb$binary$reader.BinaryReader.prototype.readMessageSetGroup=function(a){goog.asserts.assert(this.isMessageSetGroup());for(var b=0,c=0;this.nextField()&&!this.isEndGroup();)this.getTag()!==module$contents$jspb$binary$reader_MESSAGE_SET_TYPE_ID_TAG||b?this.getTag()!==module$contents$jspb$binary$reader_MESSAGE_SET_MESSAGE_TAG||c?this.skipField():b?(c=-1,this.readMessage(b,a)):(c=this.fieldCursor_,this.skipDelimitedField()):(b=this.readUint32(),c&&(goog.asserts.assert(0>>=7,this.totalLength_++;a.push(b);this.totalLength_++};module$exports$jspb$binary$writer.BinaryWriter.prototype.writeUnknownFields=function(a){this.pushBlock(this.encoder_.end());for(var b=0;b=-module$exports$jspb$BinaryConstants.TWO_TO_31&&b=-module$exports$jspb$BinaryConstants.TWO_TO_31&&b=-module$exports$jspb$BinaryConstants.TWO_TO_31&&b=-module$exports$jspb$BinaryConstants.TWO_TO_31&&b=-module$exports$jspb$BinaryConstants.TWO_TO_63&&b=-module$exports$jspb$BinaryConstants.TWO_TO_63&&bc?(b=module$exports$jspb$arith.UInt64.fromNumber(-c).negateInTwosComplement(),a.writeSplitVarint64(b.lo,b.hi)):a.writeUnsignedVarint64(c):(b=c.length&&"-"===c[0]?module$exports$jspb$arith.UInt64.fromString(c.substring(1)).negateInTwosComplement():module$exports$jspb$arith.UInt64.fromString(c),a.writeSplitVarint64(b.lo, +b.hi))} +function module$contents$jspb$binary$writer_encodeFixed64ToleratingNegatives(a,b,c){module$contents$jspb$binary$writer_assertUnsignedInt64ToleratingNegatives(b,c);"number"===typeof c?0>c?(b=module$exports$jspb$arith.UInt64.fromNumber(-c).negateInTwosComplement(),a.writeSplitFixed64(b.lo,b.hi)):a.writeUint64(c):(b=c.length&&"-"===c[0]?module$exports$jspb$arith.UInt64.fromString(c.substring(1)).negateInTwosComplement():module$exports$jspb$arith.UInt64.fromString(c),a.writeSplitFixed64(b.lo,b.hi))} +function module$contents$jspb$binary$writer_assertThat(a,b,c){c||(0,goog.asserts.fail)("for ["+b+"] at ["+a+"]")};var JSCompiler_temp$jscomp$356;if(module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS){if(!module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS)throw Error();JSCompiler_temp$jscomp$356={newArray:0,slice:0,getField:0,setField:0,constructMessage:0,constructMap:0,copyMessageWithImmutableFields:0,internalCompareFields:0}}else JSCompiler_temp$jscomp$356=void 0; +var module$contents$jspb$internal_operations_currentLog=JSCompiler_temp$jscomp$356,module$contents$jspb$internal_operations_shouldLogOperations=!0;function module$contents$jspb$internal_operations_logOperation(a){if(module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_shouldLogOperations)for(var b in a)module$contents$jspb$internal_operations_currentLog[b]+=(0,goog.asserts.assertNumber)(a[b])} +function module$contents$jspb$internal_operations_slice(a){module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_logOperation({slice:1});return Array.prototype.slice.call(a)}function module$contents$jspb$internal_operations_logNewArray(a){module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_logOperation({newArray:1});return a} +function module$contents$jspb$internal_operations_withoutLogging(a){if(!module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS)return a();var b=!!module$contents$jspb$internal_operations_shouldLogOperations;try{return module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&(module$contents$jspb$internal_operations_shouldLogOperations=!1),a()}finally{module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&(module$contents$jspb$internal_operations_shouldLogOperations=b)}};var module$exports$jspb$internal_symbols={};function module$contents$jspb$internal_symbols_createSymbol(a,b){return 2018<=goog.FEATURESET_YEAR||"function"===typeof Symbol&&"symbol"===typeof Symbol()?goog.DEBUG?Symbol(a):Symbol():b}module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL=module$contents$jspb$internal_symbols_createSymbol("INTERNAL_ARRAY_STATE",void 0); +module$exports$jspb$internal_symbols.DEFAULT_IMMUTABLE_INSTANCE_SYMBOL=module$contents$jspb$internal_symbols_createSymbol("defaultInstance","0di");module$exports$jspb$internal_symbols.RETURNED_64BIT_INT_VALUE_MISMATCH_SYMBOL=module$contents$jspb$internal_symbols_createSymbol("RETURNED_64BIT_INT_VALUE_MISMATCH","64im");module$exports$jspb$internal_symbols.STRING_TYPE_DOWNGRADES_SYMBOL=module$contents$jspb$internal_symbols_createSymbol("STRING_TYPE_DOWNGRADES","0dg");var module$exports$jspb$internal_array_state={DEFAULT_ARRAY_STATE:0,ArrayStateFlags:{IS_REPEATED_FIELD:1,IS_IMMUTABLE_ARRAY:2,IS_API_FORMATTED:4,ONLY_MUTABLE_VALUES:8,ONLY_IMMUTABLE_VALUES_IF_OWNED:16,MUTABLE_REFERENCES_ARE_OWNED:32,CONSTRUCTED:64,TRANSFERRED:128,HAS_SPARSE_OBJECT:256,HAS_MESSAGE_ID:512,IS_IMMUTABLE_JS_REPEATED_FIELD_COERCED_FROM_WIRE:1024,FROZEN_ARRAY:2048,STRING_FORMATTED:4096,GBIGINT_FORMATTED:8192}};goog.asserts.assert(13===Math.round(Math.log2(Math.max.apply(Math,$jscomp.arrayFromIterable(Object.values(module$exports$jspb$internal_array_state.ArrayStateFlags)))))); +module$exports$jspb$internal_array_state.PIVOT_LIMIT=1024; +var module$contents$jspb$internal_array_state_PIVOT_MASK=module$exports$jspb$internal_array_state.PIVOT_LIMIT-1,module$contents$jspb$internal_array_state_ALL_FLAGS=module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_IMMUTABLE_VALUES_IF_OWNED| +module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED|module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED|module$exports$jspb$internal_array_state.ArrayStateFlags.TRANSFERRED|module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT|module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_MESSAGE_ID|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_JS_REPEATED_FIELD_COERCED_FROM_WIRE|module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED| +module$exports$jspb$internal_array_state.ArrayStateFlags.GBIGINT_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.FROZEN_ARRAY|module$contents$jspb$internal_array_state_PIVOT_MASK<<14;function module$contents$jspb$internal_array_state_assertValidFlags(a){goog.asserts.assert((a&module$contents$jspb$internal_array_state_ALL_FLAGS)==a)} +module$exports$jspb$internal_array_state.addArrayStateFlags=2018<=goog.FEATURESET_YEAR||module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL?function(a,b){module$contents$jspb$internal_array_state_assertValidFlags(b);goog.asserts.assertArray(a,"state is only maintained on arrays.");return a[module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL]|=b}:function(a,b){module$contents$jspb$internal_array_state_assertValidFlags(b);goog.asserts.assertArray(a,"state is only maintained on arrays.");var c= +a;if(void 0!==c.internalArrayState)return c.internalArrayState|=b;Object.defineProperties(a,{internalArrayState:{value:b,configurable:!0,writable:!0,enumerable:!1}});return b};function module$contents$jspb$internal_array_state_addFlagsOnPossiblyFrozenArray(a,b){var c=(0,module$exports$jspb$internal_array_state.getArrayState)(a);(c&b)!==b&&(Object.isFrozen(a)&&(a=module$contents$jspb$internal_operations_slice(a)),(0,module$exports$jspb$internal_array_state.setArrayState)(a,c|b));return a} +module$exports$jspb$internal_array_state.clearFlags=2018<=goog.FEATURESET_YEAR||module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL?function(a,b){module$contents$jspb$internal_array_state_assertValidFlags(b);goog.asserts.assertArray(a,"state is only maintained on arrays.");return a[module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL]&=~b}:function(a,b){module$contents$jspb$internal_array_state_assertValidFlags(b);goog.asserts.assertArray(a,"state is only maintained on arrays.");return void 0!== +a.internalArrayState?a.internalArrayState&=~b:0};function module$contents$jspb$internal_array_state_hasFlagBit(a,b){return!!(b&a)}function module$contents$jspb$internal_array_state_setFlagBitTo(a,b,c){return c?a|b:a&~b}function module$contents$jspb$internal_array_state_setFlagBit(a,b){return module$contents$jspb$internal_array_state_setFlagBitTo(a,b,!0)}function module$contents$jspb$internal_array_state_clearFlagBit(a,b){return module$contents$jspb$internal_array_state_setFlagBitTo(a,b,!1)} +goog.DEBUG&&Object.getOwnPropertyDescriptor(Array.prototype,"jspbArrayState");module$exports$jspb$internal_array_state.getArrayState=2018<=goog.FEATURESET_YEAR||module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL?function(a){goog.asserts.assertArray(a,"state is only maintained on arrays.");return a[module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL]|0}:function(a){goog.asserts.assertArray(a,"state is only maintained on arrays.");return a.internalArrayState|0}; +function module$contents$jspb$internal_array_state_checkMessageStateInvariants(a,b){goog.asserts.assert(b&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED,"state for messages must be constructed");goog.asserts.assert(0===(b&(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED)),"state for messages should not contain repeated field state");var c=module$contents$jspb$internal_array_state_getPivot(b), +d=module$contents$jspb$internal_array_state_getArrayIndexOffset(b),e=a.length;goog.asserts.assert(c+d>=e-1,"pivot %s is pointing at an index earlier than the last index of the array, length: %s",c,e);b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_MESSAGE_ID&&goog.asserts.assert("string"===typeof a[0],"arrays with a message_id bit must have a string in the first position, got: %s",a[0]);b=!!(b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT);a=e?a[e-1]:void 0; +a=null!=a&&"object"===typeof a&&a.constructor===Object;goog.asserts.assert(a===b,"arraystate and array disagree on sparseObject presence")} +module$exports$jspb$internal_array_state.getMessageArrayState=2018<=goog.FEATURESET_YEAR||module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL?function(a){goog.asserts.assertArray(a,"state is only maintained on arrays.");var b=a[module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL];goog.asserts.ENABLE_ASSERTS&&module$contents$jspb$internal_array_state_checkMessageStateInvariants(a,b);return b}:function(a){goog.asserts.assertArray(a,"state is only maintained on arrays.");var b=a.internalArrayState; +goog.asserts.ENABLE_ASSERTS&&module$contents$jspb$internal_array_state_checkMessageStateInvariants(a,b);return b}; +module$exports$jspb$internal_array_state.setArrayState=2018<=goog.FEATURESET_YEAR||module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL?function(a,b){goog.asserts.assertArray(a,"state is only maintained on arrays.");module$contents$jspb$internal_array_state_assertValidFlags(b);a[module$exports$jspb$internal_symbols.ARRAY_STATE_SYMBOL]=b}:function(a,b){goog.asserts.assertArray(a,"state is only maintained on arrays.");module$contents$jspb$internal_array_state_assertValidFlags(b);var c=a;void 0!== +c.internalArrayState?c.internalArrayState=b:Object.defineProperties(a,{internalArrayState:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function module$contents$jspb$internal_array_state_setStateOnPossiblyFrozenArray(a,b){Object.isFrozen(a)&&(a=module$contents$jspb$internal_operations_slice(a));(0,module$exports$jspb$internal_array_state.setArrayState)(a,b);return a} +function module$contents$jspb$internal_array_state_isRepeatedField(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD)}function module$contents$jspb$internal_array_state_markRepeatedField(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD);return a} +module$exports$jspb$internal_array_state.TypeSpecificApiFormat={LEGACY:0,STRING:module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED,GBIGINT:module$exports$jspb$internal_array_state.ArrayStateFlags.GBIGINT_FORMATTED}; +function module$contents$jspb$internal_array_state_markApiFormattedField(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD);return a} +function module$contents$jspb$internal_array_state_clearTypeSpecificFormattedFlagBits(a){a=module$contents$jspb$internal_array_state_clearFlagBit(a,module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED);return a=module$contents$jspb$internal_array_state_clearFlagBit(a,module$exports$jspb$internal_array_state.ArrayStateFlags.GBIGINT_FORMATTED)} +function module$contents$jspb$internal_array_state_isApiFormattedField(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED)}function module$contents$jspb$internal_array_state_isImmutableArray(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY)} +function module$contents$jspb$internal_array_state_markArrayImmutable(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED);return a} +function module$contents$jspb$internal_array_state_markMutableReferencesAreOwned(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED);return a}function module$contents$jspb$internal_array_state_markShared(a){(0,module$exports$jspb$internal_array_state.clearFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED);return a} +function module$contents$jspb$internal_array_state_areMutableReferencesOwned(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED)}function module$contents$jspb$internal_array_state_markConstructed(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED);return a} +function module$contents$jspb$internal_array_state_isConstructed(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED)}function module$contents$jspb$internal_array_state_hasOnlyMutableValues(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES)} +function module$contents$jspb$internal_array_state_markOnlyMutableValues(a,b){b?(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES):(0,module$exports$jspb$internal_array_state.clearFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES);return a} +function module$contents$jspb$internal_array_state_isImmutableJsRepeatedFieldCoercedFromWire(a){a=(0,module$exports$jspb$internal_array_state.getArrayState)(a);return!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_JS_REPEATED_FIELD_COERCED_FROM_WIRE)} +function module$contents$jspb$internal_array_state_markImmutableJsRepeatedFieldCoercedFromWire(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_JS_REPEATED_FIELD_COERCED_FROM_WIRE);return a} +function module$contents$jspb$internal_array_state_copyArrayBitsForClone(a,b){(0,module$exports$jspb$internal_array_state.setArrayState)(b,(a|0)&~(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED|module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_IMMUTABLE_VALUES_IF_OWNED| +module$exports$jspb$internal_array_state.ArrayStateFlags.TRANSFERRED|module$exports$jspb$internal_array_state.ArrayStateFlags.FROZEN_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.GBIGINT_FORMATTED))} +function module$contents$jspb$internal_array_state_copyArrayBitsAndMaybeFreezeForCloneImmutable(a,b){(0,module$exports$jspb$internal_array_state.setArrayState)(b,(a|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED)&~(module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_MUTABLE_VALUES|module$exports$jspb$internal_array_state.ArrayStateFlags.ONLY_IMMUTABLE_VALUES_IF_OWNED| +module$exports$jspb$internal_array_state.ArrayStateFlags.TRANSFERRED|module$exports$jspb$internal_array_state.ArrayStateFlags.FROZEN_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED|module$exports$jspb$internal_array_state.ArrayStateFlags.GBIGINT_FORMATTED))} +function module$contents$jspb$internal_array_state_markArrayTransferred(a){(0,module$exports$jspb$internal_array_state.addArrayStateFlags)(a,module$exports$jspb$internal_array_state.ArrayStateFlags.TRANSFERRED)}module$exports$jspb$internal_array_state.NO_PIVOT=536870912; +function module$contents$jspb$internal_array_state_setPivot(a,b){goog.asserts.assertNumber(b);goog.asserts.assert(0>14&module$contents$jspb$internal_array_state_PIVOT_MASK;return 0===a?module$exports$jspb$internal_array_state.NO_PIVOT:a}function module$contents$jspb$internal_array_state_getArrayIndexOffset(a){return+!!(a&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_MESSAGE_ID)-1}module$exports$jspb$internal_array_state.getArrayIndexOffset=module$contents$jspb$internal_array_state_getArrayIndexOffset; +module$exports$jspb$internal_array_state.getPivot=module$contents$jspb$internal_array_state_getPivot;module$exports$jspb$internal_array_state.setPivot=module$contents$jspb$internal_array_state_setPivot;module$exports$jspb$internal_array_state.checkMessageStateInvariants=module$contents$jspb$internal_array_state_checkMessageStateInvariants;module$exports$jspb$internal_array_state.areMutableReferencesOwned=module$contents$jspb$internal_array_state_areMutableReferencesOwned; +module$exports$jspb$internal_array_state.clearFlagBit=module$contents$jspb$internal_array_state_clearFlagBit;module$exports$jspb$internal_array_state.clearTypeSpecificFormattedFlagBits=module$contents$jspb$internal_array_state_clearTypeSpecificFormattedFlagBits;module$exports$jspb$internal_array_state.copyArrayBitsAndMaybeFreezeForCloneImmutable=module$contents$jspb$internal_array_state_copyArrayBitsAndMaybeFreezeForCloneImmutable;module$exports$jspb$internal_array_state.copyArrayBitsForClone=module$contents$jspb$internal_array_state_copyArrayBitsForClone; +module$exports$jspb$internal_array_state.addFlagsOnPossiblyFrozenArray=module$contents$jspb$internal_array_state_addFlagsOnPossiblyFrozenArray;module$exports$jspb$internal_array_state.hasFlagBit=module$contents$jspb$internal_array_state_hasFlagBit;module$exports$jspb$internal_array_state.hasOnlyMutableValues=module$contents$jspb$internal_array_state_hasOnlyMutableValues;module$exports$jspb$internal_array_state.isApiFormattedField=module$contents$jspb$internal_array_state_isApiFormattedField; +module$exports$jspb$internal_array_state.isConstructed=module$contents$jspb$internal_array_state_isConstructed;module$exports$jspb$internal_array_state.isImmutableArray=module$contents$jspb$internal_array_state_isImmutableArray;module$exports$jspb$internal_array_state.isRepeatedField=module$contents$jspb$internal_array_state_isRepeatedField;module$exports$jspb$internal_array_state.isImmutableJsRepeatedFieldCoercedFromWire=module$contents$jspb$internal_array_state_isImmutableJsRepeatedFieldCoercedFromWire; +module$exports$jspb$internal_array_state.markApiFormattedField=module$contents$jspb$internal_array_state_markApiFormattedField;module$exports$jspb$internal_array_state.markArrayImmutable=module$contents$jspb$internal_array_state_markArrayImmutable;module$exports$jspb$internal_array_state.markArrayTransferred=module$contents$jspb$internal_array_state_markArrayTransferred;module$exports$jspb$internal_array_state.markConstructed=module$contents$jspb$internal_array_state_markConstructed; +module$exports$jspb$internal_array_state.markMutableReferencesAreOwned=module$contents$jspb$internal_array_state_markMutableReferencesAreOwned;module$exports$jspb$internal_array_state.markOnlyMutableValues=module$contents$jspb$internal_array_state_markOnlyMutableValues;module$exports$jspb$internal_array_state.markRepeatedField=module$contents$jspb$internal_array_state_markRepeatedField;module$exports$jspb$internal_array_state.markImmutableJsRepeatedFieldCoercedFromWire=module$contents$jspb$internal_array_state_markImmutableJsRepeatedFieldCoercedFromWire; +module$exports$jspb$internal_array_state.markShared=module$contents$jspb$internal_array_state_markShared;module$exports$jspb$internal_array_state.setFlagBit=module$contents$jspb$internal_array_state_setFlagBit;module$exports$jspb$internal_array_state.setFlagBitTo=module$contents$jspb$internal_array_state_setFlagBitTo;module$exports$jspb$internal_array_state.setStateOnPossiblyFrozenArray=module$contents$jspb$internal_array_state_setStateOnPossiblyFrozenArray;var module$exports$jspb$internal={InternalMessage:function(){}};module$exports$jspb$internal.InternalMessage.prototype.isImmutable=function(){};module$exports$jspb$internal.InternalMessage.prototype.toJsonValue=function(){};module$exports$jspb$internal.InternalMessage.prototype.toStructuredCloneableValue=function(){};module$exports$jspb$internal.InternalImmutableMessage=function(){};module$exports$jspb$internal.InternalImmutableMessage.prototype.toMutable=function(){};var module$contents$jspb$internal_messageCtor; +function module$contents$jspb$internal_setMessageCtorInDebug(a){goog.DEBUG&&(module$contents$jspb$internal_messageCtor=a)}module$exports$jspb$internal.MESSAGE_PROTOTYPE_MARKER_VALUE={};function module$contents$jspb$internal_isMessage(a){var b=a.messagePrototypeMarker===module$exports$jspb$internal.MESSAGE_PROTOTYPE_MARKER_VALUE;(0,goog.asserts.assert)(!module$contents$jspb$internal_messageCtor||b===a instanceof module$contents$jspb$internal_messageCtor);return b} +module$exports$jspb$internal.InternalMap=function(){};module$exports$jspb$internal.SerializeBinaryFnHolder=function(){};module$exports$jspb$internal.MAP_PROTOTYPE_MARKER_VALUE={};function module$contents$jspb$internal_isMap(a){var b=!(!a||"object"!==typeof a||a.mapPrototypeMarker!==module$exports$jspb$internal.MAP_PROTOTYPE_MARKER_VALUE);(0,goog.asserts.assert)(b===a instanceof Map);return b} +function module$contents$jspb$internal_isEmptyMap(a){return module$contents$jspb$internal_isMap(a)&&0===(0,goog.asserts.assertInstanceof)(a,Map).size}function module$contents$jspb$internal_indexFromFieldNumber(a,b){(0,goog.asserts.assertNumber)(a);(0,goog.asserts.assert)(0b||b>=a.length){if(goog.DEBUG)throw Error("Index "+b+" out of range for field of length "+a.length+".");throw Error();}} +function module$contents$jspb$internal_checkRepeatedIndexInRangeForSet(a,b){if("number"!==typeof b||0>b||b>a.length){if(goog.DEBUG)throw Error("Index "+b+" out of range for field of length "+a.length+".");throw Error();}}module$exports$jspb$internal.SUPPORTS_HAS_INSTANCE=2018<=goog.FEATURESET_YEAR||"undefined"!=typeof Symbol&&"undefined"!=typeof Symbol.hasInstance;function module$contents$jspb$internal_invisiblePropValue(a){return{value:a,configurable:!1,writable:!1,enumerable:!1}} +function module$contents$jspb$internal_disallowPassingToStructuredClone(a){goog.DEBUG&&(a.preventPassingToStructuredClone=module$contents$jspb$internal_dontPassJspbTypeToStructuredClone)}function module$contents$jspb$internal_dontPassJspbTypeToStructuredClone(){}var module$contents$jspb$internal_ArrayIteratorIterable=function(a,b,c){this.idx_=0;this.arr_=a;this.mapper=b;this.thisArg=c}; +module$contents$jspb$internal_ArrayIteratorIterable.prototype.next=function(){if(this.idx_=d||!c&&0===d,"Expected at most 1 type-specific formatting bit, but got "+ +d+" with state: "+b);if(goog.asserts.ENABLE_ASSERTS&&(b=(0,module$exports$jspb$internal_array_state.getArrayState)(a),module$exports$jspb$internal_array_state.ArrayStateFlags.STRING_FORMATTED&b))for(b=0;b>>0:a}function module$contents$jspb$internal_accessor_helpers_coerceToNullishUint32(a){if(null==a)return a;if("string"===typeof a){if(!a)return;a=+a}if("number"===typeof a)return module$contents$jspb$internal_options_typeCheck32BitIntFields===module$exports$jspb$internal_options.CheckLevel.THROW?Number.isFinite(a)?a>>>0:void 0:a} +function module$contents$jspb$internal_accessor_helpers_checkInt64(a,b){b=!!b;if(!b&&!module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange)return a;if(!module$contents$jspb$internal_accessor_helpers_isNumberShaped(a,b))throw module$contents$jspb$exceptions_makeTypeError(goog.DEBUG?"Expected an int64 value encoded as a number or a string but got "+goog.typeOf(a)+": "+a:"int64");return"string"===typeof a?module$contents$jspb$internal_accessor_helpers_convertStringToInt64String(a, +b):b?module$contents$jspb$internal_accessor_helpers_convertNumberToInt64String(a,b):module$contents$jspb$internal_accessor_helpers_convertNumberToInt64Number(a,!1)}function module$contents$jspb$internal_accessor_helpers_checkNullishInt64(a){return null==a?a:module$contents$jspb$internal_accessor_helpers_checkInt64(a)}function module$contents$jspb$internal_accessor_helpers_onFastPathToTruncateUint64RangeString(a){return"-"===a[0]?!1:20>a.length?!0:20===a.length&&184467>Number(a.substring(0,6))} +function module$contents$jspb$internal_accessor_helpers_onFastPathToTruncateInt64RangeString(a){return"-"===a[0]?20>a.length?!0:20===a.length&&-922337a.length?!0:19===a.length&&922337>Number(a.substring(0,6))} +function module$contents$jspb$internal_accessor_helpers_truncateNumberToUint64RangeNumber(a){goog.asserts.assert(0>a||!(0a){module$contents$jspb$utils_splitInt64(a);var b=module$contents$jspb$utils_joinUnsignedDecimalString(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High);a=Number(b);return Number.isSafeInteger(a)?a:b}b=String(a);if(module$contents$jspb$internal_accessor_helpers_onFastPathToTruncateUint64RangeString(b))return a; +module$contents$jspb$utils_splitInt64(a);return module$contents$jspb$utils_joinUint64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)} +function module$contents$jspb$internal_accessor_helpers_convertNumberToInt64Number(a,b){goog.asserts.assert(module$contents$jspb$internal_accessor_helpers_isNumberShaped(a,b));goog.asserts.assert(b||module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange);a=Math.trunc(a);if(!b&&!module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange||Number.isSafeInteger(a))return a;goog.asserts.assert(!Number.isSafeInteger(a));goog.asserts.assert(Number.isInteger(a));module$contents$jspb$utils_splitInt64(a); +return a=module$contents$jspb$utils_joinInt64(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High)} +function module$contents$jspb$internal_accessor_helpers_convertNumberToUint64Number(a,b){goog.asserts.assert(module$contents$jspb$internal_accessor_helpers_isNumberShaped(a,b));goog.asserts.assert(b||module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange);a=Math.trunc(a);return!b&&!module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange||0<=a&&Number.isSafeInteger(a)?a:module$contents$jspb$internal_accessor_helpers_truncateNumberToUint64RangeNumber(a)} +function module$contents$jspb$internal_accessor_helpers_convertNumberToInt64String(a,b){goog.asserts.assert(module$contents$jspb$internal_accessor_helpers_isNumberShaped(a,b));goog.asserts.assert(b||module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange);a=Math.trunc(a);if(!b&&!module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange||Number.isSafeInteger(a))return String(a);goog.asserts.assert(!Number.isSafeInteger(a));goog.asserts.assert(Number.isInteger(a));b=String(a); +module$contents$jspb$internal_accessor_helpers_onFastPathToTruncateInt64RangeString(b)?a=b:(module$contents$jspb$utils_splitInt64(a),a=module$contents$jspb$utils_joinSignedDecimalString(module$contents$jspb$utils_split64Low,module$contents$jspb$utils_split64High));return a} +function module$contents$jspb$internal_accessor_helpers_convertNumberToUint64String(a,b){goog.asserts.assert(module$contents$jspb$internal_accessor_helpers_isNumberShaped(a,b));goog.asserts.assert(b||module$contents$jspb$internal_options_typeCheck64BitIntFields);a=Math.trunc(a);if(!b&&!module$contents$jspb$internal_options_typeCheck64BitIntFieldsAreInRange||0<=a&&Number.isSafeInteger(a))return String(a);goog.asserts.assert(0>a||!(0>>0} +function module$contents$jspb$internal_accessor_helpers_uint32KeyToApiForMaps(a,b,c){a=module$contents$jspb$internal_accessor_helpers_uint32ToApiForMaps(a,b,c);return"number"===typeof a?a>>>0:a}function module$contents$jspb$internal_accessor_helpers_int64ToApiForMaps(a,b,c){a=b?module$contents$jspb$internal_accessor_helpers_checkInt64(a):module$contents$jspb$internal_accessor_helpers_coerceToNullishInt64(a);return null==a?c?0:void 0:a} +function module$contents$jspb$internal_accessor_helpers_int64KeyToApiForMaps(a,b,c){a=module$contents$jspb$internal_accessor_helpers_int64ToApiForMaps(a,b,c);return"string"===typeof a&&(b=+a,Number.isSafeInteger(b))?b:a}function module$contents$jspb$internal_accessor_helpers_uint64ToApiForMaps(a,b,c){a=b?module$contents$jspb$internal_accessor_helpers_checkUint64(a):module$contents$jspb$internal_accessor_helpers_coerceToNullishUint64(a);return null==a?c?0:void 0:a} +function module$contents$jspb$internal_accessor_helpers_uint64KeyToApiForMaps(a,b,c){a=module$contents$jspb$internal_accessor_helpers_uint64ToApiForMaps(a,b,c);return"string"===typeof a&&(b=+a,Number.isSafeInteger(b))?b:a}function module$contents$jspb$internal_accessor_helpers_floatToApiForMaps(a,b,c){if(b)return module$contents$jspb$internal_accessor_helpers_checkFloatingPoint(a);a=module$contents$jspb$internal_accessor_helpers_coerceToNullishNumber(a);var d;return null!=(d=a)?d:c?0:void 0} +function module$contents$jspb$internal_accessor_helpers_stringToApiForMaps(a,b,c){if(b)return module$contents$jspb$internal_accessor_helpers_checkString(a);a=module$contents$jspb$internal_accessor_helpers_coerceToNullishString(a);var d;return null!=(d=a)?d:c?"":void 0} +function module$contents$jspb$internal_accessor_helpers_bytesToApiForMaps(a,b,c){if(b){if(!(a instanceof module$exports$jspb$bytestring.ByteString))throw goog.DEBUG?Error("Expected ByteString but got "+goog.typeOf(a)+": "+a):Error();return c=a}a=null==a||a instanceof module$exports$jspb$bytestring.ByteString?a:"string"===typeof a?module$exports$jspb$bytestring.ByteString.fromBase64(a):module$contents$jspb$internal_bytes_isU8(a)?module$exports$jspb$bytestring.ByteString.fromUint8Array(a):void 0;var d; +return null!=(d=a)?d:c?module$exports$jspb$bytestring.ByteString.empty():void 0}function module$contents$jspb$internal_accessor_helpers_enumToApiForMaps(a,b,c){a=b?module$contents$jspb$internal_accessor_helpers_checkEnum(a):module$contents$jspb$internal_accessor_helpers_coerceToNullishEnum(a);return null==a?c?0:void 0:a};var module$exports$jspb$internal_map={};function module$contents$jspb$internal_map_constructingMapSubclassFails(){try{var a=function(){return $jscomp.construct(Map,[],this.constructor)};$jscomp.inherits(a,Map);new a;return!1}catch(b){return!0}} +var module$contents$jspb$internal_map_USE_DELEGATING_MAPS=2017>=goog.FEATURESET_YEAR&&(module$exports$jspb$internal_options.DISABLE_ES6_MAP_SUBCLASSES_FOR_TESTING||module$contents$jspb$internal_map_constructingMapSubclassFails()),module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems=function(){this.map_=new Map};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.get=function(a){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.get(a)}; +module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.set=function(a,b){(0,goog.asserts.assert)(this.size===this.map_.size);this.map_.set(a,b);this.updateSize_();return this};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.delete=function(a){(0,goog.asserts.assert)(this.size===this.map_.size);a=this.map_.delete(a);this.updateSize_();return a}; +module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.clear=function(){(0,goog.asserts.assert)(this.size===this.map_.size);this.map_.clear();this.updateSize_()};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.has=function(a){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.has(a)}; +module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.entries=function(){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.entries()};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.keys=function(){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.keys()};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.values=function(){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.values()}; +module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.forEach=function(a,b){(0,goog.asserts.assert)(this.size===this.map_.size);return this.map_.forEach(a,b)};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype[Symbol.iterator]=function(){(0,goog.asserts.assert)(this.size===this.map_.size);return this.entries()};module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype.updateSize_=function(){this.size=this.map_.size}; +var module$contents$jspb$internal_map_MapBase=function(){if(module$contents$jspb$internal_map_USE_DELEGATING_MAPS)return Object.setPrototypeOf(module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype,Map.prototype),Object.defineProperties(module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),module$contents$jspb$internal_map_DelegatingMapForPseudoEs6Systems;var a=function(){return $jscomp.construct(Map, +[],this.constructor)};$jscomp.inherits(a,Map);return a}();function module$contents$jspb$internal_map_noopToApi(a){return a} +module$exports$jspb$internal_map.JspbMap=function(a,b,c,d,e){c=void 0===c?module$contents$jspb$internal_map_noopToApi:c;d=void 0===d?module$contents$jspb$internal_map_noopToApi:d;var f=module$contents$jspb$internal_map_MapBase.call(this)||this;module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_logOperation({constructMap:1});(0,goog.asserts.assert)(!module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS||e===module$exports$jspb$internal.EMPTY_MAP_TOKEN|| +c!==module$contents$jspb$internal_map_noopToApi);(0,goog.asserts.assert)(!module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS||e===module$exports$jspb$internal.EMPTY_MAP_TOKEN||void 0!==b||d!==module$contents$jspb$internal_map_noopToApi);e=(0,module$exports$jspb$internal_array_state.getArrayState)(a);(0,goog.asserts.assert)(e&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY||(e&(module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED| +module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED))!==(module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED|module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED),"owned maps should not be constructed twice");e|=module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED;(0,module$exports$jspb$internal_array_state.setArrayState)(a,e);f.arrayState=e;f.valueCtor=b;f.keyToApi=c||module$contents$jspb$internal_map_noopToApi;f.valueToApi= +f.valueCtor?module$contents$jspb$internal_map_messageToApi:d||module$contents$jspb$internal_map_noopToApi;for(var g=0;gb?1:ab.length)return!1;b=Array.prototype.slice.call(b);b.sort(module$contents$jspb$internal_map_compareEntryKeys);for(var c=0,d=void 0,e=b.length-1;0<=e;e--){var f=b[e];if(!f||!Array.isArray(f)||2!==f.length)return!1;var g=f[0];if(g!==d){if(!module$contents$jspb$internal_compare_compareFields(a.get(g),f[1]))return!1;d=g;c++}}return c===a.size} +function module$contents$jspb$internal_map_compareMapArraysInternal(a,b){if(!Array.isArray(a)||!Array.isArray(b))return!1;a=Array.prototype.slice.call(a);b=Array.prototype.slice.call(b);a.sort(module$contents$jspb$internal_map_compareEntryKeys);b.sort(module$contents$jspb$internal_map_compareEntryKeys);var c=a.length,d=b.length;if(0===c&&0===d)return!0;for(var e=0,f=0;e=c&&f>=d} +function module$contents$jspb$internal_map_compareMapArrays(a,b){var c=module$contents$jspb$internal_map_compareMapArraysInternal(a,b);module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&(0,goog.asserts.assert)(c===module$contents$jspb$internal_map_compareMapToMapInternal(new Map(b),new Map(a)));return c}function module$contents$jspb$internal_map_getEntryFromMap(a){return[a,(0,goog.asserts.assertExists)(this.get(a))]}module$exports$jspb$internal_map.isImmutableMap=module$contents$jspb$internal_map_isImmutableMap; +module$exports$jspb$internal_map.isMutableMap=module$contents$jspb$internal_map_isMutableMap;module$exports$jspb$internal_map.compareMapArrays=module$contents$jspb$internal_map_compareMapArrays;function module$contents$jspb$internal_compare_maybeCompareUint8Arrays(a,b){if("string"===typeof b)try{b=module$contents$jspb$internal_bytes_decodeByteArray(b)}catch(c){return!1}return module$contents$jspb$internal_bytes_isU8(b)&&module$contents$jspb$internal_bytes_uint8ArrayEquals(a,b)} +function module$contents$jspb$internal_compare_compareMessages(a,b){if(module$contents$jspb$internal_isMessage(a)){var c=module$contents$jspb$internal_getRepeatedFieldSet(a);a=a.internalArray_}else if(!Array.isArray(a))return!1;if(module$contents$jspb$internal_isMessage(b))c=c||module$contents$jspb$internal_getRepeatedFieldSet(b),b=b.internalArray_;else if(!Array.isArray(b))return!1;var d;return module$contents$jspb$internal_compare_compareFields(a,b,null!=(d=c)?d:module$exports$jspb$internal.EMPTY_LIST_SENTINEL)} +function module$contents$jspb$internal_compare_compareFields(a,b,c){module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_logOperation({internalCompareFields:1});if(a===b||null==a&&null==b)return!0;if(a instanceof module$exports$jspb$internal_map.JspbMap)return a.internalMapComparator(b);if(b instanceof module$exports$jspb$internal_map.JspbMap)return b.internalMapComparator(a);if(null==a||null==b)return!1;if(a instanceof module$exports$jspb$bytestring.ByteString)return a.internalCompareEqualsDoNotUse(b); +if(b instanceof module$exports$jspb$bytestring.ByteString)return b.internalCompareEqualsDoNotUse(a);if(module$contents$jspb$internal_bytes_isU8(a))return module$contents$jspb$internal_compare_maybeCompareUint8Arrays(a,b);if(module$contents$jspb$internal_bytes_isU8(b))return module$contents$jspb$internal_compare_maybeCompareUint8Arrays(b,a);var d=typeof a,e=typeof b;if("object"!==d||"object"!==e)return Number.isNaN(a)||Number.isNaN(b)?String(a)===String(b):"string"===d&&"number"===e||"number"===d&& +"string"===e?+a===+b:"boolean"===d&&"number"===e||"number"===d&&"boolean"===e?!a===!b:!1;if(module$contents$jspb$internal_isMessage(a)||module$contents$jspb$internal_isMessage(b))return module$contents$jspb$internal_compare_compareMessages(a,b);if(a.constructor!=b.constructor)return!1;if(a.constructor===Array){var f=(0,module$exports$jspb$internal_array_state.getArrayState)(a),g=(0,module$exports$jspb$internal_array_state.getArrayState)(b),h=a.length,l=b.length;d=Math.max(h,l);e=module$contents$jspb$internal_array_state_getArrayIndexOffset(f| +g);f=!!((f|g)&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD);if(!f&&(g=module$contents$jspb$internal_getComparisonTypeInfoArraySymbol(),g=a[g]||b[g])){var n=module$contents$jspb$internal_getMapFieldsForTypeInfo(g);c||(c=module$contents$jspb$internal_getRepeatedFieldsForTypeInfo(g))}g=h&&a[h-1];var r=l&&b[l-1];module$contents$jspb$internal_isSparseObject(g)||(g=null);module$contents$jspb$internal_isSparseObject(r)||(r=null);h=h-e-+!!g;l=l-e-+!!r;for(var x=0;x=module$exports$jspb$internal_array_state.PIVOT_LIMIT){if(goog.DEBUG)throw Error("Found a message with a sparse object at fieldNumber "+ +b+" is >= the limit "+module$exports$jspb$internal_array_state.PIVOT_LIMIT);throw Error();}d=module$contents$jspb$internal_array_state_setPivot(c,b);break a}}if(d){e=module$contents$jspb$internal_array_state_getArrayIndexOffset(c);d=Math.max(d,module$contents$jspb$internal_fieldNumberFromIndex(b,e));if(d>module$exports$jspb$internal_array_state.PIVOT_LIMIT){if(goog.DEBUG)throw Error("a message was constructed with an array of length "+b+" which is longer than "+module$exports$jspb$internal_array_state.PIVOT_LIMIT+ +", are you using a supported serializer?");throw Error();}d=module$contents$jspb$internal_array_state_setPivot(c,d)}else d=c}}(0,module$exports$jspb$internal_array_state.setArrayState)(a,d);(0,goog.asserts.assert)(d&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED);return a}function module$contents$jspb$internal_construct_isMapEntryMessageMeta(a){return a===module$contents$jspb$internal_construct_mapEntryMessageMeta} +module$exports$jspb$internal_construct.arrayIndexOffsetForMeta=module$contents$jspb$internal_construct_arrayIndexOffsetForMeta;module$exports$jspb$internal_construct.constructMessageArray=module$contents$jspb$internal_construct_constructMessageArray;module$exports$jspb$internal_construct.constructMessageArrayFromMeta=module$contents$jspb$internal_construct_constructMessageArrayFromMeta;module$exports$jspb$internal_construct.internalConstructFromOwnedArray=module$contents$jspb$internal_construct_internalConstructFromOwnedArray; +module$exports$jspb$internal_construct.internalConstructFromSharedArray=module$contents$jspb$internal_construct_internalConstructFromSharedArray;module$exports$jspb$internal_construct.isMapEntryMessageMeta=module$contents$jspb$internal_construct_isMapEntryMessageMeta;module$exports$jspb$internal_construct.tryParseMessageMeta=module$contents$jspb$internal_construct_tryParseMessageMeta;function module$contents$jspb$internal_json_convertToJsonFormat(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "boolean":return a?1:0;case "object":if(a){if(Array.isArray(a))return module$contents$jspb$internal_shouldSerializeEmptyRepeatedFields||!module$contents$jspb$internal_isEmptyRepeatedField(a,void 0,9999)?a:void 0;if(module$contents$jspb$internal_bytes_isU8(a))return module$contents$jspb$internal_bytes_encodeByteArray(a);if(a instanceof module$exports$jspb$bytestring.ByteString)return a.asBase64(); +if(a instanceof module$exports$jspb$internal_map.JspbMap)return a=a.toArrayInternal(),module$exports$jspb$internal_options.SERIALIZE_EMPTY_MAPS||0!==a.length?a:void 0}}return a};var module$exports$jspb$internal_copy={}; +function module$contents$jspb$internal_copy_copyProtoArray(a,b,c){var d=module$contents$jspb$internal_operations_slice(a),e=d.length,f=b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT?d[e-1]:void 0;e+=f?-1:0;for(b=b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_MESSAGE_ID?1:0;b(a.constructor[module$exports$jspb$internal_symbols.STRING_TYPE_DOWNGRADES_SYMBOL]=(a.constructor[module$exports$jspb$internal_symbols.STRING_TYPE_DOWNGRADES_SYMBOL]|0)+1)&&module$contents$jspb$exceptions_asyncThrowWarning(goog.DEBUG? +"an _asLegacyNumberOrString accessor was called after an _asString accessor: this can cause type errors when numeric values are expected -- we recommend standardizing your whole application on the _asString version. See go/jspb-gencode?polyglot=typescript#int64-string-accessors for more information.":"int64 downgrade");return c===module$exports$jspb$internal_array_state.TypeSpecificApiFormat.LEGACY?!1:!(c&b)} +jspb.internal.jspb_adapters.getFieldNullable=function(a,b,c){a=a.internalArray_;return jspb.internal.jspb_adapters.getFieldNullableInternal(a,(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),b,c)}; +jspb.internal.jspb_adapters.getFieldNullableInternal=function(a,b,c,d){module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&module$contents$jspb$internal_operations_logOperation({getField:1});if(-1===c)return null;var e=module$contents$jspb$internal_array_state_getPivot(b);if(c>=e){if(b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT)return a[a.length-1][c]}else{e=a.length;if(d&&b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT&&(d=a[e- +1][c],null!=d))return d;b=module$contents$jspb$internal_indexFromFieldNumber(c,module$contents$jspb$internal_array_state_getArrayIndexOffset(b));if(b=f||e&&!module$exports$jspb$internal_options.writeLowIndexExtensionsInline){(0,goog.asserts.assert)(f!== +module$exports$jspb$internal_array_state.NO_PIVOT);e=b;if(b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT)f=a[a.length-1];else{if(null==d)return e;var g=a;f=module$contents$jspb$internal_indexFromFieldNumber(f,module$contents$jspb$internal_array_state_getArrayIndexOffset(b));(0,goog.asserts.assert)(f>=g.length&&Number.isInteger(f)&&4294967295>f,"Expected sparseObjectIndex (%s) to be >= %s and a valid array index",f,g.length);f=g[f]={};e|=module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT}f[c]= +d;e!==b&&(0,module$exports$jspb$internal_array_state.setArrayState)(a,e);return e}a[module$contents$jspb$internal_indexFromFieldNumber(c,module$contents$jspb$internal_array_state_getArrayIndexOffset(b))]=d;b&module$exports$jspb$internal_array_state.ArrayStateFlags.HAS_SPARSE_OBJECT&&(a=a[a.length-1],c in a&&delete a[c]);return b}jspb.internal.jspb_adapters.setFieldIfNotNullish=function(a,b,c,d){return null==c?a:jspb.internal.jspb_adapters.setField(a,b,c,d)}; +jspb.internal.jspb_adapters.hasField=function(a,b,c){c=void 0===c?!1:c;return null!=jspb.internal.jspb_adapters.getFieldNullable(a,b,c)};jspb.internal.jspb_adapters.hasWrapperField=function(a,b,c,d){d=void 0===d?!1:d;return void 0!==jspb.internal.jspb_adapters.getReadonlyWrapperFieldOrUndefined(a,b,c,d)}; +var module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode={DEFAULT:0,CALLER_HANDLES_IMMUTABILITY:1,CALLER_DOESNT_RETURN_ARRAY:2},module$contents$jspb$internal$jspb_adapters_ALL_SHARE_MODE_FLAGS=module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_HANDLES_IMMUTABILITY|module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_DOESNT_RETURN_ARRAY,module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType={FROZEN:1,UNFROZEN:2,EITHER_FROZEN_OR_UNFROZEN:3}; +jspb.internal.jspb_adapters.RepeatedArrayReturnType=module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType; +function module$contents$jspb$internal$jspb_adapters_assertMessageReturnedSafely(a,b,c){if(!goog.DEBUG||!a)return a;(0,goog.asserts.assert)(module$contents$jspb$internal_array_state_isImmutableArray(b)?module$contents$jspb$internal_isImmutableMessage(a):!0);module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&((0,goog.asserts.assert)((0,module$exports$jspb$internal_array_state.getMessageArrayState)(a.internalArray_)&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED),(0,goog.asserts.assert)(!((0,module$exports$jspb$internal_array_state.getMessageArrayState)(b)& +module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY)||(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a.internalArray_)&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY),c&&(0,module$exports$jspb$internal_array_state.getMessageArrayState)(b)&module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED&&(0,goog.asserts.assert)((0,module$exports$jspb$internal_array_state.getMessageArrayState)(a.internalArray_)& +(module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY)));return a} +function module$contents$jspb$internal$jspb_adapters_assertMapReturnedSafely(a,b){if(null==a)return a;(0,goog.asserts.assert)(a.arrayState&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY||a.arrayState&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED||!(a.arrayState&module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED));(0,goog.asserts.assert)(!!module$contents$jspb$internal_map_isImmutableMap(a)===module$contents$jspb$internal_array_state_isImmutableArray(b)); +if(module$exports$jspb$internal_options.DETAILED_JSPB_ASSERTS&&a.valueCtor)for(var c=$jscomp.makeIterator(a.rawValuesInternal_()),d=c.next();!d.done;d=c.next())if((d=d.value)&&"object"==typeof d&&module$contents$jspb$internal_isMessage(d)&&module$contents$jspb$internal$jspb_adapters_assertMessageReturnedSafely(d,b,void 0),Array.isArray(d)){var e=(0,module$exports$jspb$internal_array_state.getArrayState)(d);e&module$exports$jspb$internal_array_state.ArrayStateFlags.CONSTRUCTED&&module$contents$jspb$internal_array_state_checkMessageStateInvariants(d, +e)}return a}function module$contents$jspb$internal$jspb_adapters_assertArrayReturnedSafely(a,b,c,d){c=void 0===c?!1:c;d=void 0===d?!1:d;module$contents$jspb$internal_assertArrayInvariants(a,c);c||(d||(0,goog.asserts.assert)(Object.isFrozen(a)||!module$contents$jspb$internal_array_state_areMutableReferencesOwned(a)),(0,goog.asserts.assert)(module$contents$jspb$internal_array_state_isImmutableArray(b)?Object.isFrozen(a):!0));return a} +jspb.internal.jspb_adapters.hasOneofWrapperField=function(a,b,c,d){return void 0!==jspb.internal.jspb_adapters.getReadonlyWrapperFieldOrUndefined(a,b,jspb.internal.jspb_adapters.isOneofCase(a,d,c))}; +function module$contents$jspb$internal$jspb_adapters_getRepeatedFieldInternal(a,b,c,d,e){(0,goog.asserts.assert)((d&module$contents$jspb$internal$jspb_adapters_ALL_SHARE_MODE_FLAGS)===d);var f=b&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY,g=jspb.internal.jspb_adapters.getFieldNullableInternal(a,b,c,e);Array.isArray(g)||(g=module$exports$jspb$internal.EMPTY_LIST_SENTINEL);var h=!(d&module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_DOESNT_RETURN_ARRAY); +d=!(d&module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_HANDLES_IMMUTABILITY);var l=!!(b&module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED),n=(0,module$exports$jspb$internal_array_state.getArrayState)(g);n!==module$exports$jspb$internal_array_state.DEFAULT_ARRAY_STATE||!l||f||h?n&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD||(n|=module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD,(0,module$exports$jspb$internal_array_state.setArrayState)(g, +n)):(n=n|module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD|module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED,(0,module$exports$jspb$internal_array_state.setArrayState)(g,n));f?(a=!1,n&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY||(module$contents$jspb$internal_array_state_markArrayImmutable(g),a=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED&n)),(d||a)&&Object.freeze(g)):(f=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY& +n)||!!(module$exports$jspb$internal_array_state.ArrayStateFlags.FROZEN_ARRAY&n),d&&f?(g=module$contents$jspb$internal_operations_slice(g),d=module$exports$jspb$internal_array_state.ArrayStateFlags.IS_REPEATED_FIELD,l&&!h&&(d|=module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED),(0,module$exports$jspb$internal_array_state.setArrayState)(g,d),module$contents$jspb$internal$jspb_adapters_setFieldIgnoringImmutabilityInternal(a,b,c,g,e)):h&&n&module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED&& +!f&&module$contents$jspb$internal_array_state_markShared(g));return g}jspb.internal.jspb_adapters.getRepeatedField=function(a,b,c){c=void 0===c?!1:c;a=a.internalArray_;return module$contents$jspb$internal$jspb_adapters_assertArrayReturnedSafely(module$contents$jspb$internal$jspb_adapters_getRepeatedFieldInternal(a,(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),b,module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.DEFAULT,c),a)}; +jspb.internal.jspb_adapters.getRepeatedFieldForBinary=function(a,b,c){c=void 0===c?!1:c;return module$contents$jspb$internal$jspb_adapters_assertArrayReturnedSafely(module$contents$jspb$internal$jspb_adapters_getRepeatedFieldInternal(a,(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),b,module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_DOESNT_RETURN_ARRAY,c),a,!1,!0)}; +jspb.internal.jspb_adapters.getRepeatedFieldUnfrozenForImmutableJS=function(a,b){var c=a.internalArray_,d=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(c),e=d&module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY;d=module$contents$jspb$internal$jspb_adapters_getRepeatedFieldInternal(c,d,b,e?module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_HANDLES_IMMUTABILITY|module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_DOESNT_RETURN_ARRAY: +module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.DEFAULT,!1);(0,module$exports$jspb$internal_array_state.getMessageArrayState)(c);if(Object.isFrozen(d)){var f=(0,module$exports$jspb$internal_array_state.getArrayState)(d);e&&(f|=module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY);d=module$contents$jspb$internal_operations_slice(d);(0,module$exports$jspb$internal_array_state.setArrayState)(d,f);jspb.internal.jspb_adapters.setRepeatedFieldIgnoringImmutability(a, +b,d,!1)}return module$contents$jspb$internal$jspb_adapters_assertArrayReturnedSafely(d,c,!!e)};jspb.internal.jspb_adapters.getRepeatedWrapperCount=function(a,b,c,d){d=void 0===d?!1:d;a=a.internalArray_;b=module$contents$jspb$internal$jspb_adapters_getRepeatedWrapperFieldInternal(a,(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),b,c,d,module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.EITHER_FROZEN_OR_UNFROZEN,!0);return b.length}; +jspb.internal.jspb_adapters.getRepeatedIndexedReadonlyWrapper=function(a,b,c,d,e){e=void 0===e?!1:e;a=a.internalArray_;b=module$contents$jspb$internal$jspb_adapters_getRepeatedWrapperFieldInternal(a,(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),c,b,e,module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.EITHER_FROZEN_OR_UNFROZEN,!0);module$contents$jspb$internal_checkRepeatedIndexInRangeForGet(b,d);return b[d]}; +jspb.internal.jspb_adapters.getRepeatedIndexedWrapper=function(a,b,c,d,e){e=void 0===e?!1:e;a=jspb.internal.jspb_adapters.getRepeatedWrapperField(a,c,b,e);module$contents$jspb$internal_checkRepeatedIndexInRangeForGet(a,d);return a[d]}; +jspb.internal.jspb_adapters.getRepeatedIndexedMutableWrapper=function(a,b,c,d,e){e=void 0===e?!1:e;a=a.internalArray_;var f=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a);module$contents$jspb$internal_checkNotImmutableState(f);b=module$contents$jspb$internal$jspb_adapters_getRepeatedWrapperFieldInternal(a,f,c,b,e,module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.UNFROZEN,!0);module$contents$jspb$internal_checkRepeatedIndexInRangeForGet(b,d);c=b[d];e=module$contents$jspb$internal_immutability_messageToMutable(c); +c!==e&&(b[d]=e);return e};jspb.internal.jspb_adapters.setRepeatedIndexedWrapper=function(a,b,c,d,e,f){f=void 0===f?!1:f;var g=a;module$contents$jspb$internal$jspb_adapters_spliceRepeatedWrapperField(g,b,c,e,d,f,1);return a}; +jspb.internal.jspb_adapters.getFloatingPointFieldNullable=function(a,b,c){a=a.internalArray_;var d=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),e=jspb.internal.jspb_adapters.getFieldNullableInternal(a,d,b,c),f=module$contents$jspb$internal_accessor_helpers_coerceToNullishNumber(e);null!=f&&f!==e&&module$contents$jspb$internal$jspb_adapters_setFieldIgnoringImmutabilityInternal(a,d,b,f,c);return f}; +jspb.internal.jspb_adapters.getBooleanFieldNullable=function(a,b,c){return module$contents$jspb$internal_accessor_helpers_coerceToNullishBoolean(jspb.internal.jspb_adapters.getFieldNullable(a,b,c))}; +jspb.internal.jspb_adapters.getBytesFieldNullable=function(a,b,c){a=a.internalArray_;var d=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(a),e=jspb.internal.jspb_adapters.getFieldNullableInternal(a,d,b,c),f=!!(d&(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY|module$exports$jspb$internal_array_state.ArrayStateFlags.MUTABLE_REFERENCES_ARE_OWNED));f=module$contents$jspb$internal_bytesAsByteString(e,!0,!0,f);null!=f&&f!==e&&module$contents$jspb$internal$jspb_adapters_setFieldIgnoringImmutabilityInternal(a, +d,b,f,c);return f};jspb.internal.jspb_adapters.getRepeatedFieldReturnType=function(a,b){return module$contents$jspb$internal_options_getReadonlyRepeatedArrays(!!a)&&b!==module$exports$jspb$internal.DO_NOT_FREEZE__LEGACY_OPTION?module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.FROZEN:module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.UNFROZEN}; +function module$contents$jspb$internal$jspb_adapters_getApiFormattedRepeatedField(a,b,c,d,e,f,g){e=void 0===e?module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.UNFROZEN:e;var h=a.internalArray_,l=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(h),n=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY&l);n&&(e=module$contents$jspb$internal$jspb_adapters_RepeatedArrayReturnType.FROZEN);f=!!f;n=module$contents$jspb$internal$jspb_adapters_getRepeatedFieldInternal(h, +l,b,module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_HANDLES_IMMUTABILITY|(f?module$contents$jspb$internal$jspb_adapters_RepeatedFieldShareMode.CALLER_DOESNT_RETURN_ARRAY:0),d);l=(0,module$exports$jspb$internal_array_state.getMessageArrayState)(h);var r=(0,module$exports$jspb$internal_array_state.getArrayState)(n),x=r,A=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY&r),D=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_API_FORMATTED& +r);module$contents$jspb$internal_assertRepeated64BitIntegerFieldApiFormattingInvariants(n);var J=A&&D;if(module$contents$jspb$internal$jspb_adapters_needsApiFormatting(a,r,g)){D&&(n=module$contents$jspb$internal_operations_slice(n),x=0,r=module$contents$jspb$internal$jspb_adapters_setFlagsForSlicedArray(r,l,f),A=!!(module$exports$jspb$internal_array_state.ArrayStateFlags.IS_IMMUTABLE_ARRAY&r),l=module$contents$jspb$internal$jspb_adapters_setFieldIgnoringImmutabilityInternal(h,l,b,n,d));(0,goog.asserts.assert)(!Object.isFrozen(n)); +for(D=a=0;a= +f){Object.assign(b[b.length-1]={},h);break}g=!0}(0,jspb.internal.jspb_adapters.ensureRepeatedFieldsWritten)(a,b,d,!c)}a=b.length;if(!a)return b;var l;if(module$contents$jspb$internal_isSparseObject(c=b[a-1])){a:{var n=c;f={};h=!1;for(var r in n)if(module$contents$jspb$internal_hasOwnPropertyIfNotTrusted(n,r)){var x=n[r];if(Array.isArray(x)){var A=x;if(!module$contents$jspb$internal_options_serializeEmptyTrailingFields&&module$contents$jspb$internal_isEmptyRepeatedField(x,d,+r)||!module$exports$jspb$internal_options.SERIALIZE_EMPTY_MAPS&& +module$contents$jspb$internal_isEmptyMap(x))x=null;x!=A&&(h=!0)}null!=x?f[r]=x:h=!0}if(h){for(var D in f){n=f;break a}n=null}}n!=c&&(l=!0);a--}for(e=module$contents$jspb$internal_array_state_getArrayIndexOffset(e);0h&&(x-=h,h=a[++g]);for(;l"}else return void 0===a?"undefined":null===a?"null":typeof a};goog.asserts.dom.assertIsElement=module$contents$goog$asserts$dom_assertIsElement;goog.asserts.dom.assertIsHtmlElement=module$contents$goog$asserts$dom_assertIsHtmlElement; +goog.asserts.dom.assertIsHtmlElementOfType=module$contents$goog$asserts$dom_assertIsHtmlElementOfType;goog.asserts.dom.assertIsHtmlAnchorElement=module$contents$goog$asserts$dom_assertIsHtmlAnchorElement;goog.asserts.dom.assertIsHtmlButtonElement=module$contents$goog$asserts$dom_assertIsHtmlButtonElement;goog.asserts.dom.assertIsHtmlLinkElement=module$contents$goog$asserts$dom_assertIsHtmlLinkElement;goog.asserts.dom.assertIsHtmlImageElement=module$contents$goog$asserts$dom_assertIsHtmlImageElement; +goog.asserts.dom.assertIsHtmlAudioElement=module$contents$goog$asserts$dom_assertIsHtmlAudioElement;goog.asserts.dom.assertIsHtmlVideoElement=module$contents$goog$asserts$dom_assertIsHtmlVideoElement;goog.asserts.dom.assertIsHtmlInputElement=module$contents$goog$asserts$dom_assertIsHtmlInputElement;goog.asserts.dom.assertIsHtmlTextAreaElement=module$contents$goog$asserts$dom_assertIsHtmlTextAreaElement;goog.asserts.dom.assertIsHtmlCanvasElement=module$contents$goog$asserts$dom_assertIsHtmlCanvasElement; +goog.asserts.dom.assertIsHtmlEmbedElement=module$contents$goog$asserts$dom_assertIsHtmlEmbedElement;goog.asserts.dom.assertIsHtmlFormElement=module$contents$goog$asserts$dom_assertIsHtmlFormElement;goog.asserts.dom.assertIsHtmlFrameElement=module$contents$goog$asserts$dom_assertIsHtmlFrameElement;goog.asserts.dom.assertIsHtmlIFrameElement=module$contents$goog$asserts$dom_assertIsHtmlIFrameElement;goog.asserts.dom.assertIsHtmlObjectElement=module$contents$goog$asserts$dom_assertIsHtmlObjectElement; +goog.asserts.dom.assertIsHtmlScriptElement=module$contents$goog$asserts$dom_assertIsHtmlScriptElement;goog.dom.asserts={};goog.dom.asserts.assertIsLocation=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);b&&(!a||!(a instanceof b.Location)&&a instanceof b.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(a))}return a}; +goog.dom.asserts.debugStringForType_=function(a){if(goog.isObject(a))try{return a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(b){return""}else return void 0===a?"undefined":null===a?"null":typeof a};goog.dom.asserts.getWindow_=function(a){try{var b=a&&a.ownerDocument,c=b&&(b.defaultView||b.parentWindow);c=c||goog.global;if(c.Element&&c.Location)return c}catch(d){}return null};goog.functions={};goog.functions.constant=function(a){return function(){return a}};goog.functions.FALSE=function(){return!1};goog.functions.TRUE=function(){return!0};goog.functions.NULL=function(){return null};goog.functions.UNDEFINED=function(){};goog.functions.EMPTY=goog.functions.UNDEFINED;goog.functions.identity=function(a){return a};goog.functions.error=function(a){return function(){throw Error(a);}};goog.functions.fail=function(a){return function(){throw a;}}; +goog.functions.lock=function(a,b){b=b||0;return function(){var c=this;return a.apply(c,Array.prototype.slice.call(arguments,0,b))}};goog.functions.nth=function(a){return function(){return arguments[a]}};goog.functions.partialRight=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=this;d===goog.global&&(d=void 0);var e=Array.prototype.slice.call(arguments);e.push.apply(e,c);return a.apply(d,e)}}; +goog.functions.withReturnValue=function(a,b){return goog.functions.sequence(a,goog.functions.constant(b))};goog.functions.equalTo=function(a,b){return function(c){return b?a==c:a===c}};goog.functions.compose=function(a,b){var c=arguments,d=c.length;return function(){var e=this,f;d&&(f=c[d-1].apply(e,arguments));for(var g=d-2;0<=g;g--)f=c[g].call(e,f);return f}};goog.functions.sequence=function(a){var b=arguments,c=b.length;return function(){for(var d=this,e,f=0;fa.length?"&":"")+encodeURIComponent(d)+"="+encodeURIComponent(String(g)))}}return b};goog.html.SafeUrl=function(a,b){if(goog.DEBUG&&b!==goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_)throw Error("SafeUrl is not meant to be built directly");this.privateDoNotAccessOrElseSafeUrlWrappedValue_=a};goog.html.SafeUrl.prototype.toString=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()};goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()}; +goog.html.SafeUrl.unwrap=function(a){if(a instanceof goog.html.SafeUrl&&a.constructor===goog.html.SafeUrl)return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;goog.asserts.fail("expected object of type SafeUrl, got '"+a+"' of type "+goog.typeOf(a));return"type_error:SafeUrl"};goog.html.SafeUrl.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(goog.DEBUG&&"javascript:"===goog.html.SafeUrl.extractScheme(a))throw Error("Building a SafeUrl with a javascript scheme is not supported");return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; +goog.html.SAFE_MIME_TYPE_PATTERN_=RegExp('^(?:audio/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font/\\w+|image/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon|heic|heif)|video/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\\w+=(?:\\w+|"[\\w;,= ]+"))*$',"i");goog.html.SafeUrl.isSafeMimeType=function(a){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a)}; +goog.html.SafeUrl.fromBlob=function(a){a=goog.html.SafeUrl.isSafeMimeType(a.type)?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.revokeObjectUrl=function(a){a=a.getTypedStringValue();a!==goog.html.SafeUrl.INNOCUOUS_STRING&&goog.fs.url.revokeObjectUrl(a)}; +goog.html.SafeUrl.fromMediaSource=function(a){goog.asserts.assert("MediaSource"in goog.global,"No support for MediaSource");a=a instanceof MediaSource?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\/]+=*$/i; +goog.html.SafeUrl.tryFromDataUrl=function(a){a=String(a);a=a.replace(/(%0A|%0D)/g,"");var b=a.match(goog.html.DATA_URL_PATTERN_);return b?goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a):null};goog.html.SafeUrl.fromDataUrl=function(a){return goog.html.SafeUrl.tryFromDataUrl(a)||goog.html.SafeUrl.INNOCUOUS_URL};goog.html.SafeUrl.fromTelUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"tel:")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; +goog.html.SIP_URL_PATTERN_=RegExp("^sip[s]?:[+a-z0-9_.!$%&'*\\/=^`{|}~-]+@([a-z0-9-]+\\.)+[a-z0-9]{2,63}$","i");goog.html.SafeUrl.fromSipUrl=function(a){goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a))||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromFacebookMessengerUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"fb-messenger://share")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; +goog.html.SafeUrl.fromWhatsAppUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"whatsapp://send")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromSmsUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)}; +goog.html.SafeUrl.isSmsUrlBodyValid_=function(a){var b=a.indexOf("#");0.":"");if(a.toUpperCase()in module$contents$goog$html$SafeHtml_NOT_ALLOWED_TAG_NAMES)throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+a+"> is not allowed for SafeHtml.":"");}; +module$contents$goog$html$SafeHtml_SafeHtml.createScript=function(a,b){for(var c in b)if(Object.prototype.hasOwnProperty.call(b,c)){var d=c.toLowerCase();if("language"==d||"src"==d||"text"==d)throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+d+'" attribute':"");}c="";a=module$contents$goog$array_concat(a);for(d=0;d does not allow content."),d+=">"):(b=module$contents$goog$html$SafeHtml_SafeHtml.concat(c),d+=">"+module$contents$goog$html$SafeHtml_SafeHtml.unwrap(b)+"");return module$contents$goog$html$SafeHtml_SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d)}; +module$contents$goog$html$SafeHtml_SafeHtml.stringifyAttributes=function(a,b){var c="";if(b)for(var d in b)if(Object.prototype.hasOwnProperty.call(b,d)){if(!module$contents$goog$html$SafeHtml_VALID_NAMES_IN_TAG.test(d))throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+d+'".':"");var e=b[d];if(null!=e){var f=a;var g=d;if(e instanceof goog.string.Const)e=goog.string.Const.unwrap(e);else if("style"==g.toLowerCase())if(module$contents$goog$html$SafeHtml_SafeHtml.SUPPORT_STYLE_ATTRIBUTE){if(!goog.isObject(e))throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES? +'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e:"");e instanceof module$contents$goog$html$SafeStyle_SafeStyle||(e=module$contents$goog$html$SafeStyle_SafeStyle.create(e));e=module$contents$goog$html$SafeStyle_SafeStyle.unwrap(e)}else throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");else{if(/^on/i.test(g))throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES? +'Attribute "'+g+'" requires goog.string.Const value, "'+e+'" given.':"");if(g.toLowerCase()in module$contents$goog$html$SafeHtml_URL_ATTRIBUTES)if(e instanceof goog.html.TrustedResourceUrl)e=goog.html.TrustedResourceUrl.unwrap(e);else if(e instanceof goog.html.SafeUrl)e=goog.html.SafeUrl.unwrap(e);else if("string"===typeof e)e=goog.html.SafeUrl.sanitize(e).getTypedStringValue();else throw Error(module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+g+'" on tag "'+f+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+ +e+'" given.':"");}e.implementsGoogStringTypedString&&(e=e.getTypedStringValue());goog.asserts.assert("string"===typeof e||"number"===typeof e,"String or number value expected, got "+typeof e+" with value: "+e);g=g+'="'+goog.string.internal.htmlEscape(String(e))+'"';c+=" "+g}}return c};module$contents$goog$html$SafeHtml_SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG;module$contents$goog$html$SafeHtml_SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0;module$contents$goog$html$SafeHtml_SafeHtml.from=module$contents$goog$html$SafeHtml_SafeHtml.htmlEscape; +var module$contents$goog$html$SafeHtml_VALID_NAMES_IN_TAG=/^[a-zA-Z0-9-]+$/,module$contents$goog$html$SafeHtml_URL_ATTRIBUTES={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},module$contents$goog$html$SafeHtml_NOT_ALLOWED_TAG_NAMES=module$contents$goog$object_createSet(goog.dom.TagName.APPLET,goog.dom.TagName.BASE,goog.dom.TagName.EMBED,goog.dom.TagName.IFRAME,goog.dom.TagName.LINK,goog.dom.TagName.MATH,goog.dom.TagName.META,goog.dom.TagName.OBJECT,goog.dom.TagName.SCRIPT, +goog.dom.TagName.STYLE,goog.dom.TagName.SVG,goog.dom.TagName.TEMPLATE);module$contents$goog$html$SafeHtml_SafeHtml.EMPTY=new module$contents$goog$html$SafeHtml_SafeHtml(goog.global.trustedTypes&&goog.global.trustedTypes.emptyHTML||"",module$contents$goog$html$SafeHtml_CONSTRUCTOR_TOKEN_PRIVATE);module$contents$goog$html$SafeHtml_SafeHtml.BR=module$contents$goog$html$SafeHtml_SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("
");goog.html.SafeHtml=module$contents$goog$html$SafeHtml_SafeHtml;var module$exports$goog$html$internals={};module$exports$goog$html$internals.createSafeHtml=module$contents$goog$html$SafeHtml_SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse;module$exports$goog$html$internals.createSafeScript=module$contents$goog$html$SafeScript_SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse;module$exports$goog$html$internals.createSafeStyle=module$contents$goog$html$SafeStyle_SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse; +module$exports$goog$html$internals.createSafeStyleSheet=module$contents$goog$html$SafeStyleSheet_SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse;module$exports$goog$html$internals.createSafeUrl=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse;module$exports$goog$html$internals.createTrustedResourceUrl=goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse;/* + + SPDX-License-Identifier: Apache-2.0 +*/ +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(a){if("string"!==typeof a||""===a.trim())throw a="Calls to uncheckedconversion functions must go through security review.",a+=" A justification must be provided to capture what security assumptions are being made.",a+=" See go/unchecked-conversions",Error(a);} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_htmlSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,module$exports$goog$html$internals.createSafeHtml)(a)} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_scriptSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,module$exports$goog$html$internals.createSafeScript)(a)} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_resourceUrlSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse)(a)} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_urlSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse)(a)} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_styleSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,module$exports$goog$html$internals.createSafeStyle)(a)} +function module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_styleSheetSafeByReview(a,b){goog.DEBUG&&module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_assertValidJustification(b);return(0,module$exports$goog$html$internals.createSafeStyleSheet)(a)};var safevalues={restricted:{}};safevalues.restricted.reviewed={};safevalues.restricted.reviewed.htmlSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_htmlSafeByReview;safevalues.restricted.reviewed.scriptSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_scriptSafeByReview;safevalues.restricted.reviewed.resourceUrlSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_resourceUrlSafeByReview; +safevalues.restricted.reviewed.urlSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_urlSafeByReview;safevalues.restricted.reviewed.styleSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_styleSafeByReview;safevalues.restricted.reviewed.styleSheetSafeByReview=module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_styleSheetSafeByReview;goog.dom.safe={};goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};goog.dom.safe.insertAdjacentHtml=function(a,b,c){a.insertAdjacentHTML(b,module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(c))};goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0}; +goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue(function(){if(goog.DEBUG&&"undefined"===typeof document)return!1;var a=document.createElement("div"),b=document.createElement("div");b.appendChild(document.createElement("div"));a.appendChild(b);if(goog.DEBUG&&!a.firstChild)return!1;b=a.firstChild.firstChild;a.innerHTML=module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(module$contents$goog$html$SafeHtml_SafeHtml.EMPTY);return!b.parentElement}); +goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,b){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b)}; +goog.dom.safe.setInnerHtml=function(a,b){if(goog.asserts.ENABLE_ASSERTS&&a.tagName){var c=a.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+a.tagName+".");}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a,b)}; +goog.dom.safe.setInnerHtmlFromConstant=function(a,b){goog.dom.safe.setInnerHtml(a,module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_htmlSafeByReview(goog.string.Const.unwrap(b),"Constant HTML to be immediatelly used."))};goog.dom.safe.setOuterHtml=function(a,b){a.outerHTML=module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b)}; +goog.dom.safe.setFormElementAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);module$contents$goog$asserts$dom_assertIsHtmlFormElement(a).action=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setButtonFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);module$contents$goog$asserts$dom_assertIsHtmlButtonElement(a).formAction=goog.html.SafeUrl.unwrap(b)}; +goog.dom.safe.setInputFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);module$contents$goog$asserts$dom_assertIsHtmlInputElement(a).formAction=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setStyle=function(a,b){a.style.cssText=module$contents$goog$html$SafeStyle_SafeStyle.unwrap(b)};goog.dom.safe.documentWrite=function(a,b){a.write(module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b))}; +goog.dom.safe.setAnchorHref=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlAnchorElement(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setAudioSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlAudioElement(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.src=goog.html.SafeUrl.unwrap(b)}; +goog.dom.safe.setVideoSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlVideoElement(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.src=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setEmbedSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlEmbedElement(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setFrameSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)}; +goog.dom.safe.setIframeSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlIFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setIframeSrcdoc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlIFrameElement(a);a.srcdoc=module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b)}; +goog.dom.safe.setLinkHrefAndRel=function(a,b,c){module$contents$goog$asserts$dom_assertIsHtmlLinkElement(a);a.rel=c;goog.string.internal.caseInsensitiveContains(c,"stylesheet")?(goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),a.href=goog.html.TrustedResourceUrl.unwrap(b),b=a.ownerDocument&&a.ownerDocument.defaultView,(b=goog.dom.safe.getStyleNonce(b))&&a.setAttribute("nonce",b)):a.href=b instanceof goog.html.TrustedResourceUrl? +goog.html.TrustedResourceUrl.unwrap(b):b instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(b):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b))};goog.dom.safe.setObjectData=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlObjectElement(a);a.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)}; +goog.dom.safe.setScriptSrc=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlScriptElement(a);goog.dom.safe.setNonceForScriptElement_(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setScriptContent=function(a,b){module$contents$goog$asserts$dom_assertIsHtmlScriptElement(a);goog.dom.safe.setNonceForScriptElement_(a);a.textContent=module$contents$goog$html$SafeScript_SafeScript.unwrapTrustedScript(b)}; +goog.dom.safe.setNonceForScriptElement_=function(a){var b=a.ownerDocument&&a.ownerDocument.defaultView;(b=goog.dom.safe.getScriptNonce(b))&&a.setAttribute("nonce",b)};goog.dom.safe.setLocationHref=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)}; +goog.dom.safe.assignLocation=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.assign(goog.html.SafeUrl.unwrap(b))};goog.dom.safe.replaceLocation=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(b);a.replace(goog.html.SafeUrl.unwrap(b))}; +goog.dom.safe.openInWindow=function(a,b,c,d){a=a instanceof goog.html.SafeUrl?a:goog.html.SafeUrl.sanitizeJavascriptUrlAssertUnchanged(a);b=b||goog.global;c=c instanceof goog.string.Const?goog.string.Const.unwrap(c):c||"";return void 0!==d?b.open(goog.html.SafeUrl.unwrap(a),c,d):b.open(goog.html.SafeUrl.unwrap(a),c)};goog.dom.safe.parseFromStringHtml=function(a,b){return goog.dom.safe.parseFromString(a,b,"text/html")}; +goog.dom.safe.parseFromString=function(a,b,c){return a.parseFromString(module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b),c)};goog.dom.safe.createImageFromBlob=function(a){if(!/^image\/.*/g.test(a.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var b=goog.global.URL.createObjectURL(a);a=new goog.global.Image;a.onload=function(){goog.global.URL.revokeObjectURL(b)};a.src=b;return a};goog.dom.safe.createContextualFragment=function(a,b){return a.createContextualFragment(module$contents$goog$html$SafeHtml_SafeHtml.unwrapTrustedHTML(b))}; +goog.dom.safe.getScriptNonce=function(a){return goog.dom.safe.getNonce_("script[nonce]",a)};goog.dom.safe.getStyleNonce=function(a){return goog.dom.safe.getNonce_('style[nonce],link[rel="stylesheet"][nonce]',a)};goog.dom.safe.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/;goog.dom.safe.getNonce_=function(a,b){b=(b||goog.global).document;return b.querySelector?(a=b.querySelector(a))&&(a=a.nonce||a.getAttribute("nonce"))&&goog.dom.safe.NONCE_PATTERN_.test(a)?a:"":""};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:"\u00a0",ZERO_WIDTH_SPACE:"\u200b"};goog.string.startsWith=goog.string.internal.startsWith;goog.string.endsWith=goog.string.internal.endsWith;goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith;goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith;goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals; +goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1=a||"\u0080"<=a&&"\ufffd">=a}; +goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=goog.string.internal.trim; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare; +goog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g",""":'"'};var d=b?b.createElement("div"):goog.global.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(e,f){var g=c[e];if(g)return g;"#"==f.charAt(0)&&(f=Number("0"+f.slice(1)),isNaN(f)||(g=String.fromCharCode(f)));g||(goog.dom.safe.setInnerHtml(d,module$contents$google3$third_party$javascript$safevalues$restricted$reviewed_htmlSafeByReview(e+" ","Single HTML entity.")), +g=d.firstChild.nodeValue.slice(0,-1));return c[e]=g})};goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(b,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=c.charAt(0)||(c=Number("0"+c.slice(1)),isNaN(c))?b:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g,"  "),b)}; +goog.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;db&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a}; +goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);for(var b=['"'],c=0;ce?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;cb)var c=a;else{if(256>b){if(c="\\x",16>b||256b&&(c+="0");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=goog.string.internal.contains;goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains; +goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0; +goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})}; +goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};goog.string.toTitleCase=function(a,b){b=(b="string"===typeof b?goog.string.regExpEscape(b):"\\s")?"|["+b+"]+":"";b=new RegExp("(^"+b+")([a-z])","g");return a.replace(b,function(c,d,e){return d+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.slice(1)).toLowerCase()}; +goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return"string"===typeof a?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0c&&(c=e)}return-1==c?a:a.slice(c+1)}; +goog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;eb?null:a.slice(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))}; +goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getOrigin=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],null,a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])}; +goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.slice(0,b)}; +goog.uri.utils.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.SCHEME]==b[goog.uri.utils.ComponentIndex.SCHEME]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]}; +goog.uri.utils.assertNoFragmentsOrQueries_=function(a){goog.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};goog.uri.utils.parseQueryData=function(a,b){if(a){a=a.split("&");for(var c=0;cb&&(b=a.length);var c=a.indexOf("?");if(0>c||c>b){c=b;var d=""}else d=a.substring(c+1,b);return[a.slice(0,c),d,a.slice(b)]};goog.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};goog.uri.utils.appendQueryData_=function(a,b){return b?a?a+"&"+b:b:a};goog.uri.utils.appendQueryDataToUri_=function(a,b){if(!b)return a;a=goog.uri.utils.splitQueryData_(a);a[1]=goog.uri.utils.appendQueryData_(a[1],b);return goog.uri.utils.joinQueryData_(a)}; +goog.uri.utils.appendKeyValuePairs_=function(a,b,c){goog.asserts.assertString(a);if(Array.isArray(b)){goog.asserts.assertArray(b);for(var d=0;dd)return null;var e=a.indexOf("&",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.slice(d,-1!==e?e:0))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("&",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.slice(e,Math.max(d,0))))}return f}; +goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("&",e)+1||c,c);f.push(a.slice(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)}; +goog.uri.utils.setParamsFromMap=function(a,b){a=goog.uri.utils.splitQueryData_(a);var c=a[1],d=[];c&&c.split("&").forEach(function(e){var f=e.indexOf("=");f=0<=f?e.slice(0,f):e;b.hasOwnProperty(f)||d.push(e)});a[1]=goog.uri.utils.appendQueryData_(d.join("&"),goog.uri.utils.buildQueryDataFromMap(b));return goog.uri.utils.joinQueryData_(a)}; +goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.slice(0,-1));goog.string.startsWith(b,"/")&&(b=b.slice(1));return""+a+"/"+b}; +goog.uri.utils.setPath=function(a,b){goog.string.startsWith(b,"/")||(b="/"+b);a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT],b,a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])};goog.uri.utils.StandardQueryParam={RANDOM:"zx"}; +goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};var loadValidatorWasm=function(){var a="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(b){function c(k){return w.locateFile?w.locateFile(k,U):U+k}function d(k){if(w.onAbort)w.onAbort(k);k="Aborted("+k+")";aa(k);ya=!0;k+=". Build with -sASSERTIONS for more info.";k=new WebAssembly.RuntimeError(k);qa(k);throw k;}function e(k){return Promise.resolve().then(function(){var m=k;if(m==ka&&za)m=new Uint8Array(za);else{var p=m;if(Ja(p)){p=p.slice(37); +p=atob(p);for(var q=new Uint8Array(p.length),u=0;u>2])}function J(k,m,p,q,u){var v=m.length;2>v&&R("argTypes array size mismatch! Must at least get return value and 'this' types!");var y=null!==m[1]&&null!==p,z=!1;for(p=1;p>2])}function fa(k,m,p,q,u,v){Da(u,v);return-52}function ha(k,m,p,q,u,v,y){Da(v,y)}function Y(){var k=Error();if(!k.stack){try{throw Error();}catch(m){k=m}if(!k.stack)return"(no stack trace available)"}return k.stack.toString()}function ia(){var k=Y().split("\n");"Error"==k[0]&&k.shift();Pa(k);ea.last_addr=ta(k[3]);ea.last_stack=k;return ea.last_addr}function Z(k,m,p){Da(m,p);return 70}function ja(k,m,p){p=0m;++m)k[m]=String.fromCharCode(m);Ya=k},Ya,S=function(k){for(var m="";L[k];)m+=Ya[L[k++]];return m},da={},ca={},sa={},R=function(k){throw new rb(k);},sb=function(k,m,p){function q(z){z=p(z);if(z.length!==k.length)throw new Za("Mismatched type converter count");for(var B=0;B=T.reserved&& +0===--T.get(k).refcount&&T.free(k)},vb=function(){for(var k=0,m=T.reserved;m=m?"_"+k:k},zb=function(k,m,p){if(void 0===k[m].overloadTable){var q=k[m];k[m]=function(){k[m].overloadTable.hasOwnProperty(arguments.length)||R("Function '"+p+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+k[m].overloadTable+")!");return k[m].overloadTable[arguments.length].apply(this,arguments)};k[m].overloadTable=[];k[m].overloadTable[q.argCount]=q}},Ab=function(k, +m,p){w.hasOwnProperty(k)?((void 0===p||void 0!==w[k].overloadTable&&void 0!==w[k].overloadTable[p])&&R("Cannot register public name '"+k+"' twice"),zb(w,k,k),w.hasOwnProperty(p)&&R("Cannot register multiple overloads of a function with the same number of arguments ("+p+")!"),w[k].overloadTable[p]=m):(w[k]=m,void 0!==p&&(w[k].numArguments=p))},Bb=function(k,m){for(var p=[],q=0;q>2]);return p},wa=[],Ma,ab=function(k){var m=wa[k];m||(k>=wa.length&&(wa.length=k+1),wa[k]=m=Ma.get(k)); +return m},Cb=function(k,m){var p=[];return function(){p.length=0;Object.assign(p,arguments);var q=k,u=m;var v=p;q.includes("j")?(q=w["dynCall_"+q],v=v&&v.length?q.apply(null,[u].concat(v)):q.call(null,u)):v=ab(u).apply(null,v);return v}},Db=function(k,m){k=S(k);var p=k.includes("j")?Cb(k,m):ab(m);"function"!=typeof p&&R("unknown function pointer with signature "+k+": "+m);return p},Eb=function(k,m){var p=I(m,function(q){this.name=m;this.message=q;q=Error(q).stack;void 0!==q&&(this.stack=this.toString()+ +"\n"+q.replace(/^Error(:[^\n]*)?\n/,""))});p.prototype=Object.create(k.prototype);p.prototype.constructor=p;p.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return p},Fb=function(k){k=bb(k);var m=S(k);V(k);return m},Hb=function(k,m){function p(v){u[v]||ca[v]||(sa[v]?sa[v].forEach(p):(q.push(v),u[v]=!0))}var q=[],u={};m.forEach(p);throw new Gb(k+": "+q.map(Fb).join([", "]));},Ib=function(k){k=k.trim();var m=k.indexOf("(");return-1!==m?k.substr(0,m): +k},Jb=function(k,m,p,q,u,v,y){var z=Bb(m,p);k=S(k);k=Ib(k);u=Db(q,u);Ab(k,function(){Hb("Cannot call "+k+" due to unbound types",z)},m-1);sb([],z,function(B){var E=[B[0],null].concat(B.slice(1));B=k;E=J(k,E,null,u,v,y);var F=m-1;if(!w.hasOwnProperty(B))throw new Za("Replacing nonexistant public symbol");void 0!==w[B].overloadTable&&void 0!==F?w[B].overloadTable[F]=E:(w[B]=E,w[B].argCount=F);return[]})},Kb=function(k,m,p){switch(m){case 1:return p?function(q){return ba[q>>0]}:function(q){return L[q>> +0]};case 2:return p?function(q){return la[q>>1]}:function(q){return ra[q>>1]};case 4:return p?function(q){return O[q>>2]}:function(q){return M[q>>2]};default:throw new TypeError("invalid integer width ("+m+"): "+k);}},Lb=function(k,m,p,q,u){m=S(m);-1===u&&(u=4294967295);u=function(z){return z};if(0===q){var v=32-8*p;u=function(z){return z<>>v}}var y=m.includes("unsigned");y=y?function(z,B){return B>>>0}:function(z,B){return B};r(k,{name:m,fromWireType:u,toWireType:y,argPackAdvance:8,readValueFromPointer:Kb(m, +p,0!==q),destructorFunction:null})},Mb=function(k,m,p){function q(y){var z=M[y>>2];y=M[y+4>>2];return new v(ba.buffer,y,z)}var u=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],v=u[m];p=S(p);r(k,{name:p,fromWireType:q,argPackAdvance:8,readValueFromPointer:q},{ignoreDuplicateRegistrations:!0})},Ra=function(k,m,p,q){if(!(0=y){var z=k.charCodeAt(++v);y=65536+ +((y&1023)<<10)|z&1023}if(127>=y){if(p>=q)break;m[p++]=y}else{if(2047>=y){if(p+1>=q)break;m[p++]=192|y>>6}else{if(65535>=y){if(p+2>=q)break;m[p++]=224|y>>12}else{if(p+3>=q)break;m[p++]=240|y>>18;m[p++]=128|y>>12&63}m[p++]=128|y>>6&63}m[p++]=128|y&63}}m[p]=0;return p-u},Qa=function(k){for(var m=0,p=0;p=q?m++:2047>=q?m+=2:55296<=q&&57343>=q?(m+=4,++p):m+=3}return m},cb="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,na=function(k,m,p){var q=m+p; +for(p=m;k[p]&&!(p>=q);)++p;if(16u?q+=String.fromCharCode(u):(u-=65536,q+=String.fromCharCode(55296|u>>10,56320|u&1023))}}else q+=String.fromCharCode(u)}return q},Nb=function(k,m){m=S(m);var p="std::string"===m,q={};r(k,(q.name=m,q.fromWireType=function(u){var v= +M[u>>2],y=u+4;if(p)for(var z=y,B=0;B<=v;++B){var E=y+B;if(B==v||0==L[E]){var F=E-z;z=z?na(L,z,F):"";if(void 0===H)var H=z;else H+=String.fromCharCode(0),H+=z;z=E+1}}else{H=Array(v);for(B=0;B>2]=z;if(p&&y)Ra(v,L,E,z+1);else if(y)for(y=0;y>=1;for(var q=p+m/2;!(p>=q)&&ra[p];)++p;p<<=1;if(32=m/2);++q){var u=la[k+2*q>>1];if(0==u)break;p+=String.fromCharCode(u)}return p},Pb=function(k,m,p){void 0===p&&(p=2147483647);if(2>p)return 0;p-=2;var q=m;p=p<2*k.length?p/2:k.length;for(var u=0;u>1]=v;m+=2}la[m>>1]=0;return m-q},Qb=function(k){return 2*k.length},Rb=function(k,m){for(var p=0,q="";!(p>=m/4);){var u=O[k+4*p>>2];if(0==u)break;++p;65536<=u?(u-=65536,q+=String.fromCharCode(55296|u>>10,56320|u&1023)): +q+=String.fromCharCode(u)}return q},Sb=function(k,m,p){void 0===p&&(p=2147483647);if(4>p)return 0;var q=m;p=q+p-4;for(var u=0;u=v){var y=k.charCodeAt(++u);v=65536+((v&1023)<<10)|y&1023}O[m>>2]=v;m+=4;if(m+4>p)break}O[m>>2]=0;return m-q},Tb=function(k){for(var m=0,p=0;p=q&&++p;m+=4}return m},Ub=function(k,m,p){p=S(p);if(2===m){var q=Ob;var u=Pb;var v=Qb;var y=function(){return ra};var z=1}else 4=== +m&&(q=Rb,u=Sb,v=Tb,y=function(){return M},z=2);r(k,{name:p,fromWireType:function(B){for(var E=M[B>>2],F=y(),H,Q=B+4,t=0;t<=E;++t){var C=B+4+t*m;if(t==E||0==F[C>>z]){var G=C-Q;Q=q(Q,G);void 0===H?H=Q:(H+=String.fromCharCode(0),H+=Q);Q=C+m}}V(B);return H},toWireType:function(B,E){"string"!=typeof E&&R("Cannot pass non-string to C++ string type "+p);var F=v(E),H=Ga(4+F+m);M[H>>2]=F>>z;u(E,H+4,F+m);null!==B&&B.push(V,H);return H},argPackAdvance:8,readValueFromPointer:D,destructorFunction:function(B){V(B)}})}, +Vb=function(k,m){m=S(m);r(k,{isVoid:!0,name:m,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},Wb=function(){return!0},Da=function(k,m){return m+2097152>>>0<4194305-!!k?(k>>>0)+4294967296*m:NaN},Xb=function(){d("")},Ha=[],Yb=function(k,m,p){Ha.length=0;for(var q;q=L[m++];){var u=105!=q;u&=112!=q;p+=u&&p%8?4:0;Ha.push(112==q?M[p>>2]:105==q?O[p>>2]:Ba[p>>3]);p+=u?8:4}m=Ha;return k=nb[k].apply(null,m)},Zb=function(){return Date.now()},$b=function(k,m){return aa(k?na(L,k,m):"")}, +ac=function(){return L.length};var bc=function(){return performance.now()};var cc=function(k,m,p){return L.copyWithin(k,m,m+p)},dc=function(){d("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER");return 0},ec=function(){d("OOM")},ta=function(){d("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0},ea={},Pa=function(k){k.forEach(function(m){var p=ta(m);p&&(ea[p]=m)})},fc=function(k,m,p){if(ea.last_addr==k)var q=ea.last_stack; +else q=Y().split("\n"),"Error"==q[0]&&q.shift(),Pa(q);for(var u=3;q[u]&&ta(q[u])!=k;)++u;for(k=0;k>2]=ta(q[k+u]);return k},Ia={},oa=function(){if(!oa.strings){var k=("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";k={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:k,_:Wa||"./this.program"};for(var m in Ia)void 0===Ia[m]?delete k[m]:k[m]=Ia[m];var p=[];for(m in k)p.push(m+"="+k[m]);oa.strings= +p}return oa.strings},gc=function(k,m){var p=0;oa().forEach(function(q,u){var v=m+p;M[k+4*u>>2]=v;u=q;for(var y=0;y>0]=u.charCodeAt(y);ba[v>>0]=0;p+=q.length+1});return 0},hc=function(k,m){var p=oa();M[k>>2]=p.length;var q=0;p.forEach(function(u){return q+=u.length+1});M[m>>2]=q;return 0},eb=function(k){if(!ob){if(w.onExit)w.onExit(k);ya=!0}Fa(k,new l(k))},ic=function(k){eb(k)},jc=ic,kc=function(){return 52},lc=function(){return 52},mc=[null,[],[]],nc=function(k,m,p,q){for(var u= +0,v=0;v>2],z=M[m+4>>2];m+=8;for(var B=0;B>2]=u;return 0},xa=function(k){return 0===k%4&&(0!==k%100||0===k%400)},fb=[31,29,31,30,31,30,31,31,30,31,30,31],gb=[31,28,31,30,31,30,31,31,30,31,30,31],oc=function(k,m,p,q){function u(t,C,G){for(t="number"==typeof t?t.toString():t||"";t.lengthpa?-1: +0G-C.getDate())t-=G-C.getDate()+1,C.setDate(1),11>N?C.setMonth(N+1):(C.setMonth(0),C.setFullYear(C.getFullYear()+1));else{C.setDate(C.getDate()+t);t=C;break a}}t=C}N=new Date(t.getFullYear(),0,4);C=new Date(t.getFullYear()+1,0,4);N=z(N);C=z(C);return 0>=y(N,t)?0>=y(C,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var E=M[q+40>>2];q={tm_sec:O[q>>2],tm_min:O[q+4>>2],tm_hour:O[q+ +8>>2],tm_mday:O[q+12>>2],tm_mon:O[q+16>>2],tm_year:O[q+20>>2],tm_wday:O[q+24>>2],tm_yday:O[q+28>>2],tm_isdst:O[q+32>>2],tm_gmtoff:O[q+36>>2],tm_zone:E?E?na(L,E,void 0):"":""};p=p?na(L,p,void 0):"";E={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S", +"%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var F in E)p=p.replace(new RegExp(F,"g"),E[F]);var H="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Q="January February March April May June July August September October November December".split(" ");E={"%a":function(t){return H[t.tm_wday].substring(0,3)},"%A":function(t){return H[t.tm_wday]},"%b":function(t){return Q[t.tm_mon].substring(0,3)},"%B":function(t){return Q[t.tm_mon]},"%C":function(t){t=t.tm_year+ +1900;return v(t/100|0,2)},"%d":function(t){return v(t.tm_mday,2)},"%e":function(t){return u(t.tm_mday,2," ")},"%g":function(t){return B(t).toString().substring(2)},"%G":function(t){return B(t)},"%H":function(t){return v(t.tm_hour,2)},"%I":function(t){t=t.tm_hour;0==t?t=12:12t.tm_hour?"AM":"PM"},"%S":function(t){return v(t.tm_sec,2)},"%t":function(){return"\t"},"%u":function(t){return t.tm_wday||7},"%U":function(t){t=t.tm_yday+7-t.tm_wday;return v(Math.floor(t/7),2)},"%V":function(t){var C=Math.floor((t.tm_yday+7-(t.tm_wday+6)%7)/7);2>=(t.tm_wday+371-t.tm_yday-2)%7&&C++;if(C)53==C&&(G=(t.tm_wday+371-t.tm_yday)%7,4==G||3==G&&xa(t.tm_year)||(C=1));else{C=52;var G=(t.tm_wday+7-t.tm_yday-1)%7;(4==G||5== +G&&xa(t.tm_year%400-1))&&C++}return v(C,2)},"%w":function(t){return t.tm_wday},"%W":function(t){t=t.tm_yday+7-(t.tm_wday+6)%7;return v(Math.floor(t/7),2)},"%y":function(t){return(t.tm_year+1900).toString().substring(2)},"%Y":function(t){return t.tm_year+1900},"%z":function(t){t=t.tm_gmtoff;var C=0<=t;t=Math.abs(t)/60;t=t/60*100+t%60;return(C?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(t){return t.tm_zone},"%%":function(){return"%"}};p=p.replace(/%%/g,"\x00\x00");for(F in E)p.includes(F)&&(p= +p.replace(new RegExp(F,"g"),E[F](q)));p=p.replace(/\0\0/g,"%");F=ja(p,!1);if(F.length>m)return 0;ba.set(F,k);return F.length-1},pc=function(k,m,p,q){return oc(k,m,p,q)};qb();var hb=function(k){k=Error.call(this,k);this.message=k.message;"stack"in k&&(this.stack=k.stack);this.name="BindingError"};$jscomp.inherits(hb,Error);var rb=w.BindingError=hb;var ib=function(k){k=Error.call(this,k);this.message=k.message;"stack"in k&&(this.stack=k.stack);this.name="InternalError"};$jscomp.inherits(ib,Error);var Za= +w.InternalError=ib;x();T.allocated.push({value:void 0},{value:null},{value:!0},{value:!1});T.reserved=T.allocated.length;w.count_emval_handles=vb;var Gb=w.UnboundTypeError=Eb(Error,"UnboundTypeError");var Oa={HaveOffsetConverter:h,_embind_register_bigint:pb,_embind_register_bool:tb,_embind_register_emval:wb,_embind_register_float:yb,_embind_register_function:Jb,_embind_register_integer:Lb,_embind_register_memory_view:Mb,_embind_register_std_string:Nb,_embind_register_std_wstring:Ub,_embind_register_void:Vb, +_emscripten_get_now_is_monotonic:Wb,_mmap_js:fa,_munmap_js:ha,abort:Xb,emscripten_asm_const_int:Yb,emscripten_date_now:Zb,emscripten_errn:$b,emscripten_get_heap_max:ac,emscripten_get_now:bc,emscripten_memcpy_js:cc,emscripten_pc_get_function:dc,emscripten_resize_heap:ec,emscripten_stack_snapshot:ia,emscripten_stack_unwind_buffer:fc,environ_get:gc,environ_sizes_get:hc,exit:jc,fd_close:kc,fd_read:lc,fd_seek:Z,fd_write:nc,proc_exit:eb,strftime_l:pc},K=g(),Ga=function(k){return(Ga=K.malloc)(k)},V=function(k){return(V= +K.free)(k)},bb=function(k){return(bb=K.__getTypeName)(k)};w.__embind_initialize_bindings=function(){return(w.__embind_initialize_bindings=K._embind_initialize_bindings)()};w.dynCall_iiiijij=function(k,m,p,q,u,v,y,z,B){return(w.dynCall_iiiijij=K.dynCall_iiiijij)(k,m,p,q,u,v,y,z,B)};w.dynCall_ji=function(k,m){return(w.dynCall_ji=K.dynCall_ji)(k,m)};w.dynCall_viijii=function(k,m,p,q,u,v,y){return(w.dynCall_viijii=K.dynCall_viijii)(k,m,p,q,u,v,y)};w.dynCall_vij=function(k,m,p,q){return(w.dynCall_vij= +K.dynCall_vij)(k,m,p,q)};w.dynCall_vijjj=function(k,m,p,q,u,v,y,z){return(w.dynCall_vijjj=K.dynCall_vijjj)(k,m,p,q,u,v,y,z)};w.dynCall_vj=function(k,m,p){return(w.dynCall_vj=K.dynCall_vj)(k,m,p)};w.dynCall_viij=function(k,m,p,q,u){return(w.dynCall_viij=K.dynCall_viij)(k,m,p,q,u)};w.dynCall_viiiiij=function(k,m,p,q,u,v,y,z){return(w.dynCall_viiiiij=K.dynCall_viiiiij)(k,m,p,q,u,v,y,z)};w.dynCall_iijjiiii=function(k,m,p,q,u,v,y,z,B,E){return(w.dynCall_iijjiiii=K.dynCall_iijjiiii)(k,m,p,q,u,v,y,z,B,E)}; +w.dynCall_jiji=function(k,m,p,q,u){return(w.dynCall_jiji=K.dynCall_jiji)(k,m,p,q,u)};w.dynCall_iiiiij=function(k,m,p,q,u,v,y){return(w.dynCall_iiiiij=K.dynCall_iiiiij)(k,m,p,q,u,v,y)};w.dynCall_iiiiijj=function(k,m,p,q,u,v,y,z,B){return(w.dynCall_iiiiijj=K.dynCall_iiiiijj)(k,m,p,q,u,v,y,z,B)};w.dynCall_iiiiiijj=function(k,m,p,q,u,v,y,z,B,E){return(w.dynCall_iiiiiijj=K.dynCall_iiiiiijj)(k,m,p,q,u,v,y,z,B,E)};w.___start_em_js=621437;w.___stop_em_js=621498;"undefined"==typeof atob&&("undefined"!=typeof global&& +"undefined"==typeof globalThis&&(globalThis=global),globalThis.atob=function(k){var m="",p=0;k=k.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k.charAt(p++));var u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k.charAt(p++));var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k.charAt(p++));var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k.charAt(p++)); +q=q<<2|u>>4;u=(u&15)<<4|v>>2;var z=(v&3)<<6|y;m+=String.fromCharCode(q);64!==v&&(m+=String.fromCharCode(u));64!==y&&(m+=String.fromCharCode(z))}while(p { + const { next, isNextDev: dev } = nextTestSetup({ + files: __dirname, + }) + + it('ssr async page modules', async () => { + const $ = await next.render$('/') + expect($('#app-value').text()).toBe('hello') + expect($('#page-value').text()).toBe('42') + }) + + it('csr async page modules', async () => { + const browser = await next.browser('/') + expect(await browser.elementByCss('#app-value').text()).toBe('hello') + expect(await browser.elementByCss('#page-value').text()).toBe('42') + expect(await browser.elementByCss('#doc-value').text()).toBe('doc value') + }) + + it('works on async api routes', async () => { + const res = await next.fetch('/api/hello') + expect(res.status).toBe(200) + const result = await res.json() + expect(result).toHaveProperty('value', 42) + }) + + it('works with getServerSideProps', async () => { + const browser = await next.browser('/gssp') + expect(await browser.elementByCss('#gssp-value').text()).toBe('42') + }) + + it('works with getStaticProps', async () => { + const browser = await next.browser('/gsp') + expect(await browser.elementByCss('#gsp-value').text()).toBe('42') + }) + + it('can render async 404 pages', async () => { + const browser = await next.browser('/dhiuhefoiahjeoij') + expect(await browser.elementByCss('#content-404').text()).toBe("hi y'all") + }) + + // TODO: investigate this test flaking + it.skip('can render async AMP pages', async () => { + const browser = await next.browser('/config') + await check( + () => browser.elementByCss('#amp-timeago').text(), + 'just now', + true + ) + }) + ;(dev ? it.skip : it)('can render async error page', async () => { + const browser = await next.browser('/make-error') + expect(await browser.elementByCss('#content-error').text()).toBe( + 'hello error' + ) + }) +}) diff --git a/test/e2e/async-modules/next.config.js b/test/e2e/async-modules/next.config.js new file mode 100644 index 000000000000..a03c1964fc42 --- /dev/null +++ b/test/e2e/async-modules/next.config.js @@ -0,0 +1,7 @@ +module.exports = { + experimental: { + amp: { + validator: require.resolve('./amp-validator-wasm.js'), + }, + }, +} diff --git a/test/integration/async-modules/pages/404.jsx b/test/e2e/async-modules/pages/404.jsx similarity index 100% rename from test/integration/async-modules/pages/404.jsx rename to test/e2e/async-modules/pages/404.jsx diff --git a/test/integration/async-modules/pages/_app.jsx b/test/e2e/async-modules/pages/_app.jsx similarity index 100% rename from test/integration/async-modules/pages/_app.jsx rename to test/e2e/async-modules/pages/_app.jsx diff --git a/test/integration/async-modules/pages/_document.jsx b/test/e2e/async-modules/pages/_document.jsx similarity index 100% rename from test/integration/async-modules/pages/_document.jsx rename to test/e2e/async-modules/pages/_document.jsx diff --git a/test/integration/async-modules/pages/_error.jsx b/test/e2e/async-modules/pages/_error.jsx similarity index 100% rename from test/integration/async-modules/pages/_error.jsx rename to test/e2e/async-modules/pages/_error.jsx diff --git a/test/integration/async-modules/pages/api/hello.js b/test/e2e/async-modules/pages/api/hello.js similarity index 100% rename from test/integration/async-modules/pages/api/hello.js rename to test/e2e/async-modules/pages/api/hello.js diff --git a/test/integration/async-modules/pages/config.jsx b/test/e2e/async-modules/pages/config.jsx similarity index 100% rename from test/integration/async-modules/pages/config.jsx rename to test/e2e/async-modules/pages/config.jsx diff --git a/test/integration/async-modules/pages/gsp.jsx b/test/e2e/async-modules/pages/gsp.jsx similarity index 100% rename from test/integration/async-modules/pages/gsp.jsx rename to test/e2e/async-modules/pages/gsp.jsx diff --git a/test/integration/async-modules/pages/gssp.jsx b/test/e2e/async-modules/pages/gssp.jsx similarity index 100% rename from test/integration/async-modules/pages/gssp.jsx rename to test/e2e/async-modules/pages/gssp.jsx diff --git a/test/integration/async-modules/pages/index.jsx b/test/e2e/async-modules/pages/index.jsx similarity index 100% rename from test/integration/async-modules/pages/index.jsx rename to test/e2e/async-modules/pages/index.jsx diff --git a/test/integration/async-modules/pages/make-error.jsx b/test/e2e/async-modules/pages/make-error.jsx similarity index 100% rename from test/integration/async-modules/pages/make-error.jsx rename to test/e2e/async-modules/pages/make-error.jsx diff --git a/test/e2e/tsconfig-module-preserve/index.test.ts b/test/e2e/tsconfig-module-preserve/index.test.ts index 2b4184766238..7980d604f384 100644 --- a/test/e2e/tsconfig-module-preserve/index.test.ts +++ b/test/e2e/tsconfig-module-preserve/index.test.ts @@ -37,6 +37,7 @@ describe('tsconfig module: preserve', () => { "{ "compilerOptions": { "module": "preserve", + "target": "ES2017", "lib": [ "dom", "dom.iterable", diff --git a/test/integration/async-modules/next.config.js b/test/integration/async-modules/next.config.js deleted file mode 100644 index 526583c52816..000000000000 --- a/test/integration/async-modules/next.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - webpack: (config) => { - config.experiments = config.experiments || {} - config.experiments.topLevelAwait = true - return config - }, - experimental: { - amp: { - validator: require.resolve('../../lib/amp-validator-wasm.js'), - }, - }, -} diff --git a/test/integration/async-modules/test/index.test.js b/test/integration/async-modules/test/index.test.js deleted file mode 100644 index 705ae47aeb79..000000000000 --- a/test/integration/async-modules/test/index.test.js +++ /dev/null @@ -1,136 +0,0 @@ -/* eslint-env jest */ - -import webdriver from 'next-webdriver' - -import cheerio from 'cheerio' -import { - fetchViaHTTP, - renderViaHTTP, - findPort, - killApp, - launchApp, - nextBuild, - nextStart, - check, -} from 'next-test-utils' -import { join } from 'path' - -let app -let appPort -const appDir = join(__dirname, '../') - -function runTests(dev = false) { - it('ssr async page modules', async () => { - const html = await renderViaHTTP(appPort, '/') - const $ = cheerio.load(html) - expect($('#app-value').text()).toBe('hello') - expect($('#page-value').text()).toBe('42') - }) - - it('csr async page modules', async () => { - let browser - try { - browser = await webdriver(appPort, '/') - expect(await browser.elementByCss('#app-value').text()).toBe('hello') - expect(await browser.elementByCss('#page-value').text()).toBe('42') - expect(await browser.elementByCss('#doc-value').text()).toBe('doc value') - } finally { - if (browser) await browser.close() - } - }) - - it('works on async api routes', async () => { - const res = await fetchViaHTTP(appPort, '/api/hello') - expect(res.status).toBe(200) - const result = await res.json() - expect(result).toHaveProperty('value', 42) - }) - - it('works with getServerSideProps', async () => { - let browser - try { - browser = await webdriver(appPort, '/gssp') - expect(await browser.elementByCss('#gssp-value').text()).toBe('42') - } finally { - if (browser) await browser.close() - } - }) - - it('works with getStaticProps', async () => { - let browser - try { - browser = await webdriver(appPort, '/gsp') - expect(await browser.elementByCss('#gsp-value').text()).toBe('42') - } finally { - if (browser) await browser.close() - } - }) - - it('can render async 404 pages', async () => { - let browser - try { - browser = await webdriver(appPort, '/dhiuhefoiahjeoij') - expect(await browser.elementByCss('#content-404').text()).toBe("hi y'all") - } finally { - if (browser) await browser.close() - } - }) - - // TODO: investigate this test flaking - it.skip('can render async AMP pages', async () => { - let browser - try { - browser = await webdriver(appPort, '/config') - await check( - () => browser.elementByCss('#amp-timeago').text(), - 'just now', - true - ) - } finally { - if (browser) await browser.close() - } - }) - ;(dev ? it.skip : it)('can render async error page', async () => { - let browser - try { - browser = await webdriver(appPort, '/make-error') - expect(await browser.elementByCss('#content-error').text()).toBe( - 'hello error' - ) - } finally { - if (browser) await browser.close() - } - }) -} - -describe('Async modules', () => { - ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)( - 'development mode', - () => { - beforeAll(async () => { - appPort = await findPort() - app = await launchApp(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - runTests(true) - } - ) - ;(process.env.TURBOPACK_DEV ? describe.skip : describe)( - 'production mode', - () => { - beforeAll(async () => { - await nextBuild(appDir) - appPort = await findPort() - app = await nextStart(appDir, appPort) - }) - afterAll(async () => { - await killApp(app) - }) - - runTests() - } - ) -}) diff --git a/test/integration/tsconfig-verifier/test/index.test.js b/test/integration/tsconfig-verifier/test/index.test.js index 42b787965247..240710dafab9 100644 --- a/test/integration/tsconfig-verifier/test/index.test.js +++ b/test/integration/tsconfig-verifier/test/index.test.js @@ -25,43 +25,44 @@ import path from 'path' const { code } = await nextBuild(appDir) expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('Works with an empty tsconfig.json (docs)', async () => { @@ -79,43 +80,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('Updates an existing tsconfig.json without losing comments', async () => { @@ -145,51 +147,52 @@ import path from 'path' // Weird comma placement until this issue is resolved: // https://github.com/kaelzhang/node-comment-json/issues/21 expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "// top-level comment - { - // in-object comment 1 - "compilerOptions": { - // in-object comment - "esModuleInterop": true, // this should be true - "module": "esnext" // should not be umd - // end-object comment + "// top-level comment + { + // in-object comment 1 + "compilerOptions": { + // in-object comment + "esModuleInterop": true, // this should be true + "module": "esnext" // should not be umd + // end-object comment + , + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + } + // in-object comment 2 , - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true + "exclude": [ + "node_modules" + ] } - // in-object comment 2 - , - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - // end comment - " - `) + // end comment + " + `) }) it('allows you to set commonjs module mode', async () => { @@ -204,43 +207,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "esModuleInterop": true, - "module": "commonjs", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "esModuleInterop": true, + "module": "commonjs", + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set es2020 module mode', async () => { @@ -255,43 +259,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "esModuleInterop": true, - "module": "es2020", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "esModuleInterop": true, + "module": "es2020", + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set node16 moduleResolution mode', async () => { @@ -310,43 +315,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "esModuleInterop": true, - "moduleResolution": "node16", - "module": "node16", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "esModuleInterop": true, + "moduleResolution": "node16", + "module": "node16", + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set bundler moduleResolution mode', async () => { @@ -365,43 +371,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "esModuleInterop": true, - "moduleResolution": "bundler", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "esModuleInterop": true, + "moduleResolution": "bundler", + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set target mode', async () => { @@ -417,44 +424,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "target": "es2022", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "{ + "compilerOptions": { + "target": "es2022", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set node16 module mode', async () => { @@ -473,43 +480,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "esModuleInterop": true, - "module": "node16", - "moduleResolution": "node16", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "esModuleInterop": true, + "module": "node16", + "moduleResolution": "node16", + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set verbatimModuleSyntax true without adding isolatedModules', async () => { @@ -528,43 +536,44 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "verbatimModuleSyntax": true, - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } + "{ + "compilerOptions": { + "verbatimModuleSyntax": true, + "target": "ES2017", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "module": "esnext", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "exclude": [ + "node_modules" + ] + } + " + `) }) it('allows you to set verbatimModuleSyntax true via extends without adding isolatedModules', async () => { @@ -588,6 +597,7 @@ import path from 'path' "{ "extends": "./tsconfig.base.json", "compilerOptions": { + "target": "ES2017", "lib": [ "dom", "dom.iterable", @@ -681,9 +691,16 @@ import path from 'path' expect(stderr + stdout).not.toContain('moduleResolution') expect(code).toBe(0) - expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot( - `"{ "extends": "./tsconfig.base.json" }"` - ) + expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` + "{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "target": "ES2017", + "strictNullChecks": true + } + } + " + `) }) it('creates compilerOptions when you extend another config', async () => { @@ -743,15 +760,16 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "incremental": true, - "strictNullChecks": true + "{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "target": "ES2017", + "incremental": true, + "strictNullChecks": true + } } - } - " - `) + " + `) }) // TODO: Enable this test when repo has upgraded to TypeScript 5.4. Currently tested as E2E: tsconfig-module-preserve @@ -773,40 +791,40 @@ import path from 'path' expect(code).toBe(0) expect(await readFile(tsConfig, 'utf8')).toMatchInlineSnapshot(` - "{ - "compilerOptions": { - "module": "preserve", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true - }, - "include": [ - "next-env.d.ts", - ".next/types/**/*.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] - } - " - `) + "{ + "compilerOptions": { + "module": "preserve", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "noEmit": true, + "incremental": true, + "isolatedModules": true, + "jsx": "preserve", + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true + }, + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] + } + " + `) }) } )