@hagicode/cli 0.1.0-dev.31.1.bcd050b → 0.1.0-dev.34.1.015c6d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/chunks/main-Dp8gzsa8.js +164 -0
- package/dist/cli.js +1 -1
- package/dist/main.js +1 -1
- package/package.json +13 -4
- package/dist/chunks/main-BoZml4AL.js +0 -161
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
var Ri=Object.create,fa=Object.defineProperty,Ei=Object.getOwnPropertyDescriptor,Ni=Object.getOwnPropertyNames,Gi=Object.getPrototypeOf,Vi=Object.prototype.hasOwnProperty,ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Wi=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(var a=Ni(t),r=0,i=a.length,s;r<i;r++)s=a[r],!Vi.call(e,s)&&s!==n&&fa(e,s,{get:(l=>t[l]).bind(null,s),enumerable:!(o=Ei(t,s))||o.enumerable});return e},ut=(e,t,n)=>(n=e!=null?Ri(Gi(e)):{},Wi(t||!e||!e.__esModule?fa(n,"default",{value:e,enumerable:!0}):n,e));let to=require("node:path"),Si=require("node:fs"),vi=require("node:os"),Me=require("node:zlib");Me=ut(Me);let Ct=require("node:util"),nn=require("node:http");nn=ut(nn);let on=require("node:https");on=ut(on);let he=require("node:http2");he=ut(he);let Xi=require("node:fs/promises");var Bt=ke((e=>{var t=class extends Error{constructor(o,a,r){super(r),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=a,this.exitCode=o,this.nestedError=void 0}},n=class extends t{constructor(o){super(1,"commander.invalidArgument",o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};e.CommanderError=t,e.InvalidArgumentError=n})),Zn=ke((e=>{var{InvalidArgumentError:t}=Bt(),n=class{constructor(a,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,a[0]){case"<":this.required=!0,this._name=a.slice(1,-1);break;case"[":this.required=!1,this._name=a.slice(1,-1);break;default:this.required=!0,this._name=a;break}this._name.endsWith("...")&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(a,r){return r===this.defaultValue||!Array.isArray(r)?[a]:(r.push(a),r)}default(a,r){return this.defaultValue=a,this.defaultValueDescription=r,this}argParser(a){return this.parseArg=a,this}choices(a){return this.argChoices=a.slice(),this.parseArg=(r,i)=>{if(!this.argChoices.includes(r))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(r,i):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function o(a){const r=a.name()+(a.variadic===!0?"...":"");return a.required?"<"+r+">":"["+r+"]"}e.Argument=n,e.humanReadableArgName=o})),Ra=ke((e=>{var{humanReadableArgName:t}=Zn(),n=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(a){this.helpWidth=this.helpWidth??a.helpWidth??80}visibleCommands(a){const r=a.commands.filter(s=>!s._hidden),i=a._getHelpCommand();return i&&!i._hidden&&r.push(i),this.sortSubcommands&&r.sort((s,l)=>s.name().localeCompare(l.name())),r}compareOptions(a,r){const i=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return i(a).localeCompare(i(r))}visibleOptions(a){const r=a.options.filter(s=>!s.hidden),i=a._getHelpOption();if(i&&!i.hidden){const s=i.short&&a._findOption(i.short),l=i.long&&a._findOption(i.long);!s&&!l?r.push(i):i.long&&!l?r.push(a.createOption(i.long,i.description)):i.short&&!s&&r.push(a.createOption(i.short,i.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(a){if(!this.showGlobalOptions)return[];const r=[];for(let i=a.parent;i;i=i.parent){const s=i.options.filter(l=>!l.hidden);r.push(...s)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(a){return a._argsDescription&&a.registeredArguments.forEach(r=>{r.description=r.description||a._argsDescription[r.name()]||""}),a.registeredArguments.find(r=>r.description)?a.registeredArguments:[]}subcommandTerm(a){const r=a.registeredArguments.map(i=>t(i)).join(" ");return a._name+(a._aliases[0]?"|"+a._aliases[0]:"")+(a.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(a){return a.flags}argumentTerm(a){return a.name()}longestSubcommandTermLength(a,r){return r.visibleCommands(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(s)))),0)}longestOptionTermLength(a,r){return r.visibleOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestGlobalOptionTermLength(a,r){return r.visibleGlobalOptions(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleOptionTerm(r.optionTerm(s)))),0)}longestArgumentTermLength(a,r){return r.visibleArguments(a).reduce((i,s)=>Math.max(i,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(s)))),0)}commandUsage(a){let r=a._name;a._aliases[0]&&(r=r+"|"+a._aliases[0]);let i="";for(let s=a.parent;s;s=s.parent)i=s.name()+" "+i;return i+r+" "+a.usage()}commandDescription(a){return a.description()}subcommandDescription(a){return a.summary()||a.description()}optionDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&(a.required||a.optional||a.isBoolean()&&typeof a.defaultValue=="boolean")&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),a.presetArg!==void 0&&a.optional&&r.push(`preset: ${JSON.stringify(a.presetArg)}`),a.envVar!==void 0&&r.push(`env: ${a.envVar}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}argumentDescription(a){const r=[];if(a.argChoices&&r.push(`choices: ${a.argChoices.map(i=>JSON.stringify(i)).join(", ")}`),a.defaultValue!==void 0&&r.push(`default: ${a.defaultValueDescription||JSON.stringify(a.defaultValue)}`),r.length>0){const i=`(${r.join(", ")})`;return a.description?`${a.description} ${i}`:i}return a.description}formatItemList(a,r,i){return r.length===0?[]:[i.styleTitle(a),...r,""]}groupItems(a,r,i){const s=new Map;return a.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[])}),r.forEach(l=>{const c=i(l);s.has(c)||s.set(c,[]),s.get(c).push(l)}),s}formatHelp(a,r){const i=r.padWidth(a,r),s=r.helpWidth??80;function l(f,Z){return r.formatItem(f,i,Z,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(a))}`,""];const m=r.commandDescription(a);m.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(m),s),""]));const p=r.visibleArguments(a).map(f=>l(r.styleArgumentTerm(r.argumentTerm(f)),r.styleArgumentDescription(r.argumentDescription(f))));if(c=c.concat(this.formatItemList("Arguments:",p,r)),this.groupItems(a.options,r.visibleOptions(a),f=>f.helpGroupHeading??"Options:").forEach((f,Z)=>{const N=f.map(V=>l(r.styleOptionTerm(r.optionTerm(V)),r.styleOptionDescription(r.optionDescription(V))));c=c.concat(this.formatItemList(Z,N,r))}),r.showGlobalOptions){const f=r.visibleGlobalOptions(a).map(Z=>l(r.styleOptionTerm(r.optionTerm(Z)),r.styleOptionDescription(r.optionDescription(Z))));c=c.concat(this.formatItemList("Global Options:",f,r))}return this.groupItems(a.commands,r.visibleCommands(a),f=>f.helpGroup()||"Commands:").forEach((f,Z)=>{const N=f.map(V=>l(r.styleSubcommandTerm(r.subcommandTerm(V)),r.styleSubcommandDescription(r.subcommandDescription(V))));c=c.concat(this.formatItemList(Z,N,r))}),c.join(`
|
|
2
|
+
`)}displayWidth(a){return o(a).length}styleTitle(a){return a}styleUsage(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(a){return this.styleDescriptionText(a)}styleOptionDescription(a){return this.styleDescriptionText(a)}styleSubcommandDescription(a){return this.styleDescriptionText(a)}styleArgumentDescription(a){return this.styleDescriptionText(a)}styleDescriptionText(a){return a}styleOptionTerm(a){return this.styleOptionText(a)}styleSubcommandTerm(a){return a.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(a){return this.styleArgumentText(a)}styleOptionText(a){return a}styleArgumentText(a){return a}styleSubcommandText(a){return a}styleCommandText(a){return a}padWidth(a,r){return Math.max(r.longestOptionTermLength(a,r),r.longestGlobalOptionTermLength(a,r),r.longestSubcommandTermLength(a,r),r.longestArgumentTermLength(a,r))}preformatted(a){return/\n[^\S\r\n]/.test(a)}formatItem(a,r,i,s){const c=" ".repeat(2);if(!i)return c+a;const m=a.padEnd(r+a.length-s.displayWidth(a)),p=2,f=(this.helpWidth??80)-r-p-2;let Z;return f<this.minWidthToWrap||s.preformatted(i)?Z=i:Z=s.boxWrap(i,f).replace(/\n/g,`
|
|
3
|
+
`+" ".repeat(r+p)),c+m+" ".repeat(p)+Z.replace(/\n/g,`
|
|
4
|
+
${c}`)}boxWrap(a,r){if(r<this.minWidthToWrap)return a;const i=a.split(/\r\n|\n/),s=/[\s]*[^\s]+/g,l=[];return i.forEach(c=>{const m=c.match(s);if(m===null){l.push("");return}let p=[m.shift()],f=this.displayWidth(p[0]);m.forEach(Z=>{const N=this.displayWidth(Z);if(f+N<=r){p.push(Z),f+=N;return}l.push(p.join(""));const V=Z.trimStart();p=[V],f=this.displayWidth(V)}),l.push(p.join(""))}),l.join(`
|
|
5
|
+
`)}};function o(a){return a.replace(/\x1b\[\d*(;\d*)*m/g,"")}e.Help=n,e.stripColor=o})),Ea=ke((e=>{var{InvalidArgumentError:t}=Bt(),n=class{constructor(i,s){this.flags=i,this.description=s||"",this.required=i.includes("<"),this.optional=i.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(i),this.mandatory=!1;const l=r(i);this.short=l.shortFlag,this.long=l.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(i,s){return this.defaultValue=i,this.defaultValueDescription=s,this}preset(i){return this.presetArg=i,this}conflicts(i){return this.conflictsWith=this.conflictsWith.concat(i),this}implies(i){let s=i;return typeof i=="string"&&(s={[i]:!0}),this.implied=Object.assign(this.implied||{},s),this}env(i){return this.envVar=i,this}argParser(i){return this.parseArg=i,this}makeOptionMandatory(i=!0){return this.mandatory=!!i,this}hideHelp(i=!0){return this.hidden=!!i,this}_collectValue(i,s){return s===this.defaultValue||!Array.isArray(s)?[i]:(s.push(i),s)}choices(i){return this.argChoices=i.slice(),this.parseArg=(s,l)=>{if(!this.argChoices.includes(s))throw new t(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._collectValue(s,l):s},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?a(this.name().replace(/^no-/,"")):a(this.name())}helpGroup(i){return this.helpGroupHeading=i,this}is(i){return this.short===i||this.long===i}isBoolean(){return!this.required&&!this.optional&&!this.negate}},o=class{constructor(i){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,i.forEach(s=>{s.negate?this.negativeOptions.set(s.attributeName(),s):this.positiveOptions.set(s.attributeName(),s)}),this.negativeOptions.forEach((s,l)=>{this.positiveOptions.has(l)&&this.dualOptions.add(l)})}valueFromOption(i,s){const l=s.attributeName();if(!this.dualOptions.has(l))return!0;const c=this.negativeOptions.get(l).presetArg,m=c!==void 0?c:!1;return s.negate===(m===i)}};function a(i){return i.split("-").reduce((s,l)=>s+l[0].toUpperCase()+l.slice(1))}function r(i){let s,l;const c=/^-[^-]$/,m=/^--[^-]/,p=i.split(/[ |,]+/).concat("guard");if(c.test(p[0])&&(s=p.shift()),m.test(p[0])&&(l=p.shift()),!s&&c.test(p[0])&&(s=p.shift()),!s&&m.test(p[0])&&(s=l,l=p.shift()),p[0].startsWith("-")){const f=p[0],Z=`option creation failed due to '${f}' in option flags '${i}'`;throw/^-[^-][^-]/.test(f)?new Error(`${Z}
|
|
6
|
+
- a short flag is a single dash and a single character
|
|
7
|
+
- either use a single dash and a single character (for a short flag)
|
|
8
|
+
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`):c.test(f)?new Error(`${Z}
|
|
9
|
+
- too many short flags`):m.test(f)?new Error(`${Z}
|
|
10
|
+
- too many long flags`):new Error(`${Z}
|
|
11
|
+
- unrecognised flag format`)}if(s===void 0&&l===void 0)throw new Error(`option creation failed due to no flags found in '${i}'.`);return{shortFlag:s,longFlag:l}}e.Option=n,e.DualOptions=o})),Yi=ke((e=>{var t=3;function n(a,r){if(Math.abs(a.length-r.length)>t)return Math.max(a.length,r.length);const i=[];for(let s=0;s<=a.length;s++)i[s]=[s];for(let s=0;s<=r.length;s++)i[0][s]=s;for(let s=1;s<=r.length;s++)for(let l=1;l<=a.length;l++){let c=1;a[l-1]===r[s-1]?c=0:c=1,i[l][s]=Math.min(i[l-1][s]+1,i[l][s-1]+1,i[l-1][s-1]+c),l>1&&s>1&&a[l-1]===r[s-2]&&a[l-2]===r[s-1]&&(i[l][s]=Math.min(i[l][s],i[l-2][s-2]+1))}return i[a.length][r.length]}function o(a,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));const i=a.startsWith("--");i&&(a=a.slice(2),r=r.map(m=>m.slice(2)));let s=[],l=t;const c=.4;return r.forEach(m=>{if(m.length<=1)return;const p=n(a,m),f=Math.max(a.length,m.length);(f-p)/f>c&&(p<l?(l=p,s=[m]):p===l&&s.push(m))}),s.sort((m,p)=>m.localeCompare(p)),i&&(s=s.map(m=>`--${m}`)),s.length>1?`
|
|
12
|
+
(Did you mean one of ${s.join(", ")}?)`:s.length===1?`
|
|
13
|
+
(Did you mean ${s[0]}?)`:""}e.suggestSimilar=o})),Ii=ke((e=>{var t=require("node:events").EventEmitter,n=require("node:child_process"),o=require("node:path"),a=require("node:fs"),r=require("node:process"),{Argument:i,humanReadableArgName:s}=Zn(),{CommanderError:l}=Bt(),{Help:c,stripColor:m}=Ra(),{Option:p,DualOptions:f}=Ea(),{suggestSimilar:Z}=Yi(),N=class Na extends t{constructor(u){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=u||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:d=>r.stdout.write(d),writeErr:d=>r.stderr.write(d),outputError:(d,g)=>g(d),getOutHelpWidth:()=>r.stdout.isTTY?r.stdout.columns:void 0,getErrHelpWidth:()=>r.stderr.isTTY?r.stderr.columns:void 0,getOutHasColors:()=>C()??(r.stdout.isTTY&&r.stdout.hasColors?.()),getErrHasColors:()=>C()??(r.stderr.isTTY&&r.stderr.hasColors?.()),stripColor:d=>m(d)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(u){return this._outputConfiguration=u._outputConfiguration,this._helpOption=u._helpOption,this._helpCommand=u._helpCommand,this._helpConfiguration=u._helpConfiguration,this._exitCallback=u._exitCallback,this._storeOptionsAsProperties=u._storeOptionsAsProperties,this._combineFlagAndOptionalValue=u._combineFlagAndOptionalValue,this._allowExcessArguments=u._allowExcessArguments,this._enablePositionalOptions=u._enablePositionalOptions,this._showHelpAfterError=u._showHelpAfterError,this._showSuggestionAfterError=u._showSuggestionAfterError,this}_getCommandAndAncestors(){const u=[];for(let d=this;d;d=d.parent)u.push(d);return u}command(u,d,g){let b=d,A=g;typeof b=="object"&&b!==null&&(A=b,b=null),A=A||{};const[,E,v]=u.match(/([^ ]+) *(.*)/),U=this.createCommand(E);return b&&(U.description(b),U._executableHandler=!0),A.isDefault&&(this._defaultCommandName=U._name),U._hidden=!!(A.noHelp||A.hidden),U._executableFile=A.executableFile||null,v&&U.arguments(v),this._registerCommand(U),U.parent=this,U.copyInheritedSettings(this),b?this:U}createCommand(u){return new Na(u)}createHelp(){return Object.assign(new c,this.configureHelp())}configureHelp(u){return u===void 0?this._helpConfiguration:(this._helpConfiguration=u,this)}configureOutput(u){return u===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...u},this)}showHelpAfterError(u=!0){return typeof u!="string"&&(u=!!u),this._showHelpAfterError=u,this}showSuggestionAfterError(u=!0){return this._showSuggestionAfterError=!!u,this}addCommand(u,d){if(!u._name)throw new Error(`Command passed to .addCommand() must have a name
|
|
14
|
+
- specify the name in Command constructor or using .name()`);return d=d||{},d.isDefault&&(this._defaultCommandName=u._name),(d.noHelp||d.hidden)&&(u._hidden=!0),this._registerCommand(u),u.parent=this,u._checkForBrokenPassThrough(),this}createArgument(u,d){return new i(u,d)}argument(u,d,g,b){const A=this.createArgument(u,d);return typeof g=="function"?A.default(b).argParser(g):A.default(g),this.addArgument(A),this}arguments(u){return u.trim().split(/ +/).forEach(d=>{this.argument(d)}),this}addArgument(u){const d=this.registeredArguments.slice(-1)[0];if(d?.variadic)throw new Error(`only the last argument can be variadic '${d.name()}'`);if(u.required&&u.defaultValue!==void 0&&u.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${u.name()}'`);return this.registeredArguments.push(u),this}helpCommand(u,d){if(typeof u=="boolean")return this._addImplicitHelpCommand=u,u&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;const[,g,b]=(u??"help [command]").match(/([^ ]+) *(.*)/),A=d??"display help for command",E=this.createCommand(g);return E.helpOption(!1),b&&E.arguments(b),A&&E.description(A),this._addImplicitHelpCommand=!0,this._helpCommand=E,(u||d)&&this._initCommandGroup(E),this}addHelpCommand(u,d){return typeof u!="object"?(this.helpCommand(u,d),this):(this._addImplicitHelpCommand=!0,this._helpCommand=u,this._initCommandGroup(u),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(u,d){const g=["preSubcommand","preAction","postAction"];if(!g.includes(u))throw new Error(`Unexpected value for event passed to hook : '${u}'.
|
|
15
|
+
Expecting one of '${g.join("', '")}'`);return this._lifeCycleHooks[u]?this._lifeCycleHooks[u].push(d):this._lifeCycleHooks[u]=[d],this}exitOverride(u){return u?this._exitCallback=u:this._exitCallback=d=>{if(d.code!=="commander.executeSubCommandAsync")throw d},this}_exit(u,d,g){this._exitCallback&&this._exitCallback(new l(u,d,g)),r.exit(u)}action(u){const d=g=>{const b=this.registeredArguments.length,A=g.slice(0,b);return this._storeOptionsAsProperties?A[b]=this:A[b]=this.opts(),A.push(this),u.apply(this,A)};return this._actionHandler=d,this}createOption(u,d){return new p(u,d)}_callParseArg(u,d,g,b){try{return u.parseArg(d,g)}catch(A){if(A.code==="commander.invalidArgument"){const E=`${b} ${A.message}`;this.error(E,{exitCode:A.exitCode,code:A.code})}throw A}}_registerOption(u){const d=u.short&&this._findOption(u.short)||u.long&&this._findOption(u.long);if(d){const g=u.long&&this._findOption(u.long)?u.long:u.short;throw new Error(`Cannot add option '${u.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${g}'
|
|
16
|
+
- already used by option '${d.flags}'`)}this._initOptionGroup(u),this.options.push(u)}_registerCommand(u){const d=b=>[b.name()].concat(b.aliases()),g=d(u).find(b=>this._findCommand(b));if(g){const b=d(this._findCommand(g)).join("|"),A=d(u).join("|");throw new Error(`cannot add command '${A}' as already have command '${b}'`)}this._initCommandGroup(u),this.commands.push(u)}addOption(u){this._registerOption(u);const d=u.name(),g=u.attributeName();if(u.negate){const A=u.long.replace(/^--no-/,"--");this._findOption(A)||this.setOptionValueWithSource(g,u.defaultValue===void 0?!0:u.defaultValue,"default")}else u.defaultValue!==void 0&&this.setOptionValueWithSource(g,u.defaultValue,"default");const b=(A,E,v)=>{A==null&&u.presetArg!==void 0&&(A=u.presetArg);const U=this.getOptionValue(g);A!==null&&u.parseArg?A=this._callParseArg(u,A,U,E):A!==null&&u.variadic&&(A=u._collectValue(A,U)),A==null&&(u.negate?A=!1:u.isBoolean()||u.optional?A=!0:A=""),this.setOptionValueWithSource(g,A,v)};return this.on("option:"+d,A=>{b(A,`error: option '${u.flags}' argument '${A}' is invalid.`,"cli")}),u.envVar&&this.on("optionEnv:"+d,A=>{b(A,`error: option '${u.flags}' value '${A}' from env '${u.envVar}' is invalid.`,"env")}),this}_optionEx(u,d,g,b,A){if(typeof d=="object"&&d instanceof p)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");const E=this.createOption(d,g);if(E.makeOptionMandatory(!!u.mandatory),typeof b=="function")E.default(A).argParser(b);else if(b instanceof RegExp){const v=b;b=(U,T)=>{const W=v.exec(U);return W?W[0]:T},E.default(A).argParser(b)}else E.default(b);return this.addOption(E)}option(u,d,g,b){return this._optionEx({},u,d,g,b)}requiredOption(u,d,g,b){return this._optionEx({mandatory:!0},u,d,g,b)}combineFlagAndOptionalValue(u=!0){return this._combineFlagAndOptionalValue=!!u,this}allowUnknownOption(u=!0){return this._allowUnknownOption=!!u,this}allowExcessArguments(u=!0){return this._allowExcessArguments=!!u,this}enablePositionalOptions(u=!0){return this._enablePositionalOptions=!!u,this}passThroughOptions(u=!0){return this._passThroughOptions=!!u,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(u=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!u,this}getOptionValue(u){return this._storeOptionsAsProperties?this[u]:this._optionValues[u]}setOptionValue(u,d){return this.setOptionValueWithSource(u,d,void 0)}setOptionValueWithSource(u,d,g){return this._storeOptionsAsProperties?this[u]=d:this._optionValues[u]=d,this._optionValueSources[u]=g,this}getOptionValueSource(u){return this._optionValueSources[u]}getOptionValueSourceWithGlobals(u){let d;return this._getCommandAndAncestors().forEach(g=>{g.getOptionValueSource(u)!==void 0&&(d=g.getOptionValueSource(u))}),d}_prepareUserArgs(u,d){if(u!==void 0&&!Array.isArray(u))throw new Error("first parameter to parse must be array or undefined");if(d=d||{},u===void 0&&d.from===void 0){r.versions?.electron&&(d.from="electron");const b=r.execArgv??[];(b.includes("-e")||b.includes("--eval")||b.includes("-p")||b.includes("--print"))&&(d.from="eval")}u===void 0&&(u=r.argv),this.rawArgs=u.slice();let g;switch(d.from){case void 0:case"node":this._scriptPath=u[1],g=u.slice(2);break;case"electron":r.defaultApp?(this._scriptPath=u[1],g=u.slice(2)):g=u.slice(1);break;case"user":g=u.slice(0);break;case"eval":g=u.slice(1);break;default:throw new Error(`unexpected parse option { from: '${d.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",g}parse(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return this._parseCommand([],g),this}async parseAsync(u,d){this._prepareForParse();const g=this._prepareUserArgs(u,d);return await this._parseCommand([],g),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
17
|
+
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(u,d,g){if(a.existsSync(u))return;const b=`'${u}' does not exist
|
|
18
|
+
- if '${g}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
19
|
+
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
20
|
+
- ${d?`searched for local subcommand relative to directory '${d}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;throw new Error(b)}_executeSubCommand(u,d){d=d.slice();let g=!1;const b=[".js",".ts",".tsx",".mjs",".cjs"];function A(W,K){const O=o.resolve(W,K);if(a.existsSync(O))return O;if(b.includes(o.extname(K)))return;const eo=b.find(fi=>a.existsSync(`${O}${fi}`));if(eo)return`${O}${eo}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let E=u._executableFile||`${this._name}-${u._name}`,v=this._executableDir||"";if(this._scriptPath){let W;try{W=a.realpathSync(this._scriptPath)}catch{W=this._scriptPath}v=o.resolve(o.dirname(W),v)}if(v){let W=A(v,E);if(!W&&!u._executableFile&&this._scriptPath){const K=o.basename(this._scriptPath,o.extname(this._scriptPath));K!==this._name&&(W=A(v,`${K}-${u._name}`))}E=W||E}g=b.includes(o.extname(E));let U;r.platform!=="win32"?g?(d.unshift(E),d=V(r.execArgv).concat(d),U=n.spawn(r.argv[0],d,{stdio:"inherit"})):U=n.spawn(E,d,{stdio:"inherit"}):(this._checkForMissingExecutable(E,v,u._name),d.unshift(E),d=V(r.execArgv).concat(d),U=n.spawn(r.execPath,d,{stdio:"inherit"})),U.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(W=>{r.on(W,()=>{U.killed===!1&&U.exitCode===null&&U.kill(W)})});const T=this._exitCallback;U.on("close",W=>{W=W??1,T?T(new l(W,"commander.executeSubCommandAsync","(close)")):r.exit(W)}),U.on("error",W=>{if(W.code==="ENOENT")this._checkForMissingExecutable(E,v,u._name);else if(W.code==="EACCES")throw new Error(`'${E}' not executable`);if(!T)r.exit(1);else{const K=new l(1,"commander.executeSubCommandAsync","(error)");K.nestedError=W,T(K)}}),this.runningCommand=U}_dispatchSubcommand(u,d,g){const b=this._findCommand(u);b||this.help({error:!0}),b._prepareForParse();let A;return A=this._chainOrCallSubCommandHook(A,b,"preSubcommand"),A=this._chainOrCall(A,()=>{if(b._executableHandler)this._executeSubCommand(b,d.concat(g));else return b._parseCommand(d,g)}),A}_dispatchHelpCommand(u){u||this.help();const d=this._findCommand(u);return d&&!d._executableHandler&&d.help(),this._dispatchSubcommand(u,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((u,d)=>{u.required&&this.args[d]==null&&this.missingArgument(u.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){const u=(g,b,A)=>{let E=b;if(b!==null&&g.parseArg){const v=`error: command-argument value '${b}' is invalid for argument '${g.name()}'.`;E=this._callParseArg(g,b,A,v)}return E};this._checkNumberOfArguments();const d=[];this.registeredArguments.forEach((g,b)=>{let A=g.defaultValue;g.variadic?b<this.args.length?(A=this.args.slice(b),g.parseArg&&(A=A.reduce((E,v)=>u(g,v,E),g.defaultValue))):A===void 0&&(A=[]):b<this.args.length&&(A=this.args[b],g.parseArg&&(A=u(g,A,g.defaultValue))),d[b]=A}),this.processedArgs=d}_chainOrCall(u,d){return u?.then&&typeof u.then=="function"?u.then(()=>d()):d()}_chainOrCallHooks(u,d){let g=u;const b=[];return this._getCommandAndAncestors().reverse().filter(A=>A._lifeCycleHooks[d]!==void 0).forEach(A=>{A._lifeCycleHooks[d].forEach(E=>{b.push({hookedCommand:A,callback:E})})}),d==="postAction"&&b.reverse(),b.forEach(A=>{g=this._chainOrCall(g,()=>A.callback(A.hookedCommand,this))}),g}_chainOrCallSubCommandHook(u,d,g){let b=u;return this._lifeCycleHooks[g]!==void 0&&this._lifeCycleHooks[g].forEach(A=>{b=this._chainOrCall(b,()=>A(this,d))}),b}_parseCommand(u,d){const g=this.parseOptions(d);if(this._parseOptionsEnv(),this._parseOptionsImplied(),u=u.concat(g.operands),d=g.unknown,this.args=u.concat(d),u&&this._findCommand(u[0]))return this._dispatchSubcommand(u[0],u.slice(1),d);if(this._getHelpCommand()&&u[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(u[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(d),this._dispatchSubcommand(this._defaultCommandName,u,d);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(g.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();const b=()=>{g.unknown.length>0&&this.unknownOption(g.unknown[0])},A=`command:${this.name()}`;if(this._actionHandler){b(),this._processArguments();let E;return E=this._chainOrCallHooks(E,"preAction"),E=this._chainOrCall(E,()=>this._actionHandler(this.processedArgs)),this.parent&&(E=this._chainOrCall(E,()=>{this.parent.emit(A,u,d)})),E=this._chainOrCallHooks(E,"postAction"),E}if(this.parent?.listenerCount(A))b(),this._processArguments(),this.parent.emit(A,u,d);else if(u.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",u,d);this.listenerCount("command:*")?this.emit("command:*",u,d):this.commands.length?this.unknownCommand():(b(),this._processArguments())}else this.commands.length?(b(),this.help({error:!0})):(b(),this._processArguments())}_findCommand(u){if(u)return this.commands.find(d=>d._name===u||d._aliases.includes(u))}_findOption(u){return this.options.find(d=>d.is(u))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(u=>{u.options.forEach(d=>{d.mandatory&&u.getOptionValue(d.attributeName())===void 0&&u.missingMandatoryOptionValue(d)})})}_checkForConflictingLocalOptions(){const u=this.options.filter(d=>{const g=d.attributeName();return this.getOptionValue(g)===void 0?!1:this.getOptionValueSource(g)!=="default"});u.filter(d=>d.conflictsWith.length>0).forEach(d=>{const g=u.find(b=>d.conflictsWith.includes(b.attributeName()));g&&this._conflictingOption(d,g)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(u=>{u._checkForConflictingLocalOptions()})}parseOptions(u){const d=[],g=[];let b=d;function A(W){return W.length>1&&W[0]==="-"}const E=W=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(W)?!this._getCommandAndAncestors().some(K=>K.options.map(O=>O.short).some(O=>/^-\d$/.test(O))):!1;let v=null,U=null,T=0;for(;T<u.length||U;){const W=U??u[T++];if(U=null,W==="--"){b===g&&b.push(W),b.push(...u.slice(T));break}if(v&&(!A(W)||E(W))){this.emit(`option:${v.name()}`,W);continue}if(v=null,A(W)){const K=this._findOption(W);if(K){if(K.required){const O=u[T++];O===void 0&&this.optionMissingArgument(K),this.emit(`option:${K.name()}`,O)}else if(K.optional){let O=null;T<u.length&&(!A(u[T])||E(u[T]))&&(O=u[T++]),this.emit(`option:${K.name()}`,O)}else this.emit(`option:${K.name()}`);v=K.variadic?K:null;continue}}if(W.length>2&&W[0]==="-"&&W[1]!=="-"){const K=this._findOption(`-${W[1]}`);if(K){K.required||K.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${K.name()}`,W.slice(2)):(this.emit(`option:${K.name()}`),U=`-${W.slice(2)}`);continue}}if(/^--[^=]+=/.test(W)){const K=W.indexOf("="),O=this._findOption(W.slice(0,K));if(O&&(O.required||O.optional)){this.emit(`option:${O.name()}`,W.slice(K+1));continue}}if(b===d&&A(W)&&!(this.commands.length===0&&E(W))&&(b=g),(this._enablePositionalOptions||this._passThroughOptions)&&d.length===0&&g.length===0){if(this._findCommand(W)){d.push(W),g.push(...u.slice(T));break}else if(this._getHelpCommand()&&W===this._getHelpCommand().name()){d.push(W,...u.slice(T));break}else if(this._defaultCommandName){g.push(W,...u.slice(T));break}}if(this._passThroughOptions){b.push(W,...u.slice(T));break}b.push(W)}return{operands:d,unknown:g}}opts(){if(this._storeOptionsAsProperties){const u={},d=this.options.length;for(let g=0;g<d;g++){const b=this.options[g].attributeName();u[b]=b===this._versionOptionName?this._version:this[b]}return u}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((u,d)=>Object.assign(u,d.opts()),{})}error(u,d){this._outputConfiguration.outputError(`${u}
|
|
21
|
+
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
22
|
+
`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
23
|
+
`),this.outputHelp({error:!0}));const g=d||{},b=g.exitCode||1,A=g.code||"commander.error";this._exit(b,A,u)}_parseOptionsEnv(){this.options.forEach(u=>{if(u.envVar&&u.envVar in r.env){const d=u.attributeName();(this.getOptionValue(d)===void 0||["default","config","env"].includes(this.getOptionValueSource(d)))&&(u.required||u.optional?this.emit(`optionEnv:${u.name()}`,r.env[u.envVar]):this.emit(`optionEnv:${u.name()}`))}})}_parseOptionsImplied(){const u=new f(this.options),d=g=>this.getOptionValue(g)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(g));this.options.filter(g=>g.implied!==void 0&&d(g.attributeName())&&u.valueFromOption(this.getOptionValue(g.attributeName()),g)).forEach(g=>{Object.keys(g.implied).filter(b=>!d(b)).forEach(b=>{this.setOptionValueWithSource(b,g.implied[b],"implied")})})}missingArgument(u){const d=`error: missing required argument '${u}'`;this.error(d,{code:"commander.missingArgument"})}optionMissingArgument(u){const d=`error: option '${u.flags}' argument missing`;this.error(d,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(u){const d=`error: required option '${u.flags}' not specified`;this.error(d,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(u,d){const g=E=>{const v=E.attributeName(),U=this.getOptionValue(v),T=this.options.find(K=>K.negate&&v===K.attributeName()),W=this.options.find(K=>!K.negate&&v===K.attributeName());return T&&(T.presetArg===void 0&&U===!1||T.presetArg!==void 0&&U===T.presetArg)?T:W||E},b=E=>{const v=g(E),U=v.attributeName();return this.getOptionValueSource(U)==="env"?`environment variable '${v.envVar}'`:`option '${v.flags}'`},A=`error: ${b(u)} cannot be used with ${b(d)}`;this.error(A,{code:"commander.conflictingOption"})}unknownOption(u){if(this._allowUnknownOption)return;let d="";if(u.startsWith("--")&&this._showSuggestionAfterError){let b=[],A=this;do{const E=A.createHelp().visibleOptions(A).filter(v=>v.long).map(v=>v.long);b=b.concat(E),A=A.parent}while(A&&!A._enablePositionalOptions);d=Z(u,b)}const g=`error: unknown option '${u}'${d}`;this.error(g,{code:"commander.unknownOption"})}_excessArguments(u){if(this._allowExcessArguments)return;const d=this.registeredArguments.length,g=d===1?"":"s",b=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${d} argument${g} but got ${u.length}.`;this.error(b,{code:"commander.excessArguments"})}unknownCommand(){const u=this.args[0];let d="";if(this._showSuggestionAfterError){const b=[];this.createHelp().visibleCommands(this).forEach(A=>{b.push(A.name()),A.alias()&&b.push(A.alias())}),d=Z(u,b)}const g=`error: unknown command '${u}'${d}`;this.error(g,{code:"commander.unknownCommand"})}version(u,d,g){if(u===void 0)return this._version;this._version=u,d=d||"-V, --version",g=g||"output the version number";const b=this.createOption(d,g);return this._versionOptionName=b.attributeName(),this._registerOption(b),this.on("option:"+b.name(),()=>{this._outputConfiguration.writeOut(`${u}
|
|
24
|
+
`),this._exit(0,"commander.version",u)}),this}description(u,d){return u===void 0&&d===void 0?this._description:(this._description=u,d&&(this._argsDescription=d),this)}summary(u){return u===void 0?this._summary:(this._summary=u,this)}alias(u){if(u===void 0)return this._aliases[0];let d=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(d=this.commands[this.commands.length-1]),u===d._name)throw new Error("Command alias can't be the same as its name");const g=this.parent?._findCommand(u);if(g){const b=[g.name()].concat(g.aliases()).join("|");throw new Error(`cannot add alias '${u}' to command '${this.name()}' as already have command '${b}'`)}return d._aliases.push(u),this}aliases(u){return u===void 0?this._aliases:(u.forEach(d=>this.alias(d)),this)}usage(u){if(u===void 0){if(this._usage)return this._usage;const d=this.registeredArguments.map(g=>s(g));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?d:[]).join(" ")}return this._usage=u,this}name(u){return u===void 0?this._name:(this._name=u,this)}helpGroup(u){return u===void 0?this._helpGroupHeading??"":(this._helpGroupHeading=u,this)}commandsGroup(u){return u===void 0?this._defaultCommandGroup??"":(this._defaultCommandGroup=u,this)}optionsGroup(u){return u===void 0?this._defaultOptionGroup??"":(this._defaultOptionGroup=u,this)}_initOptionGroup(u){this._defaultOptionGroup&&!u.helpGroupHeading&&u.helpGroup(this._defaultOptionGroup)}_initCommandGroup(u){this._defaultCommandGroup&&!u.helpGroup()&&u.helpGroup(this._defaultCommandGroup)}nameFromFilename(u){return this._name=o.basename(u,o.extname(u)),this}executableDir(u){return u===void 0?this._executableDir:(this._executableDir=u,this)}helpInformation(u){const d=this.createHelp(),g=this._getOutputContext(u);d.prepareContext({error:g.error,helpWidth:g.helpWidth,outputHasColors:g.hasColors});const b=d.formatHelp(this,d);return g.hasColors?b:this._outputConfiguration.stripColor(b)}_getOutputContext(u){u=u||{};const d=!!u.error;let g,b,A;return d?(g=v=>this._outputConfiguration.writeErr(v),b=this._outputConfiguration.getErrHasColors(),A=this._outputConfiguration.getErrHelpWidth()):(g=v=>this._outputConfiguration.writeOut(v),b=this._outputConfiguration.getOutHasColors(),A=this._outputConfiguration.getOutHelpWidth()),{error:d,write:v=>(b||(v=this._outputConfiguration.stripColor(v)),g(v)),hasColors:b,helpWidth:A}}outputHelp(u){let d;typeof u=="function"&&(d=u,u=void 0);const g=this._getOutputContext(u),b={error:g.error,write:g.write,command:this};this._getCommandAndAncestors().reverse().forEach(E=>E.emit("beforeAllHelp",b)),this.emit("beforeHelp",b);let A=this.helpInformation({error:g.error});if(d&&(A=d(A),typeof A!="string"&&!Buffer.isBuffer(A)))throw new Error("outputHelp callback must return a string or a Buffer");g.write(A),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",b),this._getCommandAndAncestors().forEach(E=>E.emit("afterAllHelp",b))}helpOption(u,d){return typeof u=="boolean"?(u?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(u??"-h, --help",d??"display help for command"),(u||d)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(u){return this._helpOption=u,this._initOptionGroup(u),this}help(u){this.outputHelp(u);let d=Number(r.exitCode??0);d===0&&u&&typeof u!="function"&&u.error&&(d=1),this._exit(d,"commander.help","(outputHelp)")}addHelpText(u,d){const g=["beforeAll","before","after","afterAll"];if(!g.includes(u))throw new Error(`Unexpected value for position to addHelpText.
|
|
25
|
+
Expecting one of '${g.join("', '")}'`);const b=`${u}Help`;return this.on(b,A=>{let E;typeof d=="function"?E=d({error:A.error,command:A.command}):E=d,E&&A.write(`${E}
|
|
26
|
+
`)}),this}_outputHelpIfRequested(u){const d=this._getHelpOption();d&&u.find(g=>d.is(g))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function V(J){return J.map(u=>{if(!u.startsWith("--inspect"))return u;let d,g="127.0.0.1",b="9229",A;return(A=u.match(/^(--inspect(-brk)?)$/))!==null?d=A[1]:(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(d=A[1],/^\d+$/.test(A[3])?b=A[3]:g=A[3]):(A=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(d=A[1],g=A[3],b=A[4]),d&&b!=="0"?`${d}=${g}:${parseInt(b)+1}`:u})}function C(){if(r.env.NO_COLOR||r.env.FORCE_COLOR==="0"||r.env.FORCE_COLOR==="false")return!1;if(r.env.FORCE_COLOR||r.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=N,e.useColor=C})),yi=ke((e=>{var{Argument:t}=Zn(),{Command:n}=Ii(),{CommanderError:o,InvalidArgumentError:a}=Bt(),{Help:r}=Ra(),{Option:i}=Ea();e.program=new n,e.createCommand=s=>new n(s),e.createOption=(s,l)=>new i(s,l),e.createArgument=(s,l)=>new t(s,l),e.Command=n,e.Option=i,e.Argument=t,e.Help=r,e.CommanderError=o,e.InvalidArgumentError=a,e.InvalidOptionArgumentError=a})),Ci=ut(yi(),1),{program:kb,createCommand:Kb,createArgument:xb,createOption:zb,CommanderError:Bi,InvalidArgumentError:Lb,InvalidOptionArgumentError:jb,Command:Fi,Argument:Tb,Option:Ye,Help:Hb}=Ci.default;function I(e){return`${JSON.stringify(e,null,2)}
|
|
27
|
+
`}var R;(function(e){e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function fn(e,t){return e!==null&&typeof e=="object"&&"$typeName"in e&&typeof e.$typeName=="string"?t===void 0?!0:t.typeName===e.$typeName:!1}var h;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(h||(h={}));function wi(){const e=this.buf;let t=this.pos,n=0,o=0;for(let r=0;r<28;r+=7){const i=e[t++];if(n|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}const a=e[t++];if(n|=(a&15)<<28,o=(a&112)>>4,(a&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}for(let r=3;r<=31;r+=7){const i=e[t++];if(o|=(i&127)<<r,(i&128)==0){this.pos=t,this.assertBounds(),this.varint64Lo=n,this.varint64Hi=o;return}}throw new Error("invalid varint")}var Et=4294967296;function no(e){const t=e[0]==="-";t&&(e=e.slice(1));const n=1e6;let o=0,a=0;function r(i,s){const l=Number(e.slice(i,s));a*=n,o=o*n+l,o>=Et&&(a=a+(o/Et|0),o=o%Et)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),t?Va(o,a):Rn(o,a)}function Ui(e,t){let n=Rn(e,t);const o=n.hi&2147483648;o&&(n=Va(n.lo,n.hi));const a=Ga(n.lo,n.hi);return o?"-"+a:a}function Ga(e,t){if({lo:e,hi:t}=Ji(e,t),t<=2097151)return String(Et*t+e);const n=e&16777215,o=(e>>>24|t<<8)&16777215,a=t>>16&65535;let r=n+o*6777216+a*6710656,i=o+a*8147497,s=a*2;const l=1e7;return r>=l&&(i+=Math.floor(r/l),r%=l),i>=l&&(s+=Math.floor(i/l),i%=l),s.toString()+oo(i)+oo(r)}function Ji(e,t){return{lo:e>>>0,hi:t>>>0}}function Rn(e,t){return{lo:e|0,hi:t|0}}function Va(e,t){return t=~t,e?e=~e+1:t+=1,Rn(e,t)}var oo=e=>{const t=String(e);return"0000000".slice(t.length)+t};function ki(e,t){if(e>>>0<128){t.push(e);return}if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function Ki(){let e=this.buf[this.pos++];if((e&128)===0)return this.assertBounds(),e;let t=e&127;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)===0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)===0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!==0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var z=xi();function xi(){const e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(globalThis.Deno||globalThis.Bun||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>n||i<t)throw new Error(`invalid int64: ${r}`);return i},uParse(r){const i=typeof r=="bigint"?r:BigInt(r);if(i>a||i<o)throw new Error(`invalid uint64: ${r}`);return i},enc(r){return e.setBigInt64(0,this.parse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(r){return e.setBigInt64(0,this.uParse(r),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigInt64(0,!0)},uDec(r,i){return e.setInt32(0,r,!0),e.setInt32(4,i,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),ao(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),ro(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),ao(t),no(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),ro(t),no(t)},dec(t,n){return Ui(t,n)},uDec(t,n){return Ga(t,n)}}}function ao(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function ro(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function fe(e,t){switch(e){case h.STRING:return"";case h.BOOL:return!1;case h.DOUBLE:case h.FLOAT:return 0;case h.INT64:case h.UINT64:case h.SFIXED64:case h.FIXED64:case h.SINT64:return t?"0":z.zero;case h.BYTES:return new Uint8Array(0);default:return 0}}function zi(e,t){switch(e){case h.BOOL:return t===!1;case h.STRING:return t==="";case h.BYTES:return t instanceof Uint8Array&&!t.byteLength;case h.DOUBLE:case h.FLOAT:return Object.is(t,0);default:return t==0}}var Wa=2,ie=Symbol.for("reflect unsafe local");function Li(e,t){const n=e[t.localName].case;return n===void 0?n:t.fields.find(o=>o.localName===n)}function ji(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(t.presence!=Wa)return e[n]!==void 0&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!zi(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0}function Ti(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function Hi(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function ue(e,t,n){t==="__proto__"?Object.defineProperty(e,"__proto__",{value:n,writable:!0,enumerable:!0,configurable:!0}):e[t]=n}function Qi(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function Mi(e,t){const n=t.localName;if(t.oneof){const o=t.oneof.localName;e[o].case===n&&(e[o]={case:void 0})}else if(t.presence!=Wa)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=fe(t.scalar,t.longAsString);break}}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function En(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"add"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.listKind==s.listKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Nn(e,t){var n,o,a,r;if(Ie(e)&&ie in e&&"has"in e&&"field"in e&&typeof e.field=="function"){if(t!==void 0){const i=t,s=e.field();return i.mapKey===s.mapKey&&i.mapKind==s.mapKind&&i.scalar===s.scalar&&((n=i.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((a=i.enum)===null||a===void 0?void 0:a.typeName)===((r=s.enum)===null||r===void 0?void 0:r.typeName)}return!0}return!1}function Gn(e,t){return Ie(e)&&ie in e&&"desc"in e&&Ie(e.desc)&&e.desc.kind==="message"&&(t===void 0||e.desc.typeName==t.typeName)}function Oi(e){return va(e.$typeName)}function Ke(e){const t=e.fields[0];return va(e.typeName)&&t!==void 0&&t.fieldKind=="scalar"&&t.name=="value"&&t.number==1}function Sa(e){switch(e.typeName){case"google.protobuf.Any":case"google.protobuf.Timestamp":case"google.protobuf.Duration":case"google.protobuf.FieldMask":case"google.protobuf.Struct":case"google.protobuf.Value":case"google.protobuf.ListValue":return!0;default:return Ke(e)}}var Di=new Set(["google.protobuf.DoubleValue","google.protobuf.FloatValue","google.protobuf.Int64Value","google.protobuf.UInt64Value","google.protobuf.Int32Value","google.protobuf.UInt32Value","google.protobuf.BoolValue","google.protobuf.StringValue","google.protobuf.BytesValue"]);function va(e){return Di.has(e)}var _i=999,Pi=998,Xa=2;function oe(e,t){return fn(t,e)?t:Ya(e)(t)}var io=new WeakMap;function Ya(e){let t=io.get(e);return t===void 0&&(t=$i(e),io.set(e,t)),t}var an=0,Ia=1,ya=2,Ca=3;function $i(e){const t=e.typeName,{properties:n,prototype:o}=qi(e);return a=>{let r;o!==void 0?(r=Object.create(o),r.$typeName=t):r={$typeName:t};for(let i=0;i<n.length;i++){const s=n[i],l=s.name,c=a?.[l];switch(s.kind){case an:c!=null?r[l]=s.convert!==void 0?s.convert(c):c:s.constant!==void 0&&(r[l]=s.constant);break;case Ia:r[l]=s.convert!==void 0&&Array.isArray(c)?c.map(s.convert):c??[];break;case ya:if(s.convert===void 0||!Ie(c))r[l]=c??{};else{const m={},p=Object.keys(c);for(let f=0;f<p.length;f++)ue(m,p[f],s.convert(c[p[f]]));r[l]=m}break;case Ca:{const m=c;if(m?.case!=null){const p=s.convert.get(m.case);if(p!==void 0){r[l]={case:m.case,value:p(m.value)};break}}r[l]={case:void 0};break}}}return r}}function qi(e){var t,n;const o=[],a={},r=ts(e);for(const i of e.members){const s=i.localName;if(i.kind=="oneof"){o.push({name:s,kind:Ca,constant:void 0,convert:es(i)});continue}switch(i.fieldKind){case"message":o.push({name:s,kind:an,constant:void 0,convert:Nt(i)});break;case"list":o.push({name:s,kind:Ia,constant:void 0,convert:i.listKind=="message"?(t=Nt(i))!==null&&t!==void 0?t:(l=>l):i.scalar==h.BYTES?nt:void 0});break;case"map":o.push({name:s,kind:ya,constant:void 0,convert:i.mapKind=="message"?(n=Nt(i))!==null&&n!==void 0?n:(l=>l):i.scalar==h.BYTES?nt:void 0});break;default:{const l=ns(i);o.push({name:s,kind:an,constant:i.presence==Xa?l:void 0,convert:i.fieldKind=="scalar"&&i.scalar==h.BYTES?nt:void 0}),r&&(a[s]=l);break}}}return{properties:o,prototype:r?a:void 0}}function es(e){const t=new Map;for(const n of e.fields){let o;n.fieldKind=="message"?o=Nt(n):n.fieldKind=="scalar"&&n.scalar==h.BYTES&&(o=nt),t.set(n.localName,o??(a=>a))}return t}function Nt(e){if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message))return e.message.fields[0].scalar==h.BYTES?nt:void 0;if(e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!=="google.protobuf.Value")return;const t=e.message;let n;return o=>!Ie(o)||fn(o,t)?o:(n!=null||(n=Ya(t)),n(o))}function nt(e){return Array.isArray(e)?new Uint8Array(e):e}function ts(e){switch(e.file.edition){case _i:return!1;case Pi:return!0;default:return e.fields.some(t=>t.presence!=Xa&&t.fieldKind!="message"&&!t.oneof)}}function ns(e){const t=e.getDefaultValue();return t!==void 0?e.fieldKind=="scalar"&&e.longAsString?t.toString():t:e.fieldKind=="scalar"?fe(e.scalar,e.longAsString):e.enum.values[0].number}var os=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],L=class extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}};function as(e){return e instanceof Error&&os.includes(e.name)&&"field"in e&&typeof e.field=="function"}var rn;function rs(e){var t;rn=Object.assign(Object.assign({},e),{encodeUtf8Into:(t=e.encodeUtf8Into)!==null&&t!==void 0?t:Ba(e.encodeUtf8.bind(e))})}function Vn(){if(!rn){const e=globalThis;if(!e.TextEncoder||!e.TextDecoder)throw new Error("encoding API missing: install TextEncoder and TextDecoder on globalThis");const t=new e.TextEncoder,n=new e.TextDecoder;let o;const a={encodeUtf8(i){return t.encode(i)},decodeUtf8(i,s){return s?(o||(o=new e.TextDecoder("utf-8",{fatal:!0})),o.decode(i)):n.decode(i)},checkUtf8(i){try{return!0}catch{return!1}}};t.encodeInto&&(a.encodeUtf8Into=t.encodeInto.bind(t));const r=String.prototype.isWellFormed;r&&(a.checkUtf8=i=>r.call(i)),rs(a)}return rn}function Ba(e){return(t,n)=>{const o=e(t);return n.set(o),{written:o.byteLength}}}var Q;(function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"})(Q||(Q={}));var Fa=class{constructor(e){this.stackPos=[],this.encodeUtf8Into=e?Ba(e):Vn().encodeUtf8Into,this.buffer=wa,this.viewCache=ss,this.pos=0}ensureCapacity(e){const t=this.pos+e;if(t>this.buffer.length){let n=this.buffer.length||is;for(;n<t;)n*=2;const o=new Uint8Array(n);this.pos>0&&o.set(this.buffer),this.buffer=o}}view(){const e=this.buffer,t=this.viewCache;if(t.byteLength===e.byteLength)return t;const n=new DataView(e.buffer);return this.viewCache=n,n}finish(){const e=this.buffer.slice(0,this.pos);return this.pos=0,this.stackPos=[],e}fork(){return this.stackPos.push(this.pos),this.ensureCapacity(qe),this.buffer[this.pos++]=0,this}join(){const e=this.stackPos.pop();if(e===void 0)throw new Error("invalid state, fork stack empty");const t=this.pos-e-qe,n=Tt(t);return n>qe&&(this.ensureCapacity(n-qe),this.buffer.copyWithin(e+n,e+qe,this.pos)),this.pos=e,this.uint32(t),this.pos+=t,this}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.ensureCapacity(e.length),this.buffer.set(e,this.pos),this.pos+=e.length,this}uint32(e){if(so(e),this.ensureCapacity(5),e<128)return this.buffer[this.pos++]=e,this;for(;e>127;)this.buffer[this.pos++]=e&127|128,e>>>=7;return this.buffer[this.pos++]=e,this}int32(e){if(Ht(e),e>=0)return this.uint32(e);this.ensureCapacity(10);for(let t=0;t<9;t++)this.buffer[this.pos++]=e&127|128,e>>=7;return this.buffer[this.pos++]=1,this}bool(e){return this.ensureCapacity(1),this.buffer[this.pos++]=e?1:0,this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){typeof e!="string"&&(e=String(e));const t=e.length;if(t<=Ua){this.ensureCapacity(t+1);const s=this.buffer;let l=this.pos;s[l++]=t;let c=0;for(;c<t;c++){const m=e.charCodeAt(c);if(m>127)break;s[l++]=m}if(c==t)return this.pos=l,this}this.ensureCapacity(t*3+5);const n=Tt(t),o=this.buffer,a=this.pos,{written:r}=this.encodeUtf8Into(e,o.subarray(a+n)),i=Tt(r);return i!=n&&o.copyWithin(a+i,a+n,a+n+r),this.uint32(r),this.pos+=r,this}float(e){return ls(e),this.ensureCapacity(4),this.view().setFloat32(this.pos,e,!0),this.pos+=4,this}double(e){return this.ensureCapacity(8),this.view().setFloat64(this.pos,e,!0),this.pos+=8,this}fixed32(e){return so(e),this.ensureCapacity(4),this.view().setUint32(this.pos,e,!0),this.pos+=4,this}sfixed32(e){return Ht(e),this.ensureCapacity(4),this.view().setInt32(this.pos,e,!0),this.pos+=4,this}sint32(e){return Ht(e),this.uint32((e<<1^e>>31)>>>0)}sfixed64(e){const t=z.enc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}fixed64(e){const t=z.uEnc(e);this.ensureCapacity(8);const n=this.view();return n.setInt32(this.pos,t.lo,!0),n.setInt32(this.pos+4,t.hi,!0),this.pos+=8,this}int64(e){const t=z.enc(e);return this.writeVarint64(t.lo,t.hi)}sint64(e){const t=z.enc(e),n=t.hi>>31,o=t.lo<<1^n,a=(t.hi<<1|t.lo>>>31)^n;return this.writeVarint64(o,a)}uint64(e){const t=z.uEnc(e);return this.writeVarint64(t.lo,t.hi)}writeVarint64(e,t){this.ensureCapacity(10);const n=this.buffer;let o=this.pos;for(let i=0;i<28;i=i+7){const s=e>>>i,l=!(!(s>>>7)&&t==0);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}const a=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n[o++]=(r?a|128:a)&255,!r)return this.pos=o,this;for(let i=3;i<31;i=i+7){const s=t>>>i,l=!!(s>>>7);if(n[o++]=(l?s|128:s)&255,!l)return this.pos=o,this}return n[o++]=t>>>31&1,this.pos=o,this}},is=128,qe=1,wa=new Uint8Array(0),ss=new DataView(wa.buffer),Ua=32;function Tt(e){return e<128?1:e<16384?2:e<2097152?3:e<268435456?4:5}var rt=class{constructor(e,t=Vn().decodeUtf8){this.decodeUtf8=t,this.varint64Lo=0,this.varint64Hi=0,this.varint64=wi,this.uint32=Ki,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){const e=this.pos,t=this.uint32(),n=this.pos-e;if(n>5||n==5&&this.buf[this.pos-1]>15)throw new Error("illegal tag: varint overflows uint32");const o=t>>>3,a=t&7;if(o<=0||a>5)throw new Error("illegal tag: field no "+o+" wire type "+a);return[o,a]}skip(e,t,n=100){let o=this.pos;switch(e){case Q.Varint:for(;this.buf[this.pos++]&128;);break;case Q.Bit64:this.pos+=4;case Q.Bit32:this.pos+=4;break;case Q.LengthDelimited:let a=this.uint32();this.pos+=a;break;case Q.StartGroup:if(n<=0)throw new Error("maximum recursion depth reached");for(;;){const[r,i]=this.tag();if(i===Q.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(i,r,n-1)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return this.varint64(),z.dec(this.varint64Lo,this.varint64Hi)}uint64(){return this.varint64(),z.uDec(this.varint64Lo,this.varint64Hi)}sint64(){this.varint64();let e=this.varint64Lo,t=this.varint64Hi,n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,z.dec(e,t)}bool(){const e=this.buf[this.pos];return e<128?(this.pos++,e!==0):(this.varint64(),this.varint64Lo!==0||this.varint64Hi!==0)}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return z.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(e){const t=this.bytes(),n=t.length;if(n<=Ua){const o=new Array(n);for(let a=0;a<n;a++){const r=t[a];if(r>127)return this.decodeUtf8(t,e);o[a]=r}return String.fromCharCode.apply(String,o)}return this.decodeUtf8(t,e)}};function Ht(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int32: "+e)}function so(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint32: "+e)}function ls(e){if(typeof e=="string"){const t=e;if(e=Number(e),Number.isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(!Number.isFinite(Math.fround(e))&&Number.isFinite(e))throw new Error("invalid float32: "+e)}function Ja(e,t){const n=e.fieldKind=="list"?En(t,e):e.fieldKind=="map"?Nn(t,e):Wn(e,t);if(n===!0)return;let o;switch(e.fieldKind){case"list":o=`expected ${Ka(e)}, got ${D(t)}`;break;case"map":o=`expected ${xa(e)}, got ${D(t)}`;break;default:o=ce(e,t,n)}return new L(e,o)}function lo(e,t,n){const o=Wn(e,n);if(o!==!0)return new L(e,`list item #${t+1}: ${ce(e,n,o)}`)}function cs(e,t,n){const o=ye(e.mapKey)(t);if(o!==!0)return new L(e,`invalid map key: ${ce({scalar:e.mapKey},t,o)}`);const a=Wn(e,n);if(a!==!0)return new L(e,`map entry ${D(t)}: ${ce(e,n,a)}`)}function Wn(e,t){return e.scalar!==void 0?ye(e.scalar)(t):e.enum!==void 0?e.enum.open?ye(h.INT32)(t):e.enum.values.some(n=>n.number===t):Gn(t,e.message)}function ye(e){switch(e){case h.DOUBLE:return t=>typeof t=="number";case h.FLOAT:return t=>typeof t!="number"?!1:!Number.isFinite(Math.fround(t))&&Number.isFinite(t)?`${t.toFixed()} out of range`:!0;case h.INT32:case h.SFIXED32:case h.SINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>2147483647||t<-2147483648?`${t.toFixed()} out of range`:!0;case h.FIXED32:case h.UINT32:return t=>typeof t!="number"||!Number.isInteger(t)?!1:t>4294967295||t<0?`${t.toFixed()} out of range`:!0;case h.BOOL:return t=>typeof t=="boolean";case h.STRING:return t=>typeof t!="string"?!1:Vn().checkUtf8(t)||"invalid UTF8";case h.BYTES:return t=>t instanceof Uint8Array;case h.INT64:case h.SFIXED64:case h.SINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.parse(t),!0}catch{return`${t} out of range`}return!1};case h.FIXED64:case h.UINT64:return t=>{if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return z.uParse(t),!0}catch{return`${t} out of range`}return!1}}}function ce(e,t,n){return n=typeof n=="string"?`: ${n}`:`, got ${D(t)}`,e.scalar!==void 0?`expected ${us(e.scalar)}`+n:e.enum!==void 0?`expected ${e.enum.toString()}`+n:`expected ${ka(e.message)}`+n}function D(e){switch(typeof e){case"object":return e===null?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:En(e)?Ka(e.field()):Nn(e)?xa(e.field()):Gn(e)?ka(e.desc):fn(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":return String(e);case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function ka(e){return`ReflectMessage (${e.typeName})`}function Ka(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${h[e.scalar]})`}}function xa(e){switch(e.mapKind){case"message":return`ReflectMap (${h[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${h[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${h[e.mapKey]}, ${h[e.scalar]})`}}function us(e){switch(e){case h.STRING:return"string";case h.BOOL:return"boolean";case h.INT64:case h.SINT64:case h.SFIXED64:return"bigint (int64)";case h.UINT64:case h.FIXED64:return"bigint (uint64)";case h.BYTES:return"Uint8Array";case h.DOUBLE:return"number (float64)";case h.FLOAT:return"number (float32)";case h.FIXED32:case h.UINT32:return"number (uint32)";case h.INT32:case h.SFIXED32:case h.SINT32:return"number (int32)"}}var ds=0;function ge(e){if(ms(e))return{toMessage:n=>Sn(n),toLocal:n=>vn(n)};if(e.fieldKind=="message"&&!e.oneof&&Ke(e.message)){const n=e.message,o=n.fields[0].localName;return{toMessage:a=>{const r=oe(n);return a!==void 0&&(r[o]=a),r},toLocal:a=>a[o]}}const t=e.message;return{toMessage:n=>n===void 0?oe(t):n,toLocal:n=>n}}function ms(e){return e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"}function Sn(e){const t={$typeName:"google.protobuf.Struct",fields:{}};if(Ie(e))for(const n of Object.keys(e))ue(t.fields,n,La(e[n]));return t}function vn(e){const t={};for(const n of Object.keys(e.fields))ue(t,n,za(e.fields[n]));return t}function za(e){switch(e.kind.case){case"structValue":return vn(e.kind.value);case"listValue":return e.kind.value.values.map(za);case"nullValue":case void 0:return null;default:return e.kind.value}}function La(e){const t={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:ds};else if(Array.isArray(e)){const n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(e))for(const o of e)n.values.push(La(o));t.kind={case:"listValue",value:n}}else t.kind={case:"structValue",value:Sn(e)};break}return t}function hs(e,t,n=!0){return new ja(e,t,n)}var co=new WeakMap,ja=class{get sortedFields(){const e=co.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((n,o)=>n.number-o.number);return co.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[ie]=t??oe(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(t=>[t.number,t]))),this._fieldsByNumber.get(e)}oneofCase(e){return et(this.message,e),Li(this.message,e)}isSet(e){return et(this.message,e),ji(this.message,e)}clear(e){et(this.message,e),Mi(this.message,e)}get(e){et(this.message,e);const t=Ti(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return(!n||n[ie]!==t)&&this.lists.set(e,n=new bs(e,t,this.check)),n;case"map":let o=this.maps.get(e);return(!o||o[ie]!==t)&&this.maps.set(e,o=new gs(e,t,this.check)),o;case"message":return Yn(e,t,this.check);case"scalar":return t===void 0?fe(e.scalar,!1):In(e,t);case"enum":return t??e.enum.values[0].number}}set(e,t){if(et(this.message,e),this.check){const o=Ja(e,t);if(o)throw o}let n;e.fieldKind=="message"?n=Xn(e,t):Nn(t)||En(t)?n=t[ie]:n=yn(e,t),Hi(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function et(e,t){if(t.parent.typeName!==e.$typeName)throw new L(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}var bs=class{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[ie]=t,this.check=n}get(e){const t=this._arr[e];return t===void 0?void 0:Qt(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new L(this._field,`list item #${e+1}: out of range`);if(this.check){const n=lo(this._field,e,t);if(n)throw n}this._arr[e]=uo(this._field,t)}add(e){if(this.check){const t=lo(this._field,this._arr.length,e);if(t)throw t}this._arr.push(uo(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield Qt(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,Qt(this._field,this._arr[e],this.check)]}},gs=class{constructor(e,t,n=!0){this.obj=this[ie]=t??{},this.check=n,this._field=e}field(){return this._field}set(e,t){if(this.check){const n=cs(this._field,e,t);if(n)throw n}return ue(this.obj,gt(e),ps(this._field,t)),this}delete(e){const t=gt(e),n=Object.prototype.hasOwnProperty.call(this.obj,t);return n&&delete this.obj[t],n}clear(){for(const e of Object.keys(this.obj))delete this.obj[e]}get(e){let t=Qi(this.obj,gt(e));return t!==void 0&&(t=Mt(this._field,t,this.check)),t}has(e){return Object.prototype.hasOwnProperty.call(this.obj,gt(e))}*keys(){for(const e of Object.keys(this.obj))yield mo(e,this._field.mapKey)}*entries(){for(const e of Object.entries(this.obj))yield[mo(e[0],this._field.mapKey),Mt(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const e of Object.values(this.obj))yield Mt(this._field,e,this.check)}forEach(e,t){for(const n of this.entries())e.call(t,n[1],n[0],this)}};function Xn(e,t){return Gn(t)?Oi(t.message)&&!e.oneof&&e.fieldKind=="message"?t.message.value:t.desc.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"?vn(t.message):t.message:t}function Yn(e,t,n){return t!==void 0&&(Ke(e.message)&&!e.oneof&&e.fieldKind=="message"?t={$typeName:e.message.typeName,value:In(e.message.fields[0],t)}:e.message.typeName=="google.protobuf.Struct"&&e.parent.typeName!="google.protobuf.Value"&&Ie(t)&&(t=Sn(t))),new ja(e.message,t,n)}function uo(e,t){return e.listKind=="message"?Xn(e,t):yn(e,t)}function Qt(e,t,n){return e.listKind=="message"?Yn(e,t,n):In(e,t)}function ps(e,t){return e.mapKind=="message"?Xn(e,t):yn(e,t)}function Mt(e,t,n){return e.mapKind=="message"?Yn(e,t,n):t}function gt(e){return typeof e=="string"||typeof e=="number"?e:String(e)}function mo(e,t){switch(t){case h.STRING:return e;case h.INT32:case h.FIXED32:case h.UINT32:case h.SFIXED32:case h.SINT32:{const n=Number.parseInt(e);if(Number.isFinite(n))return n;break}case h.BOOL:switch(e){case"true":return!0;case"false":return!1}break;case h.UINT64:case h.FIXED64:try{return z.uParse(e)}catch{}break;default:try{return z.parse(e)}catch{}break}return e}function In(e,t){switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.parse(t));break;case h.FIXED64:case h.UINT64:"longAsString"in e&&e.longAsString&&typeof t=="string"&&(t=z.uParse(t));break}return t}function yn(e,t){switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.parse(t));break;case h.FIXED64:case h.UINT64:"longAsString"in e&&e.longAsString?t=String(t):(typeof t=="string"||typeof t=="number")&&(t=z.uParse(t));break}return t}var ho=Uint8Array.prototype.setFromBase64;function Cn(e){const t=e.length;let n=t-(t+3>>2);(t&3)==0&&e[t-1]=="="&&(n-=e[t-2]=="="?2:1);const o=new Uint8Array(n);let a=-1;if(ho)try{const r=ho.call(o,e);r.read==t&&(a=r.written)}catch{}return a<0&&(a=As(o,e)),a==n?o:o.subarray(0,a)}function As(e,t){const n=Rs();let o=0,a=0,r,i=0;for(let s=0;s<t.length;s++){if(r=n[t.charCodeAt(s)],r===void 0)switch(t[s]){case"=":a=0;case`
|
|
28
|
+
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(a){case 0:i=r,a=1;break;case 1:e[o++]=i<<2|(r&48)>>4,i=r,a=2;break;case 2:e[o++]=(i&15)<<4|(r&60)>>2,i=r,a=3;break;case 3:e[o++]=(i&3)<<6|r,a=0;break}}if(a==1)throw Error("invalid base64 string");return o}var bo=Uint8Array.prototype.toBase64,Zs={std:{alphabet:"base64",omitPadding:!1},std_raw:{alphabet:"base64",omitPadding:!0},url:{alphabet:"base64url",omitPadding:!0}};function fs(e,t="std"){if(bo)return bo.call(e,Zs[t]);const n=Ta(t),o=t=="std";let a="",r=0,i,s=0;for(let l=0;l<e.length;l++)switch(i=e[l],r){case 0:a+=n[i>>2],s=(i&3)<<4,r=1;break;case 1:a+=n[s|i>>4],s=(i&15)<<2,r=2;break;case 2:a+=n[s|i>>6],a+=n[i&63],r=0;break}return r&&(a+=n[s],o&&(a+="=",r==1&&(a+="="))),a}var pt,go,Le;function Ta(e){return pt||(pt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),go=pt.slice(0,-2).concat("-","_")),e=="url"?go:pt}function Rs(){if(!Le){Le=[];const e=Ta("std");for(let t=0;t<e.length;t++)Le[e[t].charCodeAt(0)]=t;Le[45]=e.indexOf("+"),Le[95]=e.indexOf("/")}return Le}function Oe(e){let t=!1;const n=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);switch(a){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(a),t=!1;break;default:t&&(t=!1,a=a.toUpperCase()),n.push(a);break}}return n.join("")}function Ha(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var Es=new Set(["constructor","toString","toJSON","valueOf"]);function it(e){return Es.has(e)?e+"$":e}function Bn(e){for(const t of e.field)at(t,"jsonName")||(t.jsonName=Oe(t.name));e.nestedType.forEach(Bn)}function Ns(e,t){const n=e.values.find(o=>o.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}function Gs(e,t){switch(e){case h.STRING:return t;case h.BYTES:{const n=Vs(t);if(n===!1)throw new Error(`cannot parse ${h[e]} default value: ${t}`);return n}case h.INT64:case h.SFIXED64:case h.SINT64:return z.parse(t);case h.UINT64:case h.FIXED64:return z.uParse(t);case h.DOUBLE:case h.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return NaN;default:return parseFloat(t)}case h.BOOL:return t==="true";case h.INT32:case h.UINT32:case h.SINT32:case h.FIXED32:case h.SFIXED32:return parseInt(t,10)}}function Vs(e){const t=[],n={tail:e,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){const a=this.tail.substring(0,o);return this.tail=this.tail.substring(o),a}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,8);if(Number.isNaN(r))return!1;t.push(r);break}case"x":{const o=n.c,a=n.take(2);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;t.push(r);break}case"u":{const o=n.c,a=n.take(4);if(a===!1)return!1;const r=parseInt(o+a,16);if(Number.isNaN(r))return!1;const i=new Uint8Array(4);new DataView(i.buffer).setInt32(0,r,!0),t.push(i[0],i[1],i[2],i[3]);break}case"U":{const o=n.c,a=n.take(8);if(a===!1)return!1;const r=z.uEnc(o+a),i=new Uint8Array(8),s=new DataView(i.buffer);s.setInt32(0,r.lo,!0),s.setInt32(4,r.hi,!0),t.push(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);break}}break;default:t.push(n.c.charCodeAt(0))}return new Uint8Array(t)}function*sn(e){switch(e.kind){case"file":for(const t of e.messages)yield t,yield*sn(t);yield*e.enums,yield*e.services,yield*e.extensions;break;case"message":for(const t of e.nestedMessages)yield t,yield*sn(t);yield*e.nestedEnums,yield*e.nestedExtensions;break}}function Qa(...e){const t=Ws();if(!e.length)return t;if("$typeName"in e[0]&&e[0].$typeName=="google.protobuf.FileDescriptorSet"){for(const o of e[0].file)fo(o,t);return t}if("$typeName"in e[0]){let i=function(s){const l=[];for(const c of s.dependency){if(t.getFile(c)!=null||r.has(c))continue;const m=a(c);if(!m)throw new Error(`Unable to resolve ${c}, imported by ${s.name}`);"kind"in m?t.addFile(m,!1,!0):(r.add(m.name),l.push(m))}return l.concat(...l.map(i))};var n=i;const o=e[0],a=e[1],r=new Set;for(const s of[o,...i(o)].reverse())fo(s,t)}else for(const o of e)for(const a of o.files)t.addFile(a);return t}function Ws(){const e=new Map,t=new Map,n=new Map;return{kind:"registry",types:e,extendees:t,[Symbol.iterator](){return e.values()},get files(){return n.values()},addFile(o,a,r){if(n.set(o.proto.name,o),!a)for(const i of sn(o))this.add(i);if(r)for(const i of o.dependencies)this.addFile(i,a,r)},add(o){if(o.kind=="extension"){let a=t.get(o.extendee.typeName);a||t.set(o.extendee.typeName,a=new Map),a.set(o.number,o)}e.set(o.typeName,o)},get(o){return e.get(o)},getFile(o){return n.get(o)},getMessage(o){const a=e.get(o);return a?.kind=="message"?a:void 0},getEnum(o){const a=e.get(o);return a?.kind=="enum"?a:void 0},getExtension(o){const a=e.get(o);return a?.kind=="extension"?a:void 0},getExtensionFor(o,a){var r;return(r=t.get(o.typeName))===null||r===void 0?void 0:r.get(a)},getService(o){const a=e.get(o);return a?.kind=="service"?a:void 0}}}var Ss=998,vs=999,Xs=9999,Ys=9,st=10,ot=11,Is=12,po=14,Fn=3,ys=2,Ao=1,Cs=0,Ot=1,Zo=2,Bs=3,Fs=1,ws=2,Us=1,Js=2,ks=1002,Ma={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1,enforceProtoLimits:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2,enforceProtoLimits:1},1002:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:3,defaultSymbolVisibility:4,enforceProtoLimits:2}};function fo(e,t){var n,o;const a={kind:"file",proto:e,deprecated:(o=(n=e.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:Ls(e),name:e.name.replace(/\.proto$/,""),dependencies:js(e,t),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${e.name}`}},r=new Map,i={get(s){return r.get(s)},add(s){var l;se(((l=s.proto.options)===null||l===void 0?void 0:l.mapEntry)===!0),r.set(s.typeName,s)}};for(const s of e.enumType)Oa(s,a,void 0,t);for(const s of e.messageType)Da(s,a,void 0,t,i);for(const s of e.service)Ks(s,a,t);ln(a,t);for(const s of r.values())cn(s,t,i);for(const s of a.messages)cn(s,t,i),ln(s,t);t.addFile(a,!0)}function ln(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const o=un(n,e,t);e.extensions.push(o),t.add(o)}break;case"message":for(const n of e.proto.extension){const o=un(n,e,t);e.nestedExtensions.push(o),t.add(o)}for(const n of e.nestedMessages)ln(n,t);break}}function cn(e,t,n){const o=e.proto.oneofDecl.map(r=>zs(r,e)),a=new Set;for(const r of e.proto.field){const i=Ms(r,o),s=un(r,e,t,i,n);e.fields.push(s),e.field[s.localName]=s,i===void 0?e.members.push(s):(i.fields.push(s),a.has(i)||(a.add(i),e.members.push(i)))}for(const r of o.filter(i=>a.has(i)))e.oneofs.push(r);for(const r of e.nestedMessages)cn(r,t,n)}function Oa(e,t,n,o){var a,r,i,s,l,c;const m=Ts(e.name,e.value),p={kind:"enum",proto:e,deprecated:(r=(a=e.options)===null||a===void 0?void 0:a.deprecated)!==null&&r!==void 0?r:!1,file:t,parent:n,open:!0,name:e.name,typeName:Ft(e,n,t),value:{},values:[],sharedPrefix:m,toString(){return`enum ${this.typeName}`}};p.open=Ps(p),o.add(p);for(const f of e.value){const Z=f.name;p.values.push(p.value[f.number]={kind:"enum_value",proto:f,deprecated:(s=(i=f.options)===null||i===void 0?void 0:i.deprecated)!==null&&s!==void 0?s:!1,parent:p,name:Z,localName:it(m==null?Z:Z.substring(m.length)),number:f.number,jsonName:(l=Hs(f))!==null&&l!==void 0?l:Z,toString(){return`enum value ${p.typeName}.${Z}`}})}((c=n?.nestedEnums)!==null&&c!==void 0?c:t.enums).push(p)}function Da(e,t,n,o,a){var r,i,s,l;const c={kind:"message",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:t,parent:n,name:e.name,typeName:Ft(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((s=e.options)===null||s===void 0?void 0:s.mapEntry)===!0?a.add(c):(((l=n?.nestedMessages)!==null&&l!==void 0?l:t.messages).push(c),o.add(c));for(const m of e.enumType)Oa(m,t,c,o);for(const m of e.nestedType)Da(m,t,c,o,a)}function Ks(e,t,n){var o,a;const r={kind:"service",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,file:t,name:e.name,typeName:Ft(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(r),n.add(r);for(const i of e.method){const s=xs(i,r,n);r.methods.push(s),r.method[s.localName]=s}}function xs(e,t,n){var o,a,r,i;let s;e.clientStreaming&&e.serverStreaming?s="bidi_streaming":e.clientStreaming?s="client_streaming":e.serverStreaming?s="server_streaming":s="unary";const l=n.getMessage(Ae(e.inputType)),c=n.getMessage(Ae(e.outputType));se(l,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),se(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const m=e.name;return{kind:"rpc",proto:e,deprecated:(a=(o=e.options)===null||o===void 0?void 0:o.deprecated)!==null&&a!==void 0?a:!1,parent:t,name:m,localName:it(m.length?it(m[0].toLowerCase()+m.substring(1)):m),methodKind:s,input:l,output:c,idempotency:(i=(r=e.options)===null||r===void 0?void 0:r.idempotencyLevel)!==null&&i!==void 0?i:Cs,toString(){return`rpc ${t.typeName}.${m}`}}}function zs(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:it(Oe(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}function un(e,t,n,o,a){var r,i,s;const l=a===void 0,c={kind:"field",proto:e,deprecated:(i=(r=e.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:Os(e,o,l,t),utf8Validation:$s(e,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};let m;if(l){const N=t.kind=="file"?t:t.file,V=t.kind=="file"?void 0:t,C=Ft(e,V,N);c.kind="extension",c.file=N,c.parent=V,c.oneof=void 0,c.typeName=C,c.jsonName=`[${C}]`,m=()=>`extension ${C}`;const J=n.getMessage(Ae(e.extendee));se(J,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=J}else{const N=t;se(N.kind=="message"),c.parent=N,c.oneof=o,c.localName=o?Oe(e.name):it(Oe(e.name)),c.jsonName=e.jsonName,m=()=>`field ${N.typeName}.${e.name}`}Object.defineProperty(c,"toString",{value:m,writable:!0,enumerable:!0,configurable:!0});const p=e.label,f=e.type,Z=(s=e.options)===null||s===void 0?void 0:s.jstype;if(p===Fn){const N=f==ot?a?.get(Ae(e.typeName)):void 0;if(N){c.fieldKind="map";const{key:V,value:C}=_s(N);return c.mapKey=V.scalar,c.mapKind=C.fieldKind,c.message=C.message,c.delimitedEncoding=!1,c.enum=C.enum,c.scalar=C.scalar,c}switch(c.fieldKind="list",f){case ot:case st:c.listKind="message",c.message=n.getMessage(Ae(e.typeName)),se(c.message),c.delimitedEncoding=Ro(e,t);break;case po:c.listKind="enum",c.enum=n.getEnum(Ae(e.typeName)),se(c.enum);break;default:c.listKind="scalar",c.scalar=f,c.longAsString=Z==Ao;break}return c.packed=Ds(e,t),c}switch(f){case ot:case st:c.fieldKind="message",c.message=n.getMessage(Ae(e.typeName)),se(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=Ro(e,t),c.getDefaultValue=()=>{};break;case po:{const N=n.getEnum(Ae(e.typeName));se(N!==void 0,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Ae(e.typeName)),c.getDefaultValue=()=>at(e,"defaultValue")?Ns(N,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=f,c.longAsString=Z==Ao,c.getDefaultValue=()=>at(e,"defaultValue")?Gs(f,e.defaultValue):void 0;break}return c}function Ls(e){switch(e.syntax){case"":case"proto2":return Ss;case"proto3":return vs;case"editions":if(e.edition===Xs)return ks;if(e.edition in Ma)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function js(e,t){return e.dependency.map(n=>{const o=t.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return o})}function Ts(e,t){const n=Qs(e)+"_";for(const o of t){if(!o.name.toLowerCase().startsWith(n))return;const a=o.name.substring(n.length);if(a.length==0||/^\d/.test(a))return}return n}function Hs(e){var t,n;let r;for(const i of(n=(t=e.options)===null||t===void 0?void 0:t.$unknown)!==null&&n!==void 0?n:[]){if(i.no!==998||i.wireType!==Q.LengthDelimited)continue;const s=new rt(new rt(i.data).bytes());for(;s.pos<s.len;){const[l,c]=s.tag();l===1&&c===Q.LengthDelimited?r=s.string():s.skip(c,l)}}return r}function Qs(e){return(e.substring(0,1)+e.substring(1).replace(/[A-Z]/g,t=>"_"+t)).toLowerCase()}function Ft(e,t,n){let o;return t?o=`${t.typeName}.${e.name}`:n.proto.package.length>0?o=`${n.proto.package}.${e.name}`:o=`${e.name}`,o}function Ae(e){return e.startsWith(".")?e.substring(1):e}function Ms(e,t){if(!at(e,"oneofIndex")||e.proto3Optional)return;const n=t[e.oneofIndex];return se(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function Os(e,t,n,o){if(e.label==ys)return Bs;if(e.label==Fn)return Zo;if(t||e.proto3Optional||n)return Ot;const a=Ue("fieldPresence",{proto:e,parent:o});return a==Zo&&(e.type==ot||e.type==st)?Ot:a}function Ds(e,t){if(e.label!=Fn)return!1;switch(e.type){case Ys:case Is:case st:case ot:return!1}const n=e.options;return n&&at(n,"packed")?n.packed:Fs==Ue("repeatedFieldEncoding",{proto:e,parent:t})}function _s(e){const t=e.fields.find(o=>o.number===1),n=e.fields.find(o=>o.number===2);return se(t&&t.fieldKind=="scalar"&&t.scalar!=h.BYTES&&t.scalar!=h.FLOAT&&t.scalar!=h.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:t,value:n}}function Ps(e){var t;return Us==Ue("enumType",{proto:e.proto,parent:(t=e.parent)!==null&&t!==void 0?t:e.file})}function Ro(e,t){return e.type==st?!0:ws==Ue("messageEncoding",{proto:e,parent:t})}function $s(e,t){return Js==Ue("utf8Validation",{proto:e,parent:t})}function Ue(e,t){var n,o;const a=(n=t.proto.options)===null||n===void 0?void 0:n.features;if(a){const r=a[e];if(r!=0)return r}if("kind"in t){if(t.kind=="message")return Ue(e,(o=t.parent)!==null&&o!==void 0?o:t.file);const r=Ma[t.edition];if(!r)throw new Error(`feature default for edition ${t.edition} not found`);return r[e]}return Ue(e,t.parent)}function se(e,t){if(!e)throw new Error(t)}function qs(e){const t=el(e);return t.messageType.forEach(Bn),Qa(t,()=>{}).getFile(t.name)}function el(e){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(_a),enumType:e.enumType.map(Pa)}))}function _a(e){var t,n,o,a,r,i,s,l;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:(n=(t=e.field)===null||t===void 0?void 0:t.map(tl))!==null&&n!==void 0?n:[],extension:[],nestedType:(a=(o=e.nestedType)===null||o===void 0?void 0:o.map(_a))!==null&&a!==void 0?a:[],enumType:(i=(r=e.enumType)===null||r===void 0?void 0:r.map(Pa))!==null&&i!==void 0?i:[],extensionRange:(l=(s=e.extensionRange)===null||s===void 0?void 0:s.map(c=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},c)))!==null&&l!==void 0?l:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function tl(e){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?nl(e.options):void 0}))}function nl(e){var t,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:(t=e.targets)!==null&&t!==void 0?t:[],editionDefaults:(o=(n=e.editionDefaults)===null||n===void 0?void 0:n.map(a=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},a)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function Pa(e){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(t=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},t))})}function G(e,t,...n){return n.reduce((o,a)=>o.nestedMessages[a],e.messages[t])}var ol=qs({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false",options:{}},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true",options:{}},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"removal_error",number:5,type:9,label:1}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:990,end:999},{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001},{value:"STYLE2026",edition:1002}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001},{value:"STRICT",edition:1002}]}},{name:"enforce_proto_limits",number:9,type:14,label:1,typeName:".google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits",options:{retention:2,targets:[6,3,4,5],editionDefaults:[{value:"LEGACY_NO_EXPLICIT_LIMITS",edition:900},{value:"PROTO_LIMITS2026",edition:1002}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]},{name:"ProtoLimitsFeature",enumType:[{name:"EnforceProtoLimits",value:[{name:"PROTO_LIMITS_UNKNOWN",number:0},{name:"LEGACY_NO_EXPLICIT_LIMITS",number:1},{name:"PROTO_LIMITS2026",number:2}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2},{name:"STYLE2026",number:3}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_2026",number:1002},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),al=G(ol,1),Eo;(function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"})(Eo||(Eo={}));var No;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(No||(No={}));var Go;(function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"})(Go||(Go={}));var Vo;(function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"})(Vo||(Vo={}));var Wo;(function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"})(Wo||(Wo={}));var So;(function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"})(So||(So={}));var vo;(function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(vo||(vo={}));var Xo;(function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Xo||(Xo={}));var Yo;(function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"})(Yo||(Yo={}));var Io;(function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"})(Io||(Io={}));var yo;(function(e){e[e.PROTO_LIMITS_UNKNOWN=0]="PROTO_LIMITS_UNKNOWN",e[e.LEGACY_NO_EXPLICIT_LIMITS=1]="LEGACY_NO_EXPLICIT_LIMITS",e[e.PROTO_LIMITS2026=2]="PROTO_LIMITS2026"})(yo||(yo={}));var Co;(function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Co||(Co={}));var Bo;(function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"})(Bo||(Bo={}));var Fo;(function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"})(Fo||(Fo={}));var wo;(function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"})(wo||(wo={}));var Uo;(function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"})(Uo||(Uo={}));var Jo;(function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(Jo||(Jo={}));var ko;(function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY",e[e.STYLE2026=3]="STYLE2026"})(ko||(ko={}));var Ko;(function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"})(Ko||(Ko={}));var xo;(function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_2026=1002]="EDITION_2026",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"})(xo||(xo={}));var zo;(function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(zo||(zo={}));function $a(e){return Object.assign(Object.assign({readUnknownFields:!0,recursionLimit:100},e),{depth:0})}function dt(e,t,n){const o=oe(e);return wn(e).read(o,new rt(t),$a(n),t.byteLength),o}var qa=new WeakMap;function wn(e){let t=qa.get(e);return t===void 0&&(t=rl(e)),t}function rl(e){const t=String(e),n=new Map,o={read:il(t,n),readGroup:sl(t,n)};qa.set(e,o);for(const a of e.fields)n.set(a.number,er(a));return o}function il(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);const s=o.pos+r,l=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<s;){const[c,m]=o.tag(),p=t.get(c);if(p===void 0){const f=o.skip(m,c,a.recursionLimit-a.depth);a.readUnknownFields&&l.push({no:c,wireType:m,data:f});continue}p(n,o,a,m)}l.length>0&&(n.$unknown=l),a.depth--}}function sl(e,t){return(n,o,a,r)=>{var i;if(++a.depth>a.recursionLimit)throw new Error(`cannot decode ${e} from binary: maximum recursion depth of ${a.recursionLimit} reached`);let s,l;const c=(i=n.$unknown)!==null&&i!==void 0?i:[];for(;o.pos<o.len&&([s,l]=o.tag(),l!=Q.EndGroup);){const m=t.get(s);if(m===void 0){const p=o.skip(l,s,a.recursionLimit-a.depth);a.readUnknownFields&&c.push({no:s,wireType:l,data:p});continue}m(n,o,a,l)}if(l!=Q.EndGroup||s!==r)throw new Error("invalid end group tag");c.length>0&&(n.$unknown=c),a.depth--}}function ll(e,t,n,o,a){er(n)(e[ie],t,a,o)}function er(e){switch(e.fieldKind){case"scalar":return cl(e);case"enum":return ul(e);case"message":return dl(e);case"list":return ml(e);case"map":return hl(e)}}function cl(e){const t=vt(e.scalar,e.utf8Validation,e.longAsString),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r)=>{a[o]={case:n,value:t(r)}}}return(o,a)=>{o[n]=t(a)}}function ul(e){var t;const n=e.localName,o=(t=e.oneof)===null||t===void 0?void 0:t.localName;if(e.enum.open)return o!==void 0?(i,s)=>{i[o]={case:n,value:s.int32()}}:(i,s)=>{i[n]=s.int32()};const a=e.enum.values,r=e.number;return(i,s,l,c)=>{var m;const p=s.int32();if(a.some(f=>f.number===p))o!==void 0?i[o]={case:n,value:p}:i[n]=p;else if(l.readUnknownFields){const f=[];ki(p,f);const Z=(m=i.$unknown)!==null&&m!==void 0?m:[];Z.push({no:r,wireType:c,data:new Uint8Array(f)}),i.$unknown=Z}}}function dl(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=tr(e);if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=i[r],m=n(c.case===t?c.value:void 0);a(m,s,l),i[r]={case:t,value:o(m)}}}return(r,i,s)=>{const l=n(r[t]);a(l,i,s),r[t]=o(l)}}function tr(e){const t=wn(e.message);if(e.delimitedEncoding){const n=e.number;return(o,a,r)=>t.readGroup(o,a,r,n)}return(n,o,a)=>t.read(n,o,a,o.uint32())}function ml(e){const t=e.localName;if(e.listKind=="message"){const{toMessage:i,toLocal:s}=ge(e),l=tr(e);return(c,m,p)=>{const f=i(void 0);l(f,m,p),c[t].push(s(f))}}const n=e.listKind=="enum"?h.INT32:e.scalar,o=e.listKind=="scalar"?e.longAsString:!1,a=vt(n,e.utf8Validation,o),r=n!=h.STRING&&n!=h.BYTES;return(i,s,l,c)=>{const m=i[t];if(c==Q.LengthDelimited&&r){const p=s.uint32()+s.pos;for(;s.pos<p;)m.push(a(s))}else m.push(a(s))}}function hl(e){const t=e.localName,n=vt(e.mapKey,e.utf8Validation,!1),o=fe(e.mapKey,!1);let a,r;switch(e.mapKind){case"scalar":{const i=e.scalar,s=vt(i,e.utf8Validation,!1);if(a=l=>s(l),i==h.BYTES)r=()=>new Uint8Array(0);else{const l=fe(i,!1);r=()=>l}break}case"enum":{const i=e.enum.values[0].number;a=s=>s.int32(),r=()=>i;break}case"message":{const{toMessage:i,toLocal:s}=ge(e),l=wn(e.message).read;a=(c,m,p)=>{const f=i(p);return l(f,c,m,c.uint32()),s(f)},r=()=>s(i(void 0));break}}return(i,s,l)=>{const c=i[t];let m,p;const f=s.uint32(),Z=s.pos+f;for(;s.pos<Z;){const[N]=s.tag();switch(N){case 1:m=n(s);break;case 2:p=a(s,l,p);break}}m===void 0&&(m=o),p===void 0&&(p=r()),ue(c,m,p)}}function vt(e,t,n){switch(e){case h.STRING:return o=>o.string(t);case h.BOOL:return o=>o.bool();case h.DOUBLE:return o=>o.double();case h.FLOAT:return o=>o.float();case h.INT32:return o=>o.int32();case h.INT64:return n?o=>String(o.int64()):o=>o.int64();case h.UINT64:return n?o=>String(o.uint64()):o=>o.uint64();case h.FIXED64:return n?o=>String(o.fixed64()):o=>o.fixed64();case h.BYTES:return o=>o.bytes();case h.FIXED32:return o=>o.fixed32();case h.SFIXED32:return o=>o.sfixed32();case h.SFIXED64:return n?o=>String(o.sfixed64()):o=>o.sfixed64();case h.SINT64:return n?o=>String(o.sint64()):o=>o.sint64();case h.UINT32:return o=>o.uint32();case h.SINT32:return o=>o.sint32()}}function q(e,t){var n;const o=dt(al,Cn(e));return o.messageType.forEach(Bn),o.dependency=(n=t?.map(a=>a.proto.name))!==null&&n!==void 0?n:[],Qa(o,a=>t?.find(r=>r.proto.name===a)).getFile(o.name)}var Ee=q("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),nr=q("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),bl=G(nr,0),gl=2,pl=3,Lo={writeUnknownFields:!0};function Al(e){return e?Object.assign(Object.assign({},Lo),e):Lo}function or(e,t,n){const o=new Fa;return Un(e)(o,Al(n),t),o.finish()}var ar=new WeakMap;function Un(e){let t=ar.get(e);return t===void 0&&(t=Zl(e)),t}function Zl(e){const t=e.typeName,n=e.fields.concat().sort((i,s)=>i.number-s.number),o=n[0],a=[],r=(i,s,l)=>{if(l.$typeName!==t&&o!==void 0)throw new L(o,`cannot use ${o} with message ${l.$typeName}`,"ForeignFieldError");for(let m=0;m<a.length;m++)a[m](i,s,l);const c=l.$unknown;if(c!==void 0&&s.writeUnknownFields)for(let m=0;m<c.length;m++){const{no:p,wireType:f,data:Z}=c[m];i.tag(p,f).raw(Z)}};ar.set(e,r);for(const i of n)a.push(rr(i));return r}function rr(e){switch(e.fieldKind){case"message":case"scalar":case"enum":return fl(e);case"list":return El(e);case"map":return Nl(e)}}function fl(e){const t=Rl(e),n=e.localName;if(e.oneof){const o=e.oneof.localName;return(a,r,i)=>{const s=i[o];s.case===n&&t(a,r,s.value)}}if(e.presence!=gl){const o=e.presence==pl?`cannot encode ${e} to binary: required field not set`:void 0;return(a,r,i)=>{const s=i[n];if(s!==void 0&&Object.prototype.hasOwnProperty.call(i,n))t(a,r,s);else if(o!==void 0)throw new Error(o)}}if(e.fieldKind=="enum"){const o=e.enum.values[0].number;return(a,r,i)=>{const s=i[n];s!==o&&t(a,r,s)}}switch(e.scalar){case h.BOOL:return(o,a,r)=>{const i=r[n];i!==!1&&t(o,a,i)};case h.STRING:return(o,a,r)=>{const i=r[n];i!==""&&t(o,a,i)};case h.BYTES:return(o,a,r)=>{const i=r[n];(!(i instanceof Uint8Array)||i.byteLength>0)&&t(o,a,i)};case h.DOUBLE:case h.FLOAT:return(o,a,r)=>{const i=r[n];Object.is(i,0)||t(o,a,i)};default:return(o,a,r)=>{const i=r[n];i!=0&&t(o,a,i)}}}function Rl(e){switch(e.fieldKind){case"message":{const{toMessage:t}=ge(e),n=ir(e);return(o,a,r)=>{n(o,a,t(r))}}case"scalar":case"enum":{const t=e.fieldKind=="enum"?h.INT32:e.scalar,n=e.number,o=Ut(t),a=wt(t,e.parent.typeName,e.name);return(r,i,s)=>{r.tag(n,o),a(r,s)}}}}function El(e){const t=e.localName,n=e.number;switch(e.listKind){case"message":{const{toMessage:o}=ge(e),a=ir(e);return(r,i,s)=>{const l=s[t];for(let c=0;c<l.length;c++)a(r,i,o(l[c]))}}case"scalar":case"enum":{const o=e.listKind=="enum"?h.INT32:e.scalar,a=wt(o,e.parent.typeName,e.name);if(e.packed)return(i,s,l)=>{const c=l[t];if(c.length!=0){i.tag(n,Q.LengthDelimited).fork();for(let m=0;m<c.length;m++)a(i,c[m]);i.join()}};const r=Ut(o);return(i,s,l)=>{const c=l[t];for(let m=0;m<c.length;m++)i.tag(n,r),a(i,c[m])}}}}function Nl(e){const t=e.localName,n=e.number,o=Gl(e);if(e.mapKind=="message"){const{toMessage:s}=ge(e),l=Un(e.message);return(c,m,p)=>{const f=p[t],Z=Object.keys(f);for(let N=0;N<Z.length;N++){const V=Z[N];c.tag(n,Q.LengthDelimited).fork(),o(c,V),c.tag(2,Q.LengthDelimited).fork(),l(c,m,s(f[V])),c.join(),c.join()}}}const a=e.mapKind=="enum"?h.INT32:e.scalar,r=Ut(a),i=wt(a,e.parent.typeName,e.name);return(s,l,c)=>{const m=c[t],p=Object.keys(m);for(let f=0;f<p.length;f++){const Z=p[f];s.tag(n,Q.LengthDelimited).fork(),o(s,Z),s.tag(2,r),i(s,m[Z]),s.join()}}}function Gl(e){const t=Ut(e.mapKey),n=wt(e.mapKey,e.parent.typeName,e.name),o=Vl(e.mapKey);return(a,r)=>{a.tag(1,t),n(a,o(r))}}function Vl(e){switch(e){case h.STRING:return t=>t;case h.BOOL:return t=>t==="true"?!0:t==="false"?!1:t;case h.UINT64:case h.FIXED64:return t=>{try{return z.uParse(t)}catch{return t}};case h.INT64:case h.SFIXED64:case h.SINT64:return t=>{try{return z.parse(t)}catch{return t}};default:return t=>{const n=Number.parseInt(t);return Number.isFinite(n)?n:t}}}function wt(e,t,n){const o=Wl(e);return(a,r)=>{try{o(a,r)}catch(i){throw i instanceof Error?new Error(`cannot encode field ${t}.${n} to binary: ${i.message}`):i}}}function Wl(e){switch(e){case h.STRING:return(t,n)=>t.string(n);case h.BOOL:return(t,n)=>t.bool(n);case h.DOUBLE:return(t,n)=>t.double(n);case h.FLOAT:return(t,n)=>t.float(n);case h.INT32:return(t,n)=>t.int32(n);case h.INT64:return(t,n)=>t.int64(n);case h.UINT64:return(t,n)=>t.uint64(n);case h.FIXED64:return(t,n)=>t.fixed64(n);case h.BYTES:return(t,n)=>t.bytes(n);case h.FIXED32:return(t,n)=>t.fixed32(n);case h.SFIXED32:return(t,n)=>t.sfixed32(n);case h.SFIXED64:return(t,n)=>t.sfixed64(n);case h.SINT64:return(t,n)=>t.sint64(n);case h.UINT32:return(t,n)=>t.uint32(n);case h.SINT32:return(t,n)=>t.sint32(n)}}function Sl(e,t,n,o){rr(o)(e,t,n[ie])}function ir(e){const t=e.number,n=Un(e.message);return e.delimitedEncoding?(o,a,r)=>{o.tag(t,Q.StartGroup),n(o,a,r),o.tag(t,Q.EndGroup)}:(o,a,r)=>{o.tag(t,Q.LengthDelimited).fork(),n(o,a,r),o.join()}}function Ut(e){switch(e){case h.BYTES:case h.STRING:return Q.LengthDelimited;case h.DOUBLE:case h.FIXED64:case h.SFIXED64:return Q.Bit64;case h.FIXED32:case h.SFIXED32:case h.FLOAT:return Q.Bit32;default:return Q.Varint}}function vl(e,t,n){let o=!1;return n||(n=oe(bl),o=!0),n.value=or(e,t),n.typeUrl=Il(t.$typeName),o?n:void 0}function Xl(e,t){return e.typeUrl===""?!1:(typeof t=="string"?t:t.typeName)===sr(e.typeUrl)}function Yl(e,t){if(e.typeUrl==="")return;const n=t.kind=="message"?t:t.getMessage(sr(e.typeUrl));if(!(!n||!Xl(e,n)))return dt(n,e.value)}function Il(e){return`type.googleapis.com/${e}`}function sr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}var Ne=q("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),yl=G(Ne,0),lr=G(Ne,1),Cl=G(Ne,2),dn;(function(e){e[e.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cr=q("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM");function Bl(e,t,n){ur(t,e);const o=wl(e.$unknown,t),[a,r,i]=Jt(t),s=$a(n);for(const l of o)ll(a,new rt(l.data),r,l.wireType,s);return i()}function Fl(e,t,n){var o;ur(t,e);const a=((o=e.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==t.number),[r,i]=Jt(t,n),s=new Fa;Sl(s,{writeUnknownFields:!0},r,i);const l=new rt(s.finish());for(;l.pos<l.len;){const[c,m]=l.tag(),p=l.skip(m,c);a.push({no:c,wireType:m,data:p})}e.$unknown=a}function wl(e,t){if(e===void 0)return[];if(t.fieldKind==="enum"||t.fieldKind==="scalar"){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(n=>n.no===t.number)}function Jt(e,t){const n=e.typeName,o=Object.assign(Object.assign({},e),{kind:"field",parent:e.extendee,localName:n}),a=Object.assign(Object.assign({},e.extendee),{fields:[o],members:[o],oneofs:[]}),r=oe(a,t!==void 0?{[n]:t}:void 0);return[hs(a,r),o,()=>{const i=r[n];if(i===void 0){const s=e.message;return Ke(s)?fe(s.fields[0].scalar,s.fields[0].longAsString):oe(s)}return i}]}function ur(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}var dr=Date.parse("0001-01-01T00:00:00Z"),mr=Date.parse("9999-12-31T23:59:59Z");var Ul=3,Jl=2,jo={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function kl(e){return e?Object.assign(Object.assign({},jo),e):jo}function hr(e,t,n){return Xt(e)(kl(n),t)}function Kl(e,t,n){var o;const a=hr(e,t,n);return JSON.stringify(a,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}var mn=new WeakMap;function Xt(e){let t=mn.get(e);return t===void 0&&(t=xl(e)),t}function xl(e){const t=e.typeName,n=Ll(e);if(n!==void 0){const s=e.fields[0],l=(c,m)=>{if(m.$typeName!==t&&s!==void 0)throw new L(s,`cannot use ${s} with message ${m.$typeName}`,"ForeignFieldError");return n(c,m)};return mn.set(e,l),l}const o=e.fields.concat().sort((s,l)=>s.number-l.number),a=o[0],r=[],i=(s,l)=>{if(l.$typeName!==t&&a!==void 0)throw new L(a,`cannot use ${a} with message ${l.$typeName}`,"ForeignFieldError");const c={};for(let m=0;m<r.length;m++)r[m](s,l,c);return s.registry&&Ol(c,s,s.registry,l,e),c};mn.set(e,i);for(const s of o){const l=jl(s);r.push(s.jsonName==="__proto__"||s.name==="__proto__"?zl(l):l)}return i}function zl(e){return(t,n,o)=>{const a=Object.create(null);e(t,n,a);for(const r of Object.keys(a))ue(o,r,a[r])}}function Ll(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n)=>Dl(n,t);case"google.protobuf.Timestamp":return(t,n)=>$l(n);case"google.protobuf.Duration":return(t,n)=>_l(n);case"google.protobuf.FieldMask":return(t,n)=>Pl(n);case"google.protobuf.Struct":return(t,n)=>Ar(n);case"google.protobuf.Value":return(t,n)=>Kn(n);case"google.protobuf.ListValue":return(t,n)=>Zr(n);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=fe(t.scalar,!1),a=kt(t);return(r,i)=>{const s=i[n];return a(r,s===void 0?o:s)}}return}}function jl(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return Tl(e);case"list":case"map":{const t=e.fieldKind=="list"?gr(e):pr(e),n=e.name,o=e.jsonName,a=e.localName;return(r,i,s)=>{const l=t(r,i[a]);l!==void 0&&(s[r.useProtoFieldName?n:o]=l)}}}}function Tl(e){const t=br(e),n=e.name,o=e.jsonName,a=e.localName;if(e.oneof){const r=e.oneof.localName;return(i,s,l)=>{const c=s[r];c.case===a&&(l[i.useProtoFieldName?n:o]=t(i,c.value))}}if(e.presence!=Jl){const r=e.presence==Ul?`cannot encode ${e} to JSON: required field not set`:void 0;return(i,s,l)=>{const c=s[a];if(c!==void 0&&Object.prototype.hasOwnProperty.call(s,a))l[i.useProtoFieldName?n:o]=t(i,c);else if(r!==void 0)throw new Error(r)}}if(e.fieldKind=="enum"){const r=e.enum.values[0].number;return(i,s,l)=>{const c=s[a];(c!==r||i.alwaysEmitImplicit)&&(l[i.useProtoFieldName?n:o]=t(i,c))}}switch(e.scalar){case h.BOOL:return(r,i,s)=>{const l=i[a];(l!==!1||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.STRING:return(r,i,s)=>{const l=i[a];(l!==""||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.BYTES:return(r,i,s)=>{const l=i[a];(!(l instanceof Uint8Array)||l.byteLength>0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};case h.DOUBLE:case h.FLOAT:return(r,i,s)=>{const l=i[a];(!Object.is(l,0)||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))};default:return(r,i,s)=>{const l=i[a];(l!=0||r.alwaysEmitImplicit)&&(s[r.useProtoFieldName?n:o]=t(r,l))}}}function Hl(e){switch(e.fieldKind){case"scalar":case"enum":case"message":return br(e);case"list":return gr(e);case"map":return pr(e)}}function br(e){switch(e.fieldKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function Jn(e){const{toMessage:t}=ge(e),n=Xt(e.message);return(o,a)=>n(o,t(a))}function gr(e){const t=Ql(e);return(n,o)=>{const a=o;if(a.length==0&&!n.alwaysEmitImplicit)return;const r=[];for(let i=0;i<a.length;i++)r.push(t(n,a[i]));return r}}function Ql(e){switch(e.listKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function pr(e){const t=Ml(e);return(n,o)=>{const a=o,r=Object.keys(a);if(r.length==0&&!n.alwaysEmitImplicit)return;const i={};for(let s=0;s<r.length;s++){const l=r[s];ue(i,l,t(n,a[l]))}return i}}function Ml(e){switch(e.mapKind){case"scalar":return kt(e);case"enum":return kn(e);case"message":return Jn(e)}}function kn(e){const t=e.enum;return t.typeName=="google.protobuf.NullValue"?(n,o)=>{if(typeof o!="number")throw To(t,o);return null}:(n,o)=>{var a,r;if(typeof o!="number")throw To(t,o);return n.enumAsInteger?o:(r=(a=t.value[o])===null||a===void 0?void 0:a.jsonName)!==null&&r!==void 0?r:o}}function To(e,t){return new Error(`cannot encode ${e} to JSON: expected number, got ${D(t)}`)}function kt(e){switch(e.scalar){case h.INT32:case h.SFIXED32:case h.SINT32:case h.FIXED32:case h.UINT32:return(t,n)=>{if(typeof n!="number")throw je(e,n);return n};case h.FLOAT:case h.DOUBLE:return(t,n)=>{if(typeof n!="number")throw je(e,n);return Number.isNaN(n)?"NaN":n===Number.POSITIVE_INFINITY?"Infinity":n===Number.NEGATIVE_INFINITY?"-Infinity":n};case h.STRING:return(t,n)=>{if(typeof n!="string")throw je(e,n);return n};case h.BOOL:return(t,n)=>{if(typeof n!="boolean")throw je(e,n);return n};case h.UINT64:case h.FIXED64:case h.INT64:case h.SFIXED64:case h.SINT64:return(t,n)=>{if(typeof n=="bigint"||typeof n=="string"||typeof n=="number"&&Number.isInteger(n))return n.toString();throw je(e,n)};case h.BYTES:return(t,n)=>{if(n instanceof Uint8Array)return fs(n);throw je(e,n)}}}function je(e,t){var n;return new Error(`cannot encode ${e} to JSON: ${(n=Ja(e,t))===null||n===void 0?void 0:n.message}`)}function Ol(e,t,n,o,a){const r=o.$unknown;if(r===void 0)return;const i=new Set;for(let s=0;s<r.length;s++){const{no:l}=r[s];if(!i.has(l)){i.add(l);const c=n.getExtensionFor(a,l);if(!c)continue;const[m,p]=Jt(c,Bl(o,c)),f=m[ie],Z=Hl(p)(t,f[p.localName]);Z!==void 0&&(e[c.jsonName]=Z)}}}function Dl(e,t){if(e.typeUrl==="")return{};const{registry:n}=t;let o,a;if(n&&(o=Yl(e,n),o&&(a=n.getMessage(o.$typeName))),!a||!o)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);const r=Sa(a)?{value:Xt(a)(t,o)}:Xt(a)(t,o);return r["@type"]=e.typeUrl,r}function _l(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let o=e.seconds.toString();if(n!==0){let a=Math.abs(n).toString();a="0".repeat(9-a.length)+a,a.substring(3)==="000000"?a=a.substring(0,3):a.substring(6)==="000"&&(a=a.substring(0,6)),o+="."+a,n<0&&t==0&&(o="-"+o)}return o+"s"}function Pl(e){return e.paths.map(t=>{if(Ha(Oe(t))!==t)throw new Error(`cannot encode message ${e.$typeName} to JSON: lowerCamelCase of path name "${t}" is irreversible`);return Oe(t)}).join(",")}function Ar(e){const t={},n=Object.keys(e.fields);for(let o=0;o<n.length;o++){const a=n[o];ue(t,a,Kn(e.fields[a]))}return t}function Kn(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":return e.kind.value;case"stringValue":return e.kind.value;case"structValue":return Ar(e.kind.value);case"listValue":return Zr(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function Zr(e){return e.values.map(Kn)}function $l(e){const t=Number(e.seconds)*1e3;if(t<dr||t>mr)throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const o=(e.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(t).toISOString().replace(".000Z",n)}var ql=2;function ec(e){return Object.assign(Object.assign({ignoreUnknownFields:!1,recursionLimit:100},e),{depth:0})}function tc(e,t,n){return fr(e,mc(t,e.typeName),n)}function fr(e,t,n){const o=oe(e);return nc(e,o,t,n),o}function nc(e,t,n,o){try{De(e)(t,n,ec(o))}catch(a){throw as(a)?new Error(`cannot decode ${a.field()} from JSON: ${a.message}`,{cause:a}):a}}var hn=new WeakMap;function De(e){let t=hn.get(e);return t===void 0&&(t=oc(e)),t}function oc(e){const t=String(e),n=ac(e);if(n!==void 0){const i=(s,l,c)=>{if(++c.depth>c.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${c.recursionLimit} reached`);n(s,l,c),c.depth--};return hn.set(e,i),i}const o=e.typeName,a=new Map,r=(i,s,l)=>{var c;if(++l.depth>l.recursionLimit)throw new Error(`cannot decode ${t} from JSON: maximum recursion depth of ${l.recursionLimit} reached`);if(s==null||Array.isArray(s)||typeof s!="object")throw new Error(`cannot decode ${t} from JSON: ${D(s)}`);const m=new Map,p=new Set,f=Object.keys(s);for(let Z=0;Z<f.length;Z++){const N=f[Z],V=s[N],C=a.get(N);if(C!==void 0){const J=C.field;if(p.has(J))throw new L(J,"set multiple times");if(p.add(J),C.oneofScalarNullSkip&&V===null)continue;if(C.oneof){const u=m.get(C.oneof);if(u!==void 0)throw new L(C.oneof,`oneof set multiple times by ${u.name} and ${J.name}`);m.set(C.oneof,J)}C.read(i,V,l)}else{const J=N.startsWith("[")&&N.endsWith("]")?(c=l.registry)===null||c===void 0?void 0:c.getExtension(N.substring(1,N.length-1)):void 0;if(J?.extendee.typeName==o){const[u,d,g]=Jt(J);Ho(d)(u[ie],V,l),Fl(i,J,g())}if(J===void 0&&!l.ignoreUnknownFields)throw new Error(`cannot decode ${t} from JSON: key "${N}" is unknown`)}}l.depth--};hn.set(e,r);for(const i of e.fields){const s={read:Ho(i),field:i,oneof:i.oneof,oneofScalarNullSkip:i.oneof!==void 0&&i.fieldKind=="scalar"};a.set(i.name,s).set(i.jsonName,s)}return r}function ac(e){if(e.typeName.startsWith("google.protobuf."))switch(e.typeName){case"google.protobuf.Any":return(t,n,o)=>bc(t,n,o);case"google.protobuf.Timestamp":return(t,n)=>gc(t,n);case"google.protobuf.Duration":return(t,n)=>pc(t,n);case"google.protobuf.FieldMask":return(t,n)=>Ac(t,n);case"google.protobuf.Struct":return(t,n,o)=>Gr(t,n,o);case"google.protobuf.Value":return(t,n,o)=>Tn(t,n,o);case"google.protobuf.ListValue":return(t,n,o)=>Vr(t,n,o);default:if(Ke(e)){const t=e.fields[0],n=t.localName,o=t.scalar,a=t.longAsString,r=Er(t);return(i,s)=>{s===null?i[n]=fe(o,a):i[n]=r(s)}}return}}function Ho(e){switch(e.fieldKind){case"scalar":return rc(e);case"enum":return ic(e);case"message":return sc(e);case"list":return lc(e);case"map":return uc(e)}}function rc(e){const t=Er(e),n=e.localName;if(e.oneof){const a=e.oneof.localName;return(r,i)=>{r[a]={case:n,value:t(i)}}}const o=Rr(e);return(a,r)=>{r===null?o(a):a[n]=t(r)}}function Rr(e){const t=e.localName;if(e.presence!=ql)return a=>{delete a[t]};if(e.fieldKind=="enum"){const a=e.enum.values[0].number;return r=>{r[t]=a}}const n=e.scalar,o=e.longAsString;return a=>{a[t]=fe(n,o)}}function ic(e){const t=xn(e.enum),n=zn(e.enum),o=e.localName,a=e.enum.typeName!="google.protobuf.NullValue";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{if(l===null&&a){s[i].case===o&&(s[i]={case:void 0});return}const m=t(l,c.ignoreUnknownFields);if(m===_e)return;const p=n(m);if(p!==!0)throw new L(e,ce(e,m,p));s[i]={case:o,value:m}}}const r=Rr(e);return(i,s,l)=>{if(s===null&&a){r(i);return}const c=t(s,l.ignoreUnknownFields);if(c===_e)return;const m=n(c);if(m!==!0)throw new L(e,ce(e,c,m));i[o]=c}}function sc(e){const t=e.localName,{toMessage:n,toLocal:o}=ge(e),a=De(e.message),r=e.message.typeName!="google.protobuf.Value";if(e.oneof){const i=e.oneof.localName;return(s,l,c)=>{const m=s[i];if(l===null&&r){m.case===t&&(s[i]={case:void 0});return}const p=n(m.case===t?m.value:void 0);a(p,l,c),s[i]={case:t,value:o(p)}}}return(i,s,l)=>{if(s===null&&r){delete i[t];return}const c=n(i[t]);a(c,s,l),i[t]=o(c)}}function lc(e){const t=e.localName,n=cc(e);return(o,a,r)=>{if(a===null)return;if(!Array.isArray(a))throw new L(e,"expected Array, got "+D(a));const i=o[t];for(let s=0;s<a.length;s++){const l=n(a[s],r,i.length);l!==_e&&i.push(l)}}}function cc(e){switch(e.listKind){case"scalar":{const t=Ln(e),n=ye(e.scalar),o=jn(e);return(a,r,i)=>{if(a===null)throw new L(e,"list item must not be null");const s=t(a),l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ce(e,s,l)}`);return o(s)}}case"enum":{const t=xn(e.enum),n=zn(e.enum),o=e.enum.typeName!="google.protobuf.NullValue";return(a,r,i)=>{if(a===null&&o)throw new L(e,"list item must not be null");const s=t(a,r.ignoreUnknownFields);if(s===_e)return s;const l=n(s);if(l!==!0)throw new L(e,`list item #${i+1}: ${ce(e,s,l)}`);return s}}case"message":{const{toMessage:t,toLocal:n}=ge(e),o=De(e.message),a=e.message.typeName!="google.protobuf.Value";return(r,i)=>{if(r===null&&a)throw new L(e,"list item must not be null");const s=t(void 0);return o(s,r,i),n(s)}}}}function uc(e){const t=e.localName,n=e.mapKey,o=dc(n),a=ye(n);let r,i,s=c=>c,l=!0;switch(e.mapKind){case"scalar":r=Ln(e),i=ye(e.scalar),s=jn(e);break;case"enum":{const c=xn(e.enum);r=(m,p)=>c(m,p.ignoreUnknownFields),i=zn(e.enum),l=e.enum.typeName!="google.protobuf.NullValue";break}case"message":{const{toMessage:c,toLocal:m}=ge(e),p=De(e.message);l=e.message.typeName!="google.protobuf.Value",r=(f,Z)=>{const N=c(void 0);return p(N,f,Z),m(N)};break}}return(c,m,p)=>{if(m===null)return;if(typeof m!="object"||Array.isArray(m))throw new L(e,"expected object, got "+D(m));const f=c[t],Z=new Set,N=Object.keys(m);for(let V=0;V<N.length;V++){const C=N[V],J=m[C],u=o(C);if(Z.has(u))throw new L(e,`duplicate map key "${C}"`);if(Z.add(u),J===null&&l)throw new L(e,"map value must not be null");const d=r(J,p);if(d===_e)continue;const g=a(u);if(g!==!0)throw new L(e,`invalid map key: ${ce({scalar:n},u,g)}`);if(i!==void 0){const b=i(d);if(b!==!0)throw new L(e,`map entry ${D(u)}: ${ce(e,d,b)}`)}ue(f,u,s(d))}}}var _e=Symbol();function xn(e){const t=e.values[0].number,n=new Map;for(const o of e.values)n.set(o.jsonName,o.number);for(const o of e.values)n.set(o.name,o.number);return(o,a)=>{if(o===null)return t;switch(typeof o){case"number":if(Number.isInteger(o))return o;break;case"string":{const r=n.get(o);if(r!==void 0)return r;if(a)return _e;break}}throw new Error(`cannot decode ${e} from JSON: ${D(o)}`)}}function zn(e){if(e.open)return ye(h.INT32);const t=e.values;return n=>t.some(o=>o.number===n)}function Er(e){const t=Ln(e),n=ye(e.scalar),o=jn(e);return a=>{const r=t(a),i=n(r);if(i!==!0)throw new L(e,ce(e,r,i));return o(r)}}function Ln(e){switch(e.scalar){case h.DOUBLE:case h.FLOAT:return t=>{if(t==="NaN")return NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof t=="number"){if(Number.isNaN(t))throw new L(e,"unexpected NaN number");if(!Number.isFinite(t))throw new L(e,"unexpected infinite number");return t}if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;const n=Number(t);return Number.isFinite(n)?n:t}return t};case h.INT32:case h.FIXED32:case h.SFIXED32:case h.SINT32:case h.UINT32:return Nr;case h.BYTES:return t=>{if(typeof t=="string"){if(t==="")return new Uint8Array(0);try{return Cn(t)}catch(n){throw new L(e,n instanceof Error?n.message:String(n))}}return t};default:return t=>t}}function jn(e){const t=e.fieldKind!=="map"&&e.longAsString;switch(e.scalar){case h.INT64:case h.SFIXED64:case h.SINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.parse(n):n;case h.FIXED64:case h.UINT64:return t?n=>String(n):n=>typeof n=="string"||typeof n=="number"?z.uParse(n):n;default:return n=>n}}function dc(e){switch(e){case h.BOOL:return t=>{switch(t){case"true":return!0;case"false":return!1}return t};case h.INT32:case h.FIXED32:case h.UINT32:case h.SFIXED32:case h.SINT32:return Nr;case h.INT64:case h.SINT64:case h.SFIXED64:case h.UINT64:case h.FIXED64:return t=>/^-?0+$/.test(t)?"0":t.replace(/^(-?)0+(?=\d)/,"$1");default:return t=>t}}function Nr(e){if(typeof e=="string"){if(e===""||e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function mc(e,t){let n;try{n=JSON.parse(e)}catch(o){const a=o instanceof Error?o.message:String(o);throw new Error(`cannot decode message ${t} from JSON: ${a}`,{cause:o})}return hc(e,t),n}function hc(e,t){const n=[];let o=!1,a=0;for(;a<e.length;)switch(e[a]){case"{":n.push(new Set),o=!0,a++;break;case"[":n.push(null),o=!1,a++;break;case"}":case"]":n.pop(),o=!1,a++;break;case",":o=n[n.length-1]!=null,a++;break;case":":o=!1,a++;break;case'"':{const r=a++;let i=!1;for(;a<e.length;){if(e[a]=="\\"){i=!0,a+=2;continue}if(e[a]=='"')break;a++}const s=a++,l=n[n.length-1];if(o&&l){const c=i?JSON.parse(e.substring(r,s+1)):e.substring(r+1,s);if(l.has(c))throw new Error(`cannot decode message ${t} from JSON: duplicate object key "${c}"`);l.add(c)}o=!1;break}default:a++;break}}function bc(e,t,n){var o;if(t===null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${D(t)}`);if(Object.keys(t).length==0)return;const a=t["@type"];if(typeof a!="string"||a=="")throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const r=a.includes("/")?a.substring(a.lastIndexOf("/")+1):a;if(!r.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const i=(o=n.registry)===null||o===void 0?void 0:o.getMessage(r);if(!i)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${a} is not in the type registry`);const s=oe(i);if(Sa(i)&&Object.prototype.hasOwnProperty.call(t,"value"))De(i)(s,t.value,n);else{const l={};for(const c of Object.keys(t))c!=="@type"&&ue(l,c,t[c]);De(i)(s,l,n)}vl(i,s,e)}function gc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(o<dr||o>mr)throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=z.parse(o/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function pc(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);const o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);if(e.seconds=z.parse(o),typeof n[2]!="string")return;const a=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(a),(o<0||Object.is(o,-0))&&(e.nanos=-e.nanos)}function Ac(e,t){if(typeof t!="string")throw new Error(`cannot decode message ${e.$typeName} from JSON: ${D(t)}`);t!==""&&(e.paths=t.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);return Ha(n)}))}function Gr(e,t,n){if(typeof t!="object"||t==null||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);const o=Object.keys(t);for(let a=0;a<o.length;a++){const r=o[a],i=oe(lr);Tn(i,t[r],n),ue(e.fields,r,i)}}function Tn(e,t,n){if(++n.depth>n.recursionLimit)throw new Error(`cannot decode ${e.$typeName} from JSON: maximum recursion depth of ${n.recursionLimit} reached`);switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(t)){const o=oe(Cl);Vr(o,t,n),e.kind={case:"listValue",value:o}}else{const o=oe(yl);Gr(o,t,n),e.kind={case:"structValue",value:o}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`)}return n.depth--,e}function Vr(e,t,n){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${D(t)}`);for(let o=0;o<t.length;o++){const a=oe(lr);Tn(a,t[o],n),e.values.push(a)}}function Qo(e){const t=R[e];return typeof t!="string"?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var S=class He extends Error{constructor(t,n=R.Unknown,o,a,r){super(Zc(t,n)),this.name="ConnectError",this.isWireError=!1,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=t,this.code=n,this.metadata=new Headers(o??{}),this.details=a??[],this.cause=r}static from(t,n=R.Unknown){return t instanceof He?t:t instanceof Error?t.name=="AbortError"||t.name=="TimeoutError"?new He(t.message,R.Canceled):new He(t.message,n,void 0,void 0,t):new He(String(t),n,void 0,void 0,t)}static[Symbol.hasInstance](t){return t instanceof Error?Object.getPrototypeOf(t)===He.prototype?!0:t.name==="ConnectError"&&"code"in t&&typeof t.code=="number"&&"metadata"in t&&"details"in t&&Array.isArray(t.details)&&"rawMessage"in t&&typeof t.rawMessage=="string"&&"cause"in t:!1}findDetails(t){const n=t.kind==="message"?{getMessage:a=>a===t.typeName?t:void 0}:t,o=[];for(const a of this.details){if("desc"in a){n.getMessage(a.desc.typeName)&&o.push(oe(a.desc,a.value));continue}const r=n.getMessage(a.type);if(r)try{o.push(dt(r,a.value))}catch{}}return o}};function Zc(e,t){return e.length?`[${Qo(t)}] ${e}`:`[${Qo(t)}]`}function fc(e,t,n){try{const o=Cn(e);return t?dt(t,o,n):o}catch(o){throw S.from(o,R.DataLoss)}}function Rc(e,t){const n={};for(const o of e.methods){const a=t(o);a!=null&&(n[o.localName]=a)}return n}var Gt=4294967295,Dt=Gt,Ec=1024;function Nc(e,t,n){if(t!=null||(t=Dt),e!=null||(e=Gt),n!=null||(n=Ec),t<1||t>Dt)throw new S(`writeMaxBytes ${t} must be >= 1 and <= ${Dt}`,R.Internal);if(e<1||e>Gt)throw new S(`readMaxBytes ${e} must be >= 1 and <= ${Gt}`,R.Internal);return{readMaxBytes:e,writeMaxBytes:t,compressMinBytes:n}}function Gc(e,t){if(t>e)throw new S(`message size ${t} is larger than configured writeMaxBytes ${e}`,R.ResourceExhausted)}function Wr(e,t,n=!1){if(t>e){let o=`message size is larger than configured readMaxBytes ${e}`;throw n&&(o=`message size ${t} is larger than configured readMaxBytes ${e}`),new S(o,R.ResourceExhausted)}}function Vc(e){return new Wc(e)}var Wc=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let n=this.pop();if(!n)break;t.push(n)}return t}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return Wr(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLength<t)return!1;let n=0;for(;n<t;){const o=this.buf.shift();o.byteLength>t-n?(e.set(o.subarray(0,t-n),n),this.buf.unshift(o.subarray(t-n)),n+=t-n):(e.set(o,n),n+=o.byteLength)}return!0}};async function Sc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1)throw new S("invalid envelope, already compressed",R.Internal);return t&&a.byteLength>=n&&(a=await t.compress(a),o=o|1),{data:a,flags:o}}async function vc(e,t,n){let{flags:o,data:a}=e;if((o&1)===1){if(!t)throw new S("received compressed envelope, but do not know how to decompress",R.Internal);a=await t.decompress(a,n),o=o^1}return{data:a,flags:o}}function Xc(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,e),o.setUint32(1,t.length),n}var Re=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},k=function(e){return this instanceof k?(this.v=e,this):new k(e)},be=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof k?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}},Yc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:k(e[a](i)),done:!1}:r?r(i):i}:r}};function Ic(e,...t){const[n,o,a]=yc(t);let r=e,i;return a?.propagateDownStreamError===!0&&(r=i=Sr(r)),r=Vt(r,...n,{propagateDownStreamError:!1}),o(r).catch(s=>i?i.abort(s).then(()=>Promise.reject(s)):Promise.reject(s))}function yc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,e.pop(),t]}function Vt(e,...t){return be(this,arguments,function*(){var o;const[a,r]=Cc(t);let i;const s=e[Symbol.asyncIterator]();let l={[Symbol.asyncIterator](){return s}};r?.propagateDownStreamError===!0&&(l=i=Sr(l));for(const m of a)l=m(l);const c=l[Symbol.asyncIterator]();try{for(;;){const m=yield k(c.next());if(m.done===!0)break;if(!i){yield yield k(m.value);continue}try{yield yield k(m.value)}catch(p){throw yield k(i.abort(p)),p}}}finally{r?.propagateDownStreamError===!0&&((o=s.return)===null||o===void 0||o.call(s).catch(()=>{}))}})}function Cc(e){let t;return typeof e[e.length-1]!="function"&&(t=e.pop()),[e,t]}function Mo(e,t,n){return t===void 0||n===void 0?function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const p=s;yield yield k({flags:0,data:e.serialize(p)})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const p=s;let f,Z=0;p.end?(Z=Z|t,f=n.serialize(p.value)):f=e.serialize(p.value),yield yield k({flags:Z,data:f})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Oo(e,t,n){return n&&t!==void 0?function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const{flags:p,data:f}=s;(p&t)===t?yield yield k({value:n.parse(f),end:!0}):yield yield k({value:e.parse(f),end:!1})}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}:function(o){return be(this,arguments,function*(){var a,r,i,s;try{for(var l=!0,c=Re(o),m;m=yield k(c.next()),a=m.done,!a;l=!0){s=m.value,l=!1;const{flags:p,data:f}=s;if(t!==void 0&&(p&t)===t){if(n===null)throw new S("unexpected end flag",R.InvalidArgument);continue}yield yield k(e.parse(f))}}catch(p){r={error:p}}finally{try{!l&&!a&&(i=c.return)&&(yield k(i.call(c)))}finally{if(r)throw r.error}}})}}function Do(e,t){return function(n){return be(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Re(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(Sc(i,e,t)))}catch(m){a={error:m}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function _o(e,t){return function(n){return be(this,arguments,function*(){var o,a,r,i;try{for(var s=!0,l=Re(n),c;c=yield k(l.next()),o=c.done,!o;s=!0)i=c.value,s=!1,yield yield k(yield k(vc(i,e,t)))}catch(m){a={error:m}}finally{try{!s&&!o&&(r=l.return)&&(yield k(r.call(l)))}finally{if(a)throw a.error}}})}}function Po(){return function(e){return be(this,arguments,function*(){var t,n,o,a;try{for(var r=!0,i=Re(e),s;s=yield k(i.next()),t=s.done,!t;r=!0){a=s.value,r=!1;const{flags:l,data:c}=a;yield yield k(Xc(l,c))}}catch(l){n={error:l}}finally{try{!r&&!t&&(o=i.return)&&(yield k(o.call(i)))}finally{if(n)throw n.error}}})}}function $o(e){return function(t){return be(this,arguments,function*(){var n,o,a,r;const i=Vc(e);try{for(var s=!0,l=Re(t),c;c=yield k(l.next()),n=c.done,!n;s=!0){r=c.value,s=!1;const m=r;for(const p of i.decode(m))yield yield k(p)}}catch(m){o={error:m}}finally{try{!s&&!n&&(a=l.return)&&(yield k(a.call(l)))}finally{if(o)throw o.error}}if(i.byteLength>0)throw new S("protocol error: incomplete envelope",R.InvalidArgument)})}}function Sr(e){const t=e[Symbol.asyncIterator]();if(t.throw===void 0)throw new Error("AsyncIterable does not implement throw");const n=t;let o,a,r={next(){return a=n.next().finally(()=>{a=void 0}),a},throw(s){return n.throw(s)}};t.return!==void 0&&(r=Object.assign(Object.assign({},r),{return(s){return n.return(s)}}));let i=!1;return{abort(s){if(o)return o.state;const l=()=>n.throw(s).then(c=>c.done===!0?"completed":"caught",()=>"rethrown");return a?(o={reason:s,state:a.then(l,l)},o.state):(o={reason:s,state:l()},o.state)},[Symbol.asyncIterator](){if(i)throw new Error("AsyncIterable cannot be re-used");return i=!0,r}}}function vr(e){return be(this,arguments,function*(){yield k(yield*Yc(Re(e)))})}var Xr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Pe=function(e){return this instanceof Pe?(this.v=e,this):new Pe(e)},Bc=function(e){var t,n;return t={},o("next"),o("throw",function(a){throw a}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(a,r){t[a]=e[a]?function(i){return(n=!n)?{value:Pe(e[a](i)),done:!1}:r?r(i):i}:r}},Fc=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof Pe?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}};function Ge(e,t){return Rc(e,n=>{switch(n.methodKind){case"unary":return wc(t,n);case"server_streaming":return Uc(t,n);case"client_streaming":return Jc(t,n);case"bidi_streaming":return kc(t,n);default:return null}})}function wc(e,t){return async(n,o)=>{var a,r;const i=await e.unary(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(a=o?.onHeader)===null||a===void 0||a.call(o,i.header),(r=o?.onTrailer)===null||r===void 0||r.call(o,i.trailer),i.message}}function Uc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,vr([n]),o?.contextValues),o)}function Jc(e,t){return async(n,o)=>{var a,r,i,s,l,c;const m=await e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(l=o?.onHeader)===null||l===void 0||l.call(o,m.header);let p,f=0;try{for(var Z=!0,N=Xr(m.message),V;V=await N.next(),a=V.done,!a;Z=!0)s=V.value,Z=!1,p=s,f++}catch(C){r={error:C}}finally{try{!Z&&!a&&(i=N.return)&&await i.call(N)}finally{if(r)throw r.error}}if(!p)throw new S("protocol error: missing response message",R.Unimplemented);if(f>1)throw new S("protocol error: received extra messages for client streaming method",R.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),p}}function kc(e,t){return(n,o)=>Yr(e.stream(t,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function Yr(e,t){const n=(function(){return Fc(this,arguments,function*(){var o,a;const r=yield Pe(e);(o=t?.onHeader)===null||o===void 0||o.call(t,r.header),yield Pe(yield*Bc(Xr(r.message))),(a=t?.onTrailer)===null||a===void 0||a.call(t,r.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function Kc(...e){const t=new AbortController,n=e.filter(a=>a!==void 0).concat(t.signal);for(const a of n){if(a.aborted){o.apply(a);break}a.addEventListener("abort",o)}function o(){t.signal.aborted||t.abort(lt(this));for(const a of n)a.removeEventListener("abort",o)}return t}function xc(e){const t=new AbortController,n=()=>{t.abort(new S("the operation timed out",R.DeadlineExceeded))};let o;return e!==void 0&&(e<=0?n():o=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(o)}}function lt(e){if(!e.aborted)return;if(e.reason!==void 0)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function qo(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}function zc(e){const t=new Headers,n=new TextDecoder().decode(e).split(`\r
|
|
29
|
+
`);for(const o of n){if(o==="")continue;const a=o.indexOf(":");if(a>0){const r=o.substring(0,a).trim(),i=o.substring(a+1).trim();t.append(r,i)}}return t}function Lc(e){const t=[];return e.forEach((n,o)=>{t.push(`${o}: ${n}\r
|
|
30
|
+
`)}),new TextEncoder().encode(t.join(""))}function ea(){return{serialize:Lc,parse:zc}}var jc="Content-Type",Ir="Grpc-Encoding",Tc="Grpc-Accept-Encoding",Hc="Grpc-Timeout",yr="Grpc-Status";var Qc="Grpc-Status-Details-Bin",Mc="User-Agent",Oc="X-User-Agent",Dc="X-Grpc-Web",_c="application/grpc-web+proto",Pc="application/grpc-web+json";function Ve(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}var $c=q("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[nr]),qc=G($c,0);function Cr(e){var t;const n=e.get(Qc);if(n!=null){const a=fc(n,qc);if(a.code==0)return;const r=new S(a.message,a.code,e);return r.details=a.details.map(i=>({type:i.typeUrl.substring(i.typeUrl.lastIndexOf("/")+1),value:i.value})),r.isWireError=!0,r}const o=e.get(yr);if(o!=null){if(o==="0")return;const a=parseInt(o,10);let r;return a in R?r=new S(decodeURIComponent((t=e.get("Grpc-Message"))!==null&&t!==void 0?t:""),a,e):r=new S(`invalid grpc-status: ${o}`,R.Internal,e),r.isWireError=!0,r}}function ta(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}function Br(e,t){return oe(e,t)}function eu(e,t){function n(o){return o.done===!0?o:{done:o.done,value:Br(e,o.value)}}return{[Symbol.asyncIterator](){const o=t[Symbol.asyncIterator](),a={next:()=>o.next().then(n)};return o.throw!==void 0&&(a.throw=r=>o.throw(r).then(n)),o.return!==void 0&&(a.return=r=>o.return(r).then(n)),a}}}function Fr(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function tu(e){var t;const n=Object.assign({},e);return(t=n.ignoreUnknownFields)!==null&&t!==void 0||(n.ignoreUnknownFields=!0),n}function na(e,t,n,o){const a=At(oa(e.input,t),o),r=At(aa(e.input,n),o),i=At(oa(e.output,t),o),s=At(aa(e.output,n),o);return{getI(l){return l?a:r},getO(l){return l?i:s}}}function At(e,t){return{serialize(n){const o=e.serialize(n);return Gc(t.writeMaxBytes,o.byteLength),o},parse(n){return Wr(t.readMaxBytes,n.byteLength,!0),e.parse(n)}}}function oa(e,t){return{parse(n){try{return dt(e,n,t)}catch(o){throw new S(`parse binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}},serialize(n){try{return or(e,n,t)}catch(o){throw new S(`serialize binary: ${o instanceof Error?o.message:String(o)}`,R.Internal)}}}}function aa(e,t){var n,o;const a=(n=t?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,r=(o=t?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,i=tu(t);return{parse(s){try{return tc(e,r.decode(s),i)}catch(l){throw S.from(l,R.InvalidArgument)}},serialize(s){try{const l=Kl(e,s,i);return a.encode(l)}catch(l){throw S.from(l,R.Internal)}}}}function nu(e){const t=Fr(e.next,e.interceptors),[n,o,a]=wr(e);return t(Object.assign(Object.assign({},e.req),{message:Br(e.req.method.input,e.req.message),signal:n})).then(r=>(a(),r),o)}function ou(e){const t=Fr(e.next,e.interceptors),[n,o,a]=wr(e),r=Object.assign(Object.assign({},e.req),{message:eu(e.req.method.input,e.req.message),signal:n});let i=!1;return n.addEventListener("abort",function(){var s,l;const c=e.req.message[Symbol.asyncIterator]();i||(s=c.throw)===null||s===void 0||s.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),t(r).then(s=>Object.assign(Object.assign({},s),{message:{[Symbol.asyncIterator](){const l=s.message[Symbol.asyncIterator]();return{next(){return!i&&n.aborted?o(lt(n)):l.next().then(c=>(c.done==!0&&(i=!0,a()),c),o)}}}}}),o)}function wr(e){const{signal:t,cleanup:n}=xc(e.timeoutMs),o=Kc(e.signal,t);return[o.signal,function(r){const i=o.signal.aborted?S.from(lt(o.signal),R.Canceled):S.from(r);return o.abort(i),n(),Promise.reject(i)},function(){n(),o.abort()}]}var au=q("CiVoYWdpY29kZS9jb21tb24vdjEvZXJyb3JfZGV0YWlsLnByb3RvEhJoYWdpY29kZS5jb21tb24udjEiQgoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIoqgIlUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW1vbi5WMWIGcHJvdG8z",[Ne]),ru=G(au,0),P={USAGE:2,HTTP_BAD_REQUEST:20,HTTP_UNAUTHORIZED:21,HTTP_FORBIDDEN:23,HTTP_NOT_FOUND:24,HTTP_CONFLICT:29,OPERATION_FAILED:30,HTTP_CLIENT_ERROR:40,HTTP_SERVER_ERROR:50,TRANSPORT:60,UNKNOWN:70},w=class extends Error{constructor(e){super(e),this.name="CliUsageError"}},mt=class extends Error{constructor(e){super(e),this.name="CliOperationFailedError"}},xe=class extends Error{status;details;constructor(e,t,n){super(t),this.name="CliHttpError",this.status=e,this.details=n}};function Hn(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return e}function $e(e,t){const n=Hn(e)?.[t];return typeof n=="string"&&n.trim()?n.trim():void 0}function Ur(e){return e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ENOTFOUND")||e.includes("ECONNRESET")||e.includes("ETIMEDOUT")||e.includes("EHOSTUNREACH")||e.includes("EAI_AGAIN")||e.includes("Failed to parse URL")||e.includes("Invalid URL")}function ra(e){switch(e){case 400:return P.HTTP_BAD_REQUEST;case 401:return P.HTTP_UNAUTHORIZED;case 403:return P.HTTP_FORBIDDEN;case 404:return P.HTTP_NOT_FOUND;case 409:return P.HTTP_CONFLICT;default:return e&&e>=400&&e<500?P.HTTP_CLIENT_ERROR:e&&e>=500?P.HTTP_SERVER_ERROR:P.UNKNOWN}}var iu={[R.InvalidArgument]:400,[R.OutOfRange]:400,[R.Unauthenticated]:401,[R.PermissionDenied]:403,[R.NotFound]:404,[R.AlreadyExists]:409,[R.FailedPrecondition]:409,[R.Aborted]:409,[R.Unimplemented]:501,[R.Internal]:500,[R.Unknown]:500,[R.DataLoss]:500,[R.Unavailable]:503,[R.DeadlineExceeded]:504},su=/exceeds?\s+the\s+maximum|too\s+large|payload\s+too\s+large/i;function lu(e){return e.code===R.ResourceExhausted?su.test(e.rawMessage)?413:429:iu[e.code]??500}function cu(e){return e.code!==R.Unavailable&&e.code!==R.Unknown&&e.code!==R.Internal&&e.code!==R.Aborted?!1:e.cause instanceof Error||Ur(e.rawMessage)}function Jr(e){if(!(e instanceof S)||e.code===R.Canceled||cu(e))return;const[t]=e.findDetails(ru),n=t&&t.code.length>0?t.code:void 0,o=t?.data??{},a=e.rawMessage.trim()||`The backend rejected the request (${R[e.code]}).`;return{status:lu(e),message:a,code:n,body:{error:a,...n?{code:n}:{},...o}}}function ia(e,t){const n=t.baseUrl??"the configured backend";return{exitCode:P.TRANSPORT,message:/Failed to parse URL|Invalid URL/i.test(e)?`Invalid HagiCode backend base URL: ${n}`:`Cannot reach HagiCode backend at ${n}. Check that the backend is running and the base URL is correct.`}}function kr(e,t={}){if(e instanceof w)return{exitCode:P.USAGE,message:e.message};if(e instanceof mt)return{exitCode:P.OPERATION_FAILED,message:e.message};if(e instanceof xe)return{exitCode:ra(e.status),status:e.status,message:e.message,details:e.details};if(e instanceof S){const n=Jr(e);if(n){const o=du(n.body);return{exitCode:ra(n.status),status:n.status,message:o.length>0?[n.message,...o].join(`
|
|
31
|
+
`):n.message,errorCode:$e(n.body,"errorCode")??n.code,correlationId:$e(n.body,"correlationId"),details:n.body}}return e.code===R.Canceled?{exitCode:P.UNKNOWN,message:"The request was cancelled."}:ia(e.rawMessage,t)}return e instanceof Error?Ur(e.message)?ia(e.message,t):{exitCode:P.UNKNOWN,message:e.message}:{exitCode:P.UNKNOWN,message:String(e)}}function uu(e){const t=Hn(e)?.errors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function du(e){const t=Hn(e)?.fieldErrors;return Array.isArray(t)?t.flatMap(n=>{const o=$e(n,"field"),a=$e(n,"message");return o&&a?[` - ${o}: ${a}`]:[]}):[]}function Kr(e,t={}){if(t.json)return`${JSON.stringify({error:{message:e.message,status:e.status,exitCode:e.exitCode,errorCode:e.errorCode,correlationId:e.correlationId,details:e.details}},null,2)}
|
|
32
|
+
`;const n=[e.status?`status=${e.status}`:void 0,e.errorCode?`errorCode=${e.errorCode}`:void 0,e.correlationId?`correlationId=${e.correlationId}`:void 0].filter(Boolean),o=n.length>0?` (${n.join(", ")})`:"";return[`${e.message}${o}`,...uu(e.details)].join(`
|
|
33
|
+
`)+`
|
|
34
|
+
`}var mu="--base-url",hu="HAGI_API_BASE_URL";function Ze(e){const t=e?.trim();return t||void 0}function xr(e=process.env){return(0,to.join)(Ze(e.XDG_CONFIG_HOME)??(0,to.join)((0,vi.homedir)(),".config"),"hagi","config.json")}function bu(e=process.env){const t=xr(e);let n;try{n=(0,Si.readFileSync)(t,"utf8")}catch(r){if(r.code==="ENOENT")return;throw new w(`Cannot read CLI config file ${t}: ${r instanceof Error?r.message:String(r)}`)}let o;try{o=JSON.parse(n)}catch{throw new w(`CLI config file ${t} is not valid JSON.`)}const a=o&&typeof o=="object"&&!Array.isArray(o)?o.baseUrl:void 0;return typeof a=="string"?Ze(a):void 0}function gu(e={},t=process.env){const n=Ze(e.baseUrl)??Ze(t.HAGI_API_BASE_URL)??bu(t);if(!n)throw new w(`No backend base URL is configured. Set ${mu} <url>, the ${hu} environment variable, or "baseUrl" in ${xr(t)}.`);return{baseUrl:n,token:Ze(e.token)??Ze(t.HAGI_API_TOKEN),lang:Ze(e.lang)??Ze(t.HAGI_API_LANG)}}var ct;function pu(e={},t=process.env){return ct=gu(e,t),ct}function zr(){if(!ct)throw new w("The backend connection is not configured. Resolve the API runtime before calling the backend.");return ct}function Au(){return Ze(ct?.baseUrl)}var ee=q("CiFoYWdpY29kZS9wcm9qZWN0L3YxL3Byb2plY3QucHJvdG8SE2hhZ2ljb2RlLnByb2plY3QudjEiSwoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSMwoEYm9keRgBIAEoCzIlLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdER0byJIChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USLwoGcmVzdWx0GAEgASgLMh8uaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0RHRvIhoKGENyZWF0ZURlbW9Qcm9qZWN0UmVxdWVzdCJMChlDcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEi8KBnJlc3VsdBgBIAEoCzIfLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdER0byJXChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRIzCgRib2R5GAIgASgLMiUuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0RHRvIkgKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIvCgZyZXN1bHQYASABKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REdG8iIgoURGVsZXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRGVsZXRlUHJvamVjdFJlc3BvbnNlIkUKHkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEg8KB3JlZnJlc2gYAiABKAgiZwofR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzUmVzcG9uc2VEdG8iPgooR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJInsKKUdldFByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8ikAEKKVNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSTwoEYm9keRgCIAEoCzJBLmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3REdG8ifAoqU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlc3BvbnNlEk4KBnJlc3VsdBgBIAEoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50RG9jdW1lbnREdG8iMwodR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJdCh5HZXRNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvIiwKFlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJWChdSZWxvYWRNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8igAEKIUNsb25lTW9ub1NwZWNzUmVwb3NpdG9yaWVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkcKBGJvZHkYAiABKAsyOS5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yaWVzUmVxdWVzdER0byJwCiJDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0byJpCihSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXRSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkSEQoEcGF0aBgCIAEoCUgAiAEBEg0KBWZvcmNlGAMgASgIQgcKBV9wYXRoInQKKVJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0byIwChpJbml0aWFsaXplTW9ub1NwZWNzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIloKG0luaXRpYWxpemVNb25vU3BlY3NSZXNwb25zZRI7CgZyZXN1bHQYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnREdG8ifgogVXBkYXRlTW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRJGCgRib2R5GAIgASgLMjguaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0byJgCiFVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50RHRvImcKH0dldFByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIcCg9yZXBvc2l0b3J5X3BhdGgYAiABKAlIAIgBAUISChBfcmVwb3NpdG9yeV9wYXRoImEKIEdldFByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdERlc2lnbkRvY3VtZW50RHRvIoABCiBTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEkgKBGJvZHkYAiABKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8ibAohU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3BvbnNlEkcKBnJlc3VsdBgBIAEoCzI3LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlc3VsdER0byI2CiBHZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJImMKIUdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXNwb25zZRI+CgZyZXN1bHQYASABKAsyLi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhEdG8iRwojR2V0UHJvamVjdERlc2lnblNpdGVEb2N1bWVudFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRIMCgRzbHVnGAIgASgJImkKJEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXNwb25zZRJBCgZyZXN1bHQYASABKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlRG9jdW1lbnREdG8ieQocVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhMKC2JyYW5jaF9uYW1lGAIgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgDIAEoCUgAiAEBQhIKEF9yZXBvc2l0b3J5X3BhdGgiYQodVmFsaWRhdGVQcm9qZWN0QnJhbmNoUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucHJvamVjdC52MS5CcmFuY2hWYWxpZGF0aW9uUmVzcG9uc2VEdG8iKgoaVmFsaWRhdGVQcm9qZWN0UGF0aFJlcXVlc3QSDAoEcGF0aBgBIAEoCSJdChtWYWxpZGF0ZVByb2plY3RQYXRoUmVzcG9uc2USPgoGcmVzdWx0GAEgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5QYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvIlcKGlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0EjkKBGJvZHkYASABKAsyKy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc1JlcXVlc3REdG8iWwobU2NhbkdpdFJlcG9zaXRvcmllc1Jlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnByb2plY3QudjEuU2NhbkdpdFJlcG9zUmVzcG9uc2VEdG8iYAoeVmFsaWRhdGVNb25vU3BlY3NDb25maWdSZXF1ZXN0Ej4KBGJvZHkYASABKAsyMC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzUmVxdWVzdER0byJkCh9WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAEoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVNb25vU3BlY3NSZXNwb25zZUR0byItChdHZXRQcm9qZWN0VmF1bHRzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlUKGEdldFByb2plY3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIqABCh5PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCRInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgCIAEoCUgAiAEBEhUKCHN1Yl9wYXRoGAMgASgJSAGIAQFCHQobX2N1cnJlbnRfaW50ZXJmYWNlX2xhbmd1YWdlQgsKCV9zdWJfcGF0aCJlCh9PcGVuUHJvamVjdEluQ29kZVNlcnZlclJlc3BvbnNlEkIKBnJlc3VsdBgBIAEoCzIyLmhhZ2ljb2RlLnByb2plY3QudjEuVnNDb2RlU2VydmVyTGF1bmNoUmVzcG9uc2VEdG8iNQofR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIl4KIEdldFByb2plY3RHaXRXYXRjaFN0YXR1c1Jlc3BvbnNlEjoKBnJlc3VsdBgBIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdEdpdFdhdGNoU3RhdHVzIkAKDlN1YlJlcG9JbmZvRHRvEgwKBG5hbWUYASABKAkSDAoEcGF0aBgCIAEoCRISCgpoYXNfYWdlbnRzGAMgASgIIvEDCgpQcm9qZWN0RHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjEKDWNyZWF0aW9uX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmxhc3RfbW9kaWZpY2F0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWlzX21vbm9fc3BlY3MYByABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAggASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgJIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgKIAEoCEgDiAEBEj0KEHN1Yl9yZXBvc2l0b3JpZXMYCyADKAsyIy5oYWdpY29kZS5wcm9qZWN0LnYxLlN1YlJlcG9JbmZvRHRvQg4KDF9kZXNjcmlwdGlvbkIVChNfbW9ub19zcGVjc192ZXJzaW9uQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiWAoQQ3JlYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24iWAoQVXBkYXRlUHJvamVjdER0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24i5gIKG1Byb2plY3RTdGFuZGFyZFdvcmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIWCglwYXJlbnRfaWQYAyABKAlIAIgBARIPCgdlbmFibGVkGAQgASgIEg0KBW9yZGVyGAUgASgFEhMKC3NvdXJjZV90eXBlGAYgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAcgASgJEgwKBHRhZ3MYCCADKAkSFQoIbGFuZ3VhZ2UYCSABKAlIAYgBARJQCghtZXRhZGF0YRgKIAMoCzI+LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIu0CChxQcm9qZWN0U3RhbmRhcmRXb3JkUGhyYXNlRHRvEhAKCGdyb3VwX2lkGAEgASgJEgsKA2tleRgCIAEoCRINCgVsYWJlbBgDIAEoCRIWCg5zdWJtaXR0ZWRfdGV4dBgEIAEoCRIPCgdlbmFibGVkGAUgASgIEg0KBW9yZGVyGAYgASgFEhMKC3NvdXJjZV90eXBlGAcgASgJEhwKFHNvdXJjZV9yZWxhdGl2ZV9wYXRoGAggASgJEgwKBHRhZ3MYCSADKAkSFQoIbGFuZ3VhZ2UYCiABKAlIAIgBARJRCghtZXRhZGF0YRgLIAMoCzI/LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFBocmFzZUR0by5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUILCglfbGFuZ3VhZ2UinAEKHFByb2plY3RTdGFuZGFyZFdvcmRTb3VyY2VEdG8SDAoEdHlwZRgBIAEoCRIVCg1yZWxhdGl2ZV9wYXRoGAIgASgJEhEKCWZ1bGxfcGF0aBgDIAEoCRIOCgZleGlzdHMYBCABKAgSNAoQbGFzdF9tb2RpZmllZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiygEKIVByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGAoLc291cmNlX3R5cGUYBCABKAlIAIgBARIaCg1yZWxhdGl2ZV9wYXRoGAUgASgJSAGIAQESEgoFZmllbGQYBiABKAlIAogBAUIOCgxfc291cmNlX3R5cGVCEAoOX3JlbGF0aXZlX3BhdGhCCAoGX2ZpZWxkIr0DCh9Qcm9qZWN0U3RhbmRhcmRXb3Jkc1Jlc3BvbnNlRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZnJvbV9jYWNoZRgFIAEoCBJCCgdzb3VyY2VzGAYgAygLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3JkU291cmNlRHRvEkAKBmdyb3VwcxgHIAMoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZEdyb3VwRHRvEkIKB3BocmFzZXMYCCADKAsyMS5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRQaHJhc2VEdG8SSwoLZGlhZ25vc3RpY3MYCSADKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRGlhZ25vc3RpY0R0byK6AgolUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZVBocmFzZUR0bxILCgNrZXkYASABKAkSDQoFbGFiZWwYAiABKAkSFgoOc3VibWl0dGVkX3RleHQYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSACIAQESWgoIbWV0YWRhdGEYCCADKAsySC5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8uTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCwoJX2xhbmd1YWdlIpIDCiRQcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSFgoJcGFyZW50X2lkGAMgASgJSACIAQESDwoHZW5hYmxlZBgEIAEoCBINCgVvcmRlchgFIAEoBRIMCgR0YWdzGAYgAygJEhUKCGxhbmd1YWdlGAcgASgJSAGIAQESWQoIbWV0YWRhdGEYCCADKAsyRy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVHcm91cER0by5NZXRhZGF0YUVudHJ5EksKB3BocmFzZXMYCSADKAsyOi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzRWRpdGFibGVQaHJhc2VEdG8aLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9wYXJlbnRfaWRCCwoJX2xhbmd1YWdlIsQBCiVQcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEhMKC3NvdXJjZV90eXBlGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhMKC2dyb3VwX2NvdW50GAQgASgFEhQKDHBocmFzZV9jb3VudBgFIAEoBRI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLWAQokUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhMKC3NvdXJjZV90eXBlGAIgASgJEhUKDXJlbGF0aXZlX3BhdGgYAyABKAkSEQoJZnVsbF9wYXRoGAQgASgJEg4KBmV4aXN0cxgFIAEoCBI0ChBsYXN0X21vZGlmaWVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYByABKAkilgEKIVByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxITCgtncm91cF9jb3VudBgBIAEoBRIUCgxwaHJhc2VfY291bnQYAiABKAUSHAoUZGlzYWJsZWRfZW50cnlfY291bnQYAyABKAUSEQoJdGFnX2NvdW50GAQgASgFEhUKDXNvdXJjZV9zdGF0dXMYBSABKAki8wQKKVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudERvY3VtZW50RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMcHJvamVjdF9yb290GAMgASgJEi0KCWxvYWRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoGZ3JvdXBzGAUgAygLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0VkaXRhYmxlR3JvdXBEdG8SQgoHc291cmNlcxgGIAMoCzIxLmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZFNvdXJjZUR0bxJaChZ1c2VyX292ZXJsYXlfc3VtbWFyaWVzGAcgAygLMjouaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc092ZXJsYXlTdW1tYXJ5RHRvEkoKCnN0YXRpc3RpY3MYCCABKAsyNi5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3RTdGFuZGFyZFdvcmRzU3RhdGlzdGljc0R0bxJRCg5zb3VyY2VfdmVyc2lvbhgJIAEoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNTb3VyY2VWZXJzaW9uRHRvEksKC2RpYWdub3N0aWNzGAogAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc0RpYWdub3N0aWNEdG8i5AEKLFNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0RHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgJEkkKBmdyb3VwcxgCIAMoCzI5LmhhZ2ljb2RlLnByb2plY3QudjEuUHJvamVjdFN0YW5kYXJkV29yZHNFZGl0YWJsZUdyb3VwRHRvElEKDnNvdXJjZV92ZXJzaW9uGAMgASgLMjkuaGFnaWNvZGUucHJvamVjdC52MS5Qcm9qZWN0U3RhbmRhcmRXb3Jkc1NvdXJjZVZlcnNpb25EdG8iVQojTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEhIKCnZhbHVlX2tpbmQYAyABKAki5gQKIE1vbm9TcGVjc01hbmFnZW1lbnRSZXBvc2l0b3J5RHRvEgwKBG5hbWUYASABKAkSEQoEY29kZRgCIAEoCUgAiAEBEgwKBHBhdGgYAyABKAkSEAoDdXJsGAQgASgJSAGIAQESGQoMZGlzcGxheV9uYW1lGAUgASgJSAKIAQESEQoEdHlwZRgGIAEoCUgDiAEBEhEKBGljb24YByABKAlIBIgBARIQCghvcHRpb25hbBgIIAEoCBIMCgR0YWdzGAkgAygJEkoKCG1ldGFkYXRhGAogAygLMjguaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50TWV0YWRhdGFFbnRyeUR0bxIZChFpc192YWxpZF9naXRfcmVwbxgLIAEoCBITCgZicmFuY2gYDCABKAlIBYgBARIfChdoYXNfdW5jb21taXR0ZWRfY2hhbmdlcxgNIAEoCBIdChV1bnB1c2hlZF9jb21taXRfY291bnQYDiABKAUSGwoTaGFzX3RyYWNraW5nX2JyYW5jaBgPIAEoCBI1Cg90cmFja2luZ19icmFuY2gYECABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSEwoLYWhlYWRfY291bnQYESABKAUSFAoMYmVoaW5kX2NvdW50GBIgASgFEhcKCnN5bmNfc3RhdGUYEyABKAlIBogBAUIHCgVfY29kZUIGCgRfdXJsQg8KDV9kaXNwbGF5X25hbWVCBwoFX3R5cGVCBwoFX2ljb25CCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSKiAgoWTW9ub1NwZWNzTWFuYWdlbWVudER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhMKC2NvbmZpZ19wYXRoGAMgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYBCABKAgSFAoMeWFtbF9wcmV2aWV3GAUgASgJEksKDHJlcG9zaXRvcmllcxgGIAMoCzI1LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudFJlcG9zaXRvcnlEdG8SSgoIbWV0YWRhdGEYByADKAsyOC5oYWdpY29kZS5wcm9qZWN0LnYxLk1vbm9TcGVjc01hbmFnZW1lbnRNZXRhZGF0YUVudHJ5RHRvImMKIU1vbm9TcGVjc0Nsb25lUmVwb3NpdG9yeVJlc3VsdER0bxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQFCCgoIX21lc3NhZ2UicAolTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXNwb25zZUR0bxJHCgdyZXN1bHRzGAEgAygLMjYuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDbG9uZVJlcG9zaXRvcnlSZXN1bHREdG8iTwokTW9ub1NwZWNzQ2xvbmVSZXBvc2l0b3JpZXNSZXF1ZXN0RHRvEg0KBXBhdGhzGAEgAygJEhgKEGluY2x1ZGVfb3B0aW9uYWwYAiABKAgiZQoiTW9ub1NwZWNzUmVtb3ZlQ2hlY2tvdXRSZXNwb25zZUR0bxIMCgRwYXRoGAEgASgJEg8KB3JlbW92ZWQYAiABKAgSFAoHbWVzc2FnZRgDIAEoCUgAiAEBQgoKCF9tZXNzYWdlIoQCCiNVcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVxdWVzdER0bxIPCgd2ZXJzaW9uGAEgASgJEhYKDnJlcG9fZGlyZWN0b3J5GAIgASgJEhsKE2NvbW1pdF93aGVuX2FyY2hpdmUYAyABKAgSSwoMcmVwb3NpdG9yaWVzGAQgAygLMjUuaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NNYW5hZ2VtZW50UmVwb3NpdG9yeUR0bxJKCghtZXRhZGF0YRgFIAMoCzI4LmhhZ2ljb2RlLnByb2plY3QudjEuTW9ub1NwZWNzTWFuYWdlbWVudE1ldGFkYXRhRW50cnlEdG8inQEKGFByb2plY3REZXNpZ25Eb2N1bWVudER0bxIMCgRwYXRoGAEgASgJEhwKD3JlcG9zaXRvcnlfcGF0aBgCIAEoCUgAiAEBEg8KB2NvbnRlbnQYAyABKAkSDgoGZXhpc3RzGAQgASgIEhQKB3ZlcnNpb24YBSABKAlIAYgBAUISChBfcmVwb3NpdG9yeV9wYXRoQgoKCF92ZXJzaW9uIoYBCiJTYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzdWx0RHRvEgwKBHBhdGgYASABKAkSHAoPcmVwb3NpdG9yeV9wYXRoGAIgASgJSACIAQESDwoHY3JlYXRlZBgDIAEoCBIPCgd2ZXJzaW9uGAQgASgJQhIKEF9yZXBvc2l0b3J5X3BhdGgingEKJVVwZGF0ZVByb2plY3REZXNpZ25Eb2N1bWVudFJlcXVlc3REdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAEgASgJSACIAQESDwoHY29udGVudBgCIAEoCRIdChBleHBlY3RlZF92ZXJzaW9uGAMgASgJSAGIAQFCEgoQX3JlcG9zaXRvcnlfcGF0aEITChFfZXhwZWN0ZWRfdmVyc2lvbiLAAQoeUHJvamVjdERlc2lnblNpdGVJbmRleEVudHJ5RHRvEgwKBHNsdWcYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHc3VtbWFyeRgDIAEoCRISCgpkZXRhaWxfdXJsGAQgASgJEhsKE2Rlc2lnbl9kb3dubG9hZF91cmwYBSABKAkSHwoXcHJldmlld19saWdodF9pbWFnZV91cmwYBiABKAkSHgoWcHJldmlld19kYXJrX2ltYWdlX3VybBgHIAEoCSK+AgoZUHJvamVjdERlc2lnblNpdGVJbmRleER0bxITCgtjYXRhbG9nX3VybBgBIAEoCRIVCg1zb3VyY2Vfc3RhdHVzGAIgASgJEhMKC2VudHJ5X2NvdW50GAMgASgFEkQKB2VudHJpZXMYBCADKAsyMy5oYWdpY29kZS5wcm9qZWN0LnYxLlByb2plY3REZXNpZ25TaXRlSW5kZXhFbnRyeUR0bxIaCg1jYWNoZV9jb250cm9sGAUgASgJSACIAQESEgoFZV90YWcYBiABKAlIAYgBARIaCg1sYXN0X21vZGlmaWVkGAcgASgJSAKIAQESFAoHZXhwaXJlcxgIIAEoCUgDiAEBQhAKDl9jYWNoZV9jb250cm9sQggKBl9lX3RhZ0IQCg5fbGFzdF9tb2RpZmllZEIKCghfZXhwaXJlcyKZAgocUHJvamVjdERlc2lnblNpdGVEb2N1bWVudER0bxIMCgRzbHVnGAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB2NvbnRlbnQYAyABKAkSEgoKZGV0YWlsX3VybBgEIAEoCRIbChNkZXNpZ25fZG93bmxvYWRfdXJsGAUgASgJEhoKDWNhY2hlX2NvbnRyb2wYBiABKAlIAIgBARISCgVlX3RhZxgHIAEoCUgBiAEBEhoKDWxhc3RfbW9kaWZpZWQYCCABKAlIAogBARIUCgdleHBpcmVzGAkgASgJSAOIAQFCEAoOX2NhY2hlX2NvbnRyb2xCCAoGX2VfdGFnQhAKDl9sYXN0X21vZGlmaWVkQgoKCF9leHBpcmVzImoKG0JyYW5jaFZhbGlkYXRpb25SZXNwb25zZUR0bxIOCgZleGlzdHMYASABKAgSEAoIaXNfdmFsaWQYAiABKAgSFAoMaXNfYXZhaWxhYmxlGAMgASgIEhMKC2JyYW5jaF9uYW1lGAQgASgJIogDChlQYXRoVmFsaWRhdGlvblJlc3BvbnNlRHRvEhAKCGlzX3ZhbGlkGAEgASgIEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXBhdGhfdHlwZRgEIAEoCUgAiAEBEiIKFWhhc19tb25vX3NwZWNzX2NvbmZpZxgFIAEoCEgBiAEBEiMKFm1vbm9fc3BlY3NfY29uZmlnX3BhdGgYBiABKAlIAogBARImChltb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5GAcgASgJSAOIAQESKwoebW9ub19zcGVjc19jb21taXRfd2hlbl9hcmNoaXZlGAggASgISASIAQFCDAoKX3BhdGhfdHlwZUIYChZfaGFzX21vbm9fc3BlY3NfY29uZmlnQhkKF19tb25vX3NwZWNzX2NvbmZpZ19wYXRoQhwKGl9tb25vX3NwZWNzX3JlcG9fZGlyZWN0b3J5QiEKH19tb25vX3NwZWNzX2NvbW1pdF93aGVuX2FyY2hpdmUiVgoKR2l0UmVwb0R0bxIMCgRuYW1lGAEgASgJEgwKBHBhdGgYAiABKAkSFQoNcmVsYXRpdmVfcGF0aBgDIAEoCRIVCg1pc19tb25vX3NwZWNzGAQgASgIIqQBChdTY2FuR2l0UmVwb3NSZXNwb25zZUR0bxI1CgxyZXBvc2l0b3JpZXMYASADKAsyHy5oYWdpY29kZS5wcm9qZWN0LnYxLkdpdFJlcG9EdG8SEwoLdG90YWxfY291bnQYAiABKAUSDwoHc3VjY2VzcxgDIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UijwEKFlNjYW5HaXRSZXBvc1JlcXVlc3REdG8SEQoJcm9vdF9wYXRoGAEgASgJEhEKCW1heF9kZXB0aBgCIAEoBRIWCg5leGNsdWRlX2hpZGRlbhgDIAEoCBIdChVtYXhfZm9sZGVyc19wZXJfbGV2ZWwYBCABKAUSGAoQZXhjbHVkZV9wYXR0ZXJucxgFIAMoCSJEChlNb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEg8KB3ZlcnNpb24YASABKAkSFgoOcmVwb19kaXJlY3RvcnkYAiABKAkikgEKHFZhbGlkYXRlTW9ub1NwZWNzUmVzcG9uc2VEdG8SEAoIaXNfdmFsaWQYASABKAgSPgoGY29uZmlnGAIgASgLMi4uaGFnaWNvZGUucHJvamVjdC52MS5Nb25vU3BlY3NDb25maWdEZXRhaWxzRHRvEhAKCHdhcm5pbmdzGAMgAygJEg4KBmVycm9ycxgEIAMoCSIzChtWYWxpZGF0ZU1vbm9TcGVjc1JlcXVlc3REdG8SFAoMcHJvamVjdF9wYXRoGAEgASgJInwKG1ZhdWx0Qm9vdHN0cmFwRGlhZ25vc3RpY0R0bxIQCghzZXZlcml0eRgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSGgoNcmVsYXRpdmVfcGF0aBgEIAEoCUgAiAEBQhAKDl9yZWxhdGl2ZV9wYXRoIt8CCgxWYXVsdEl0ZW1EdG8SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhUKDXBoeXNpY2FsX3BhdGgYBCABKAkSFAoHZ2l0X3VybBgFIAEoCUgAiAEBEjIKDmNyZWF0ZWRfYXRfdXRjGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg51cGRhdGVkX2F0X3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTwoVYm9vdHN0cmFwX2RpYWdub3N0aWNzGAggAygLMjAuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEJvb3RzdHJhcERpYWdub3N0aWNEdG8SDQoFc2NvcGUYCSABKAkSFwoKcHJvamVjdF9pZBgKIAEoCUgBiAEBQgoKCF9naXRfdXJsQg0KC19wcm9qZWN0X2lkIn4KFFZhdWx0TGlzdFJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKBWl0ZW1zGAIgAygLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8inwQKHFZzQ29kZVNlcnZlclJ1bnRpbWVTdGF0dXNEdG8SDgoGc3RhdHVzGAEgASgJEhsKE2FjdGl2ZV9jYXBhYmlsaXRpZXMYAiADKAkSEQoEaG9zdBgDIAEoCUgAiAEBEhwKD2NvbmZpZ3VyZWRfcG9ydBgEIAEoBUgBiAEBEhsKDmVmZmVjdGl2ZV9wb3J0GAUgASgFSAKIAQESFQoIYmFzZV91cmwYBiABKAlIA4gBARIWCglhdXRoX21vZGUYByABKAlIBIgBARITCgZzb3VyY2UYCCABKAlIBYgBARIVCg1zb3VyY2VfbG9ja2VkGAkgASgIEhIKCmhhc19zZWNyZXQYCiABKAgSGgoNc2VjcmV0X3NvdXJjZRgLIAEoCUgGiAEBEjkKFWxhc3RfYXR0ZW1wdGVkX2F0X3V0YxgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKbGFzdF9lcnJvchgNIAEoCUgHiAEBEhsKDnN0YXR1c19tZXNzYWdlGA4gASgJSAiIAQFCBwoFX2hvc3RCEgoQX2NvbmZpZ3VyZWRfcG9ydEIRCg9fZWZmZWN0aXZlX3BvcnRCCwoJX2Jhc2VfdXJsQgwKCl9hdXRoX21vZGVCCQoHX3NvdXJjZUIQCg5fc2VjcmV0X3NvdXJjZUINCgtfbGFzdF9lcnJvckIRCg9fc3RhdHVzX21lc3NhZ2UinAIKHVZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvEhIKCmxhdW5jaF91cmwYASABKAkSHQoQY29ubmVjdGlvbl90b2tlbhgCIAEoCUgAiAEBEhEKCW9wZW5fbW9kZRgDIAEoCRJCCgdydW50aW1lGAQgASgLMjEuaGFnaWNvZGUucHJvamVjdC52MS5Wc0NvZGVTZXJ2ZXJSdW50aW1lU3RhdHVzRHRvEhgKC2luc3RhbmNlX2lkGAUgASgJSAGIAQESMgoOZXhwaXJlc19hdF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9jb25uZWN0aW9uX3Rva2VuQg4KDF9pbnN0YW5jZV9pZCKXAgoVUHJvamVjdEdpdFdhdGNoU3RhdHVzEh4KFm1vbml0b3JlZF9yZXBvc2l0b3JpZXMYASADKAkSNAoQbGFzdF9zY2FuX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbmV4dF9zY2FuX2F0X3V0YxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGAoQcmVwb3NpdG9yeV9jb3VudBgEIAEoBRISCgppc19ydW5uaW5nGAUgASgIEiIKGm1heF9tb25pdG9yZWRfcmVwb3NpdG9yaWVzGAYgASgFEiAKGGdpdF9hdXRvX3JlZnJlc2hfZW5hYmxlZBgHIAEoCDL1GAoOUHJvamVjdFNlcnZpY2USZgoNQ3JlYXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVByb2plY3RSZXNwb25zZRJyChFDcmVhdGVEZW1vUHJvamVjdBItLmhhZ2ljb2RlLnByb2plY3QudjEuQ3JlYXRlRGVtb1Byb2plY3RSZXF1ZXN0Gi4uaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVEZW1vUHJvamVjdFJlc3BvbnNlEmYKDVVwZGF0ZVByb2plY3QSKS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVByb2plY3RSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USZgoNRGVsZXRlUHJvamVjdBIpLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlUHJvamVjdFJlcXVlc3QaKi5oYWdpY29kZS5wcm9qZWN0LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRKEAQoXR2V0UHJvamVjdFN0YW5kYXJkV29yZHMSMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RTdGFuZGFyZFdvcmRzUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFN0YW5kYXJkV29yZHNSZXNwb25zZRKiAQohR2V0UHJvamVjdFN0YW5kYXJkV29yZHNNYW5hZ2VtZW50Ej0uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXF1ZXN0Gj4uaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKlAQoiU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudBI+LmhhZ2ljb2RlLnByb2plY3QudjEuU2F2ZVByb2plY3RTdGFuZGFyZFdvcmRzTWFuYWdlbWVudFJlcXVlc3QaPy5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0U3RhbmRhcmRXb3Jkc01hbmFnZW1lbnRSZXNwb25zZRKBAQoWR2V0TW9ub1NwZWNzTWFuYWdlbWVudBIyLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0TW9ub1NwZWNzTWFuYWdlbWVudFJlcXVlc3QaMy5oYWdpY29kZS5wcm9qZWN0LnYxLkdldE1vbm9TcGVjc01hbmFnZW1lbnRSZXNwb25zZRJsCg9SZWxvYWRNb25vU3BlY3MSKy5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1JlcXVlc3QaLC5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbG9hZE1vbm9TcGVjc1Jlc3BvbnNlEo0BChpDbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllcxI2LmhhZ2ljb2RlLnByb2plY3QudjEuQ2xvbmVNb25vU3BlY3NSZXBvc2l0b3JpZXNSZXF1ZXN0GjcuaGFnaWNvZGUucHJvamVjdC52MS5DbG9uZU1vbm9TcGVjc1JlcG9zaXRvcmllc1Jlc3BvbnNlEqIBCiFSZW1vdmVNb25vU3BlY3NSZXBvc2l0b3J5Q2hlY2tvdXQSPS5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlcXVlc3QaPi5oYWdpY29kZS5wcm9qZWN0LnYxLlJlbW92ZU1vbm9TcGVjc1JlcG9zaXRvcnlDaGVja291dFJlc3BvbnNlEngKE0luaXRpYWxpemVNb25vU3BlY3MSLy5oYWdpY29kZS5wcm9qZWN0LnYxLkluaXRpYWxpemVNb25vU3BlY3NSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5Jbml0aWFsaXplTW9ub1NwZWNzUmVzcG9uc2USigEKGVVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZU1vbm9TcGVjc01hbmFnZW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5VcGRhdGVNb25vU3BlY3NNYW5hZ2VtZW50UmVzcG9uc2UShwEKGEdldFByb2plY3REZXNpZ25Eb2N1bWVudBI0LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVxdWVzdBo1LmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGVNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnQSNS5oYWdpY29kZS5wcm9qZWN0LnYxLlNhdmVQcm9qZWN0RGVzaWduRG9jdW1lbnRSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5TYXZlUHJvamVjdERlc2lnbkRvY3VtZW50UmVzcG9uc2USigEKGUdldFByb2plY3REZXNpZ25TaXRlSW5kZXgSNS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlSW5kZXhSZXF1ZXN0GjYuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZUluZGV4UmVzcG9uc2USkwEKHEdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnQSOC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3REZXNpZ25TaXRlRG9jdW1lbnRSZXF1ZXN0GjkuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0RGVzaWduU2l0ZURvY3VtZW50UmVzcG9uc2USfgoVVmFsaWRhdGVQcm9qZWN0QnJhbmNoEjEuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXF1ZXN0GjIuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RCcmFuY2hSZXNwb25zZRJ4ChNWYWxpZGF0ZVByb2plY3RQYXRoEi8uaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZVByb2plY3RQYXRoUmVxdWVzdBowLmhhZ2ljb2RlLnByb2plY3QudjEuVmFsaWRhdGVQcm9qZWN0UGF0aFJlc3BvbnNlEngKE1NjYW5HaXRSZXBvc2l0b3JpZXMSLy5oYWdpY29kZS5wcm9qZWN0LnYxLlNjYW5HaXRSZXBvc2l0b3JpZXNSZXF1ZXN0GjAuaGFnaWNvZGUucHJvamVjdC52MS5TY2FuR2l0UmVwb3NpdG9yaWVzUmVzcG9uc2UShAEKF1ZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnEjMuaGFnaWNvZGUucHJvamVjdC52MS5WYWxpZGF0ZU1vbm9TcGVjc0NvbmZpZ1JlcXVlc3QaNC5oYWdpY29kZS5wcm9qZWN0LnYxLlZhbGlkYXRlTW9ub1NwZWNzQ29uZmlnUmVzcG9uc2USbwoQR2V0UHJvamVjdFZhdWx0cxIsLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0UHJvamVjdFZhdWx0c1JlcXVlc3QaLS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFByb2plY3RWYXVsdHNSZXNwb25zZRKEAQoXT3BlblByb2plY3RJbkNvZGVTZXJ2ZXISMy5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5Qcm9qZWN0SW5Db2RlU2VydmVyUmVxdWVzdBo0LmhhZ2ljb2RlLnByb2plY3QudjEuT3BlblByb2plY3RJbkNvZGVTZXJ2ZXJSZXNwb25zZRKHAQoYR2V0UHJvamVjdEdpdFdhdGNoU3RhdHVzEjQuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXF1ZXN0GjUuaGFnaWNvZGUucHJvamVjdC52MS5HZXRQcm9qZWN0R2l0V2F0Y2hTdGF0dXNSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlByb2plY3QuVjFiBnByb3RvMw",[Ee,cr]),Zu=G(ee,1),fu=G(ee,5),Ru=G(ee,15),Eu=G(ee,17),Nu=G(ee,19),Gu=G(ee,21),Vu=G(ee,23),Wu=G(ee,25),Su=G(ee,41),vu=G(ee,50),Xu=G(ee,51),Yu=G(ee,69),Iu=G(ee,71),yu=G(ee,85),Cu=Ve(ee,0),We=q("Ch9oYWdpY29kZS9wcm9qZWN0L3YxL3ZhdWx0LnByb3RvEhNoYWdpY29kZS5wcm9qZWN0LnYxIhMKEUxpc3RWYXVsdHNSZXF1ZXN0Ik8KEkxpc3RWYXVsdHNSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0TGlzdFJlc3BvbnNlRHRvIk4KEkNyZWF0ZVZhdWx0UmVxdWVzdBI4CgRib2R5GAEgASgLMiouaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3REdG8iSAoTQ3JlYXRlVmF1bHRSZXNwb25zZRIxCgZyZXN1bHQYASABKAsyIS5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0SXRlbUR0byJaChJVcGRhdGVWYXVsdFJlcXVlc3QSCgoCaWQYASABKAkSOAoEYm9keRgCIAEoCzIqLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXF1ZXN0RHRvIkgKE1VwZGF0ZVZhdWx0UmVzcG9uc2USMQoGcmVzdWx0GAEgASgLMiEuaGFnaWNvZGUucHJvamVjdC52MS5WYXVsdEl0ZW1EdG8iPAoSRGVsZXRlVmF1bHRSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEmRlbGV0ZV9sb2NhbF9maWxlcxgCIAEoCCJSChNEZWxldGVWYXVsdFJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXNwb25zZUR0byI+ChRHZXRWYXVsdEZpbGVzUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQFCBwoFX3BhdGgiVgoVR2V0VmF1bHRGaWxlc1Jlc3BvbnNlEj0KBnJlc3VsdBgBIAEoCzItLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlTGlzdFJlc3BvbnNlRHRvIjYKGkdldFZhdWx0RmlsZVByZXZpZXdSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBHBhdGgYAiABKAkiXwobR2V0VmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlEkAKBnJlc3VsdBgBIAEoCzIwLmhhZ2ljb2RlLnByb2plY3QudjEuVmF1bHRGaWxlUHJldmlld1Jlc3BvbnNlRHRvIo4BChxPcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARInChpjdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZRgDIAEoCUgBiAEBQgcKBV9wYXRoQh0KG19jdXJyZW50X2ludGVyZmFjZV9sYW5ndWFnZSJjCh1PcGVuVmF1bHRJbkNvZGVTZXJ2ZXJSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wcm9qZWN0LnYxLlZzQ29kZVNlcnZlckxhdW5jaFJlc3BvbnNlRHRvImwKFUNyZWF0ZVZhdWx0UmVxdWVzdER0bxIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSFQoNcGh5c2ljYWxfcGF0aBgDIAEoCRIUCgdnaXRfdXJsGAQgASgJSACIAQFCCgoIX2dpdF91cmwibAoVVXBkYXRlVmF1bHRSZXF1ZXN0RHRvEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhQKB2dpdF91cmwYBCABKAlIAIgBAUIKCghfZ2l0X3VybCKdAQoWRGVsZXRlVmF1bHRSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRIPCgdkZWxldGVkGAIgASgIEiQKHGRlbGV0ZV9sb2NhbF9maWxlc19yZXF1ZXN0ZWQYAyABKAgSIwobbG9jYWxfZmlsZXNfZGVsZXRpb25fc3RhdHVzGAQgASgJEhsKE2xvY2FsX2ZpbGVzX2RlbGV0ZWQYBSABKAgizAEKEVZhdWx0RmlsZUVudHJ5RHRvEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhQKDGlzX2RpcmVjdG9yeRgDIAEoCBIRCglleHRlbnNpb24YBCABKAkSEgoKc2l6ZV9ieXRlcxgFIAEoAxI1ChFsYXN0X21vZGlmaWVkX3V0YxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRcHJldmlld19zdXBwb3J0ZWQYByABKAgimAIKGFZhdWx0RmlsZUxpc3RSZXNwb25zZUR0bxIQCgh2YXVsdF9pZBgBIAEoCRISCgp2YXVsdF9uYW1lGAIgASgJEhUKDXBoeXNpY2FsX3BhdGgYAyABKAkSDgoGc3RhdHVzGAQgASgJEhcKCmVycm9yX2NvZGUYBSABKAlIAIgBARIUCgdtZXNzYWdlGAYgASgJSAGIAQESFAoMaXNfdHJ1bmNhdGVkGAcgASgIEhgKEHRvdGFsX2ZpbGVfY291bnQYCCABKAUSNQoFaXRlbXMYCSADKAsyJi5oYWdpY29kZS5wcm9qZWN0LnYxLlZhdWx0RmlsZUVudHJ5RHRvQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIpQDChtWYXVsdEZpbGVQcmV2aWV3UmVzcG9uc2VEdG8SEAoIdmF1bHRfaWQYASABKAkSEgoKdmF1bHRfbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhUKDXJlbGF0aXZlX3BhdGgYBCABKAkSEQoJZmlsZV9uYW1lGAUgASgJEhEKCWV4dGVuc2lvbhgGIAEoCRISCgpzaXplX2J5dGVzGAcgASgDEjUKEWxhc3RfbW9kaWZpZWRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYCSABKAkSFwoKZXJyb3JfY29kZRgKIAEoCUgAiAEBEhQKB21lc3NhZ2UYCyABKAlIAYgBARIZChFwcmV2aWV3X3N1cHBvcnRlZBgMIAEoCBIZChFjb250ZW50X3RydW5jYXRlZBgNIAEoCBIUCgdjb250ZW50GA4gASgJSAKIAQFCDQoLX2Vycm9yX2NvZGVCCgoIX21lc3NhZ2VCCgoIX2NvbnRlbnQy9QUKDFZhdWx0U2VydmljZRJdCgpMaXN0VmF1bHRzEiYuaGFnaWNvZGUucHJvamVjdC52MS5MaXN0VmF1bHRzUmVxdWVzdBonLmhhZ2ljb2RlLnByb2plY3QudjEuTGlzdFZhdWx0c1Jlc3BvbnNlEmAKC0NyZWF0ZVZhdWx0EicuaGFnaWNvZGUucHJvamVjdC52MS5DcmVhdGVWYXVsdFJlcXVlc3QaKC5oYWdpY29kZS5wcm9qZWN0LnYxLkNyZWF0ZVZhdWx0UmVzcG9uc2USYAoLVXBkYXRlVmF1bHQSJy5oYWdpY29kZS5wcm9qZWN0LnYxLlVwZGF0ZVZhdWx0UmVxdWVzdBooLmhhZ2ljb2RlLnByb2plY3QudjEuVXBkYXRlVmF1bHRSZXNwb25zZRJgCgtEZWxldGVWYXVsdBInLmhhZ2ljb2RlLnByb2plY3QudjEuRGVsZXRlVmF1bHRSZXF1ZXN0GiguaGFnaWNvZGUucHJvamVjdC52MS5EZWxldGVWYXVsdFJlc3BvbnNlEmYKDUdldFZhdWx0RmlsZXMSKS5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZXNSZXF1ZXN0GiouaGFnaWNvZGUucHJvamVjdC52MS5HZXRWYXVsdEZpbGVzUmVzcG9uc2USeAoTR2V0VmF1bHRGaWxlUHJldmlldxIvLmhhZ2ljb2RlLnByb2plY3QudjEuR2V0VmF1bHRGaWxlUHJldmlld1JlcXVlc3QaMC5oYWdpY29kZS5wcm9qZWN0LnYxLkdldFZhdWx0RmlsZVByZXZpZXdSZXNwb25zZRJ+ChVPcGVuVmF1bHRJbkNvZGVTZXJ2ZXISMS5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlcXVlc3QaMi5oYWdpY29kZS5wcm9qZWN0LnYxLk9wZW5WYXVsdEluQ29kZVNlcnZlclJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUHJvamVjdC5WMWIGcHJvdG8z",[Ee,ee]),Bu=G(We,1),Fu=G(We,3),wu=G(We,5),Uu=G(We,7),Ju=G(We,9),ku=G(We,11),Ku=G(We,14),xu=G(We,15),zu=Ve(We,0),Ce=q("CitoYWdpY29kZS9jb21tdW5pdHkvdjEvc2NoZWR1bGVkX3BsYW5zLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiQwoZTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBIXCgpwcm9qZWN0X2lkGAEgASgJSACIAQFCDQoLX3Byb2plY3RfaWQiWgoaTGlzdFNjaGVkdWxlZFBsYW5zUmVzcG9uc2USPAoGcmVzdWx0GAEgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSIlChdHZXRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJYChhHZXRTY2hlZHVsZWRQbGFuUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXNwb25zZSI2CiBMaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIm0KIUxpc3RTY2hlZHVsZWRQbGFuUHJvYmxlbXNSZXNwb25zZRJICgZyZXN1bHQYASADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkRlZmluaXRpb25Qcm9ibGVtRHRvIvMBCiNMaXN0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VzUmVxdWVzdBIYCgtyYW5nZV9zdGFydBgBIAEoCUgAiAEBEhYKCXJhbmdlX2VuZBgCIAEoCUgBiAEBEh4KEWRpc3BsYXlfdGltZV96b25lGAMgASgJSAKIAQESEwoGY3Vyc29yGAQgASgJSAOIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgEiAEBQg4KDF9yYW5nZV9zdGFydEIMCgpfcmFuZ2VfZW5kQhQKEl9kaXNwbGF5X3RpbWVfem9uZUIJCgdfY3Vyc29yQg0KC19wcm9qZWN0X2lkInIKJExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VQYWdlUmVzcG9uc2UiWwoaQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSPQoEYm9keRgBIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiZwoaVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkSPQoEYm9keRgCIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuU2F2ZVJlcXVlc3QiWwobVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiKAoaRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiHQobRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlInkKIkVkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkSRwoEYm9keRgCIAEoCzI5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0ImMKI0VkaXRTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiYAokRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhoKDW9jY3VycmVuY2VfYXQYAiABKAlIAIgBAUIQCg5fb2NjdXJyZW5jZV9hdCJlCiVEZWxldGVTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuUmVzcG9uc2UiJQoXUnVuU2NoZWR1bGVkUGxhblJlcXVlc3QSCgoCaWQYASABKAkiVQoYUnVuU2NoZWR1bGVkUGxhblJlc3BvbnNlEjkKBnJlc3VsdBgBIAEoCzIpLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXNzaW9uUmVzcG9uc2VEdG8iJwoZU3RhcnRTY2hlZHVsZWRQbGFuUmVxdWVzdBIKCgJpZBgBIAEoCSJgChpTdGFydFNjaGVkdWxlZFBsYW5SZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvIigKFVNjaGVkdWxlZFBsYW5BZ2VudER0bxIPCgdoZXJvX2lkGAEgASgJImsKGVNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SEAoIc3RyYXRlZ3kYASABKAkSPAoGYWdlbnRzGAIgAygLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudER0byLgAQonU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEioKBnJ1bl9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgCIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYAyABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIuMBCh5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USLwoLb3JpZ2luYWxfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBGtpbmQYAiABKAkSUAoIb3ZlcnJpZGUYAyABKAsyPi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VPdmVycmlkZVJlc3BvbnNlEhwKD2lucHV0X2ZpbGVfcGF0aBgEIAEoCUgAiAEBQhIKEF9pbnB1dF9maWxlX3BhdGgiOAoWU2NoZWR1bGVkUGxhblJlcGVhdER0bxIMCgRydWxlGAEgASgJEhAKCHdlZWtkYXlzGAIgAygJIq8CChhTY2hlZHVsZWRQbGFuU2NoZWR1bGVEdG8SDAoEbW9kZRgBIAEoCRIqCgZydW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCXRpbWVfem9uZRgDIAEoCUgAiAEBEhcKCnN0YXJ0X2RhdGUYBCABKAlIAYgBARIVCghlbmRfZGF0ZRgFIAEoCUgCiAEBEhgKC3RpbWVfb2ZfZGF5GAYgASgJSAOIAQESPQoGcmVwZWF0GAcgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5SZXBlYXREdG9CDAoKX3RpbWVfem9uZUINCgtfc3RhcnRfZGF0ZUILCglfZW5kX2RhdGVCDgoMX3RpbWVfb2ZfZGF5IrgFChVTY2hlZHVsZWRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRINCgVzY29wZRgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEiEKFGRlZmluaXRpb25fZmlsZV9wYXRoGAUgASgJSACIAQESDAoEbmFtZRgGIAEoCRIPCgdlbmFibGVkGAcgASgIEhEKBGljb24YCCABKAlIAYgBARISCgVjb2xvchgJIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCHNjaGVkdWxlGAwgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGA0gASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVzdGF0ZRgPIAEoCRIvCgtuZXh0X3J1bl9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASSQoKZXhjZXB0aW9ucxgRIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TY2hlZHVsZWRQbGFuRXhjZXB0aW9uUmVzcG9uc2USHAoPaW5wdXRfZmlsZV9wYXRoGBIgASgJSAOIAQFCFwoVX2RlZmluaXRpb25fZmlsZV9wYXRoQgcKBV9pY29uQggKBl9jb2xvckISChBfaW5wdXRfZmlsZV9wYXRoIkcKIVNjaGVkdWxlZFBsYW5EZWZpbml0aW9uUHJvYmxlbUR0bxIRCglmaWxlX3BhdGgYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLTAQofU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIMCgRtb2RlGAEgASgJEhEKBHJ1bGUYAiABKAlIAIgBARIQCgh3ZWVrZGF5cxgDIAMoCRIXCgpzdGFydF9kYXRlGAQgASgJSAGIAQESFQoIZW5kX2RhdGUYBSABKAlIAogBARIYCgt0aW1lX29mX2RheRgGIAEoCUgDiAEBQgcKBV9ydWxlQg0KC19zdGFydF9kYXRlQgsKCV9lbmRfZGF0ZUIOCgxfdGltZV9vZl9kYXki6gMKH1NjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USDwoHcGxhbl9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEjEKDW9jY3VycmVuY2VfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBG5hbWUYBCABKAkSDAoEdHlwZRgFIAEoCRIPCgdlbmFibGVkGAYgASgIEhEKBGljb24YByABKAlIAIgBARISCgVjb2xvchgIIAEoCUgBiAEBEg0KBXN0YXRlGAkgASgJEh8KEnNjaGVkdWxlX3RpbWVfem9uZRgKIAEoCUgCiAEBEkoKCnJlY3VycmVuY2UYCyABKAsyNi5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhblJlY3VycmVuY2VSZXNwb25zZRIvCgtuZXh0X3J1bl9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLb3JpZ2luYWxfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2lzX21vZGlmaWVkGA4gASgIQgcKBV9pY29uQggKBl9jb2xvckIVChNfc2NoZWR1bGVfdGltZV96b25lIpMCCiNTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZVBhZ2VSZXNwb25zZRIvCgtyYW5nZV9zdGFydBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJcmFuZ2VfZW5kGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFkaXNwbGF5X3RpbWVfem9uZRgDIAEoCRJHCgdlbnRyaWVzGAQgAygLMjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2USGAoLbmV4dF9jdXJzb3IYBSABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3Ii0QIKGFNjaGVkdWxlZFBsYW5TYXZlUmVxdWVzdBIMCgR0eXBlGAEgASgJEhIKBXNjb3BlGAIgASgJSACIAQESDAoEbmFtZRgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhEKBGljb24YBSABKAlIAYgBARISCgVjb2xvchgGIAEoCUgCiAEBEkEKCHNjaGVkdWxlGAcgASgLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5TY2hlZHVsZUR0bxJECgphZ2VudF9wb29sGAggASgLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNjaGVkdWxlZFBsYW5BZ2VudFBvb2xEdG8SJwoHcGF5bG9hZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIICgZfc2NvcGVCBwoFX2ljb25CCAoGX2NvbG9yIo4CCiJTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZUVkaXRSZXF1ZXN0EjEKDW9jY3VycmVuY2VfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEioKBnJ1bl9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoEbmFtZRgDIAEoCUgAiAEBEkQKCmFnZW50X3Bvb2wYBCABKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2NoZWR1bGVkUGxhbkFnZW50UG9vbER0bxInCgdwYXlsb2FkGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlQgcKBV9uYW1lIs4DChJDaGF0SGVyb1N1bW1hcnlEdG8SDwoHaGVyb19pZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKDWV4ZWN1dG9yX3R5cGUYBSABKAkSGQoMYWdlbnRfY2xpX2lkGAYgASgJSAKIAQESGwoOYWdlbnRfY2xpX25hbWUYByABKAlIA4gBARIbCg5hZ2VudF9jbGlfaWNvbhgIIAEoCUgEiAEBEhUKCG1vZGVsX2lkGAkgASgJSAWIAQESFwoKbW9kZWxfbmFtZRgKIAEoCUgGiAEBEhcKCm1vZGVsX2ljb24YCyABKAlIB4gBARIiChVzZWNvbmRhcnlfbW9kZWxfbGFiZWwYDCABKAlICIgBAUIOCgxfZGVzY3JpcHRpb25CBwoFX2ljb25CDwoNX2FnZW50X2NsaV9pZEIRCg9fYWdlbnRfY2xpX25hbWVCEQoPX2FnZW50X2NsaV9pY29uQgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZUINCgtfbW9kZWxfaWNvbkIYChZfc2Vjb25kYXJ5X21vZGVsX2xhYmVsIjgKFE9wZW5TcGVjVGFza1Byb2dyZXNzEhEKCWNvbXBsZXRlZBgBIAEoBRINCgV0b3RhbBgCIAEoBSKAAgoQT3BlblNwZWNGaWxlSW5mbxIRCglmaWxlX25hbWUYASABKAkSFQoNcmVsYXRpdmVfcGF0aBgCIAEoCRIOCgZleGlzdHMYAyABKAgSEQoJZmlsZV90eXBlGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEhMKC2lzX2FyY2hpdmVkGAYgASgIEjEKDWFyY2hpdmVkX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkIKDXRhc2tfcHJvZ3Jlc3MYCCABKAsyKy5oYWdpY29kZS5jb21tdW5pdHkudjEuT3BlblNwZWNUYXNrUHJvZ3Jlc3MiXgoRT3BlblNwZWNGaWxlc0luZm8SEQoJYmFzZV9wYXRoGAEgASgJEjYKBWZpbGVzGAIgAygLMicuaGFnaWNvZGUuY29tbXVuaXR5LnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIrcLChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEkEKD29wZW5fc3BlY19maWxlcxgOIAEoCzIoLmhhZ2ljb2RlLmNvbW11bml0eS52MS5PcGVuU3BlY0ZpbGVzSW5mbxIdChVwZW5kaW5nX21lc3NhZ2VfY291bnQYDyABKAUSRQoOcXVldWVfbWVzc2FnZXMYECADKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuUXVldWVNZXNzYWdlU3VtbWFyeUR0bxIeChF3b3JraW5nX2RpcmVjdG9yeRgRIAEoCUgDiAEBEhUKCG1ldGFkYXRhGBIgASgJSASIAQESHwoSY2hhdF9leGVjdXRvcl90eXBlGBMgASgJSAWIAQESPAoJY2hhdF9oZXJvGBQgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJbChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPy5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlRXhlY3V0b3JNYXBFbnRyeRJmChhzdGFnZV9oZXJvX3NlbGVjdGlvbl9tYXAYFiADKAsyRC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblJlc3BvbnNlRHRvLlN0YWdlSGVyb1NlbGVjdGlvbk1hcEVudHJ5EiAKE3J1bnRpbWVfbW9kZWxfbGFiZWwYFyABKAlIBogBARI5ChVwcm9jZXNzaW5nX3N0YXJ0ZWRfYXQYGCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkQKDXNlc3Npb25fdXNhZ2UYGSABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJECg1ub3RpZmljYXRpb25zGBsgAygLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNlc3Npb25Ob3RpZmljYXRpb25EdG8aZAoVU3RhZ2VFeGVjdXRvck1hcEVudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5TdGFnZUV4ZWN1dG9ySW5mb0R0bzoCOAEaagoaU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSCwoDa2V5GAEgASgJEjsKBXZhbHVlGAIgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMiLgobU2NoZWR1bGVkUGxhblJ1bkFjY2VwdGVkRHRvEg8KB3BsYW5faWQYASABKAky0AsKFVNjaGVkdWxlZFBsYW5zU2VydmljZRJ5ChJMaXN0U2NoZWR1bGVkUGxhbnMSMC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5zUmVxdWVzdBoxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhbnNSZXNwb25zZRJzChBHZXRTY2hlZHVsZWRQbGFuEi4uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXF1ZXN0Gi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNjaGVkdWxlZFBsYW5SZXNwb25zZRKOAQoZTGlzdFNjaGVkdWxlZFBsYW5Qcm9ibGVtcxI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVxdWVzdBo4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5MaXN0U2NoZWR1bGVkUGxhblByb2JsZW1zUmVzcG9uc2USlwEKHExpc3RTY2hlZHVsZWRQbGFuT2NjdXJyZW5jZXMSOi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1JlcXVlc3QaOy5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlc1Jlc3BvbnNlEnwKE0NyZWF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ3JlYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE1VwZGF0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBkYXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEnwKE0RlbGV0ZVNjaGVkdWxlZFBsYW4SMS5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhblJlc3BvbnNlEpQBChtFZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOS5oYWdpY29kZS5jb21tdW5pdHkudjEuRWRpdFNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5FZGl0U2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXNwb25zZRKaAQodRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2USOy5oYWdpY29kZS5jb21tdW5pdHkudjEuRGVsZXRlU2NoZWR1bGVkUGxhbk9jY3VycmVuY2VSZXF1ZXN0GjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVNjaGVkdWxlZFBsYW5PY2N1cnJlbmNlUmVzcG9uc2UScwoQUnVuU2NoZWR1bGVkUGxhbhIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVxdWVzdBovLmhhZ2ljb2RlLmNvbW11bml0eS52MS5SdW5TY2hlZHVsZWRQbGFuUmVzcG9uc2USeQoSU3RhcnRTY2hlZHVsZWRQbGFuEjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlN0YXJ0U2NoZWR1bGVkUGxhblJlcXVlc3QaMS5oYWdpY29kZS5jb21tdW5pdHkudjEuU3RhcnRTY2hlZHVsZWRQbGFuUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,Ee]),Lu=G(Ce,1),ju=G(Ce,3),Tu=G(Ce,9),Hu=G(Ce,11),Qu=G(Ce,19),Mu=G(Ce,21),sa=G(Ce,33),Ou=Ve(Ce,0),Du=q("Ci1oYWdpY29kZS9jb21tdW5pdHkvdjEvY29tbXVuaXR5X3ByZXNldHMucHJvdG8SFWhhZ2ljb2RlLmNvbW11bml0eS52MSIdChtMaXN0Q29tbXVuaXR5UHJlc2V0c1JlcXVlc3QiYwocTGlzdENvbW11bml0eVByZXNldHNSZXNwb25zZRJDCgZyZXN1bHQYASABKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RSZXNwb25zZUR0byJmCh1JbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVxdWVzdBJFCgRib2R5GAEgASgLMjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkNvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvImwKHkluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8ifAogU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3QSEQoJcHJlc2V0X2lkGAEgASgJEkUKBGJvZHkYAiABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8ibwohU2V0Q29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRPcGVyYXRpb25SZXNwb25zZUR0byI0Ch9Vbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXF1ZXN0EhEKCXByZXNldF9pZBgBIAEoCSJuCiBVbmluc3RhbGxDb21tdW5pdHlQcmVzZXRSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0T3BlcmF0aW9uUmVzcG9uc2VEdG8iIAoeUmVmcmVzaENvbW11bml0eVByZXNldHNSZXF1ZXN0IiEKH1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UihwEKFkNvbW11bml0eVByZXNldFJpc2tEdG8SGQoRZGVjbGFyZXNfY29tbWFuZHMYASABKAgSFwoPZGVjbGFyZXNfc2tpbGxzGAIgASgIEhYKDmRlY2xhcmVzX2hvb2tzGAMgASgIEiEKGWRlY2xhcmVzX2NsaV9yZXF1aXJlbWVudHMYBCABKAgi2QQKGExvY2FsSGFnaVRhc2tMaXN0SXRlbUR0bxIRCglwcmVzZXRfaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEwoLc291cmNlX2tpbmQYBCABKAkSGQoRaW5zdGFsbGF0aW9uX2tpbmQYBSABKAkSFwoPbWFuYWdlbWVudF9raW5kGAYgASgJEiAKGGlzX3Nlc3Npb25fY3JlYXRpb25fb25seRgHIAEoCBIPCgdlbmFibGVkGAggASgIEhQKDGlzX3JlbW92YWJsZRgJIAEoCBIRCglwdWJsaXNoZXIYCiABKAkSHQoQc291cmNlX3JlZmVyZW5jZRgLIAEoCUgAiAEBEhsKDmFyY2hpdmVfc2hhMjU2GAwgASgJSAGIAQESNAoQaW5zdGFsbGVkX2F0X3V0YxgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoScmVsYXRpdmVfZGlyZWN0b3J5GA4gASgJEhgKC2Rlc2NyaXB0aW9uGA8gASgJSAKIAQESPAoFcmlza3MYECABKAsyLS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ29tbXVuaXR5UHJlc2V0Umlza0R0bxIWCglzb3VyY2VfaWQYESABKAlIA4gBARIRCgRpY29uGBIgASgJSASIAQFCEwoRX3NvdXJjZV9yZWZlcmVuY2VCEQoPX2FyY2hpdmVfc2hhMjU2Qg4KDF9kZXNjcmlwdGlvbkIMCgpfc291cmNlX2lkQgcKBV9pY29uIloKHVByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIRCgRwYXRoGAMgASgJSACIAQFCBwoFX3BhdGgiqQEKHExvY2FsSGFnaVRhc2tMaXN0UmVzcG9uc2VEdG8SPgoFaXRlbXMYASADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxIYWdpVGFza0xpc3RJdGVtRHRvEkkKC2RpYWdub3N0aWNzGAIgAygLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQbHVnaW5EaWFnbm9zdGljRHRvIqwDCh5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SEQoJcHJlc2V0X2lkGAEgASgJEhYKCW5hbWVzcGFjZRgCIAEoCUgAiAEBEg8KB3ZlcnNpb24YAyABKAkSEQoJcHVibGlzaGVyGAQgASgJEh0KEHNvdXJjZV9yZWZlcmVuY2UYBSABKAlIAYgBARIWCg5hcmNoaXZlX3NoYTI1NhgGIAEoCRI0ChBpbnN0YWxsZWRfYXRfdXRjGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJyZWxhdGl2ZV9kaXJlY3RvcnkYCCABKAkSDwoHZW5hYmxlZBgJIAEoCBI8CgVyaXNrcxgKIAEoCzItLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRSaXNrRHRvEhYKCXNvdXJjZV9pZBgLIAEoCUgCiAEBEhEKBGljb24YDCABKAlIA4gBAUIMCgpfbmFtZXNwYWNlQhMKEV9zb3VyY2VfcmVmZXJlbmNlQgwKCl9zb3VyY2VfaWRCBwoFX2ljb24ilAIKI0NvbW11bml0eVByZXNldE9wZXJhdGlvblJlc3BvbnNlRHRvEhEKCXN1Y2NlZWRlZBgBIAEoCBIWCglwcmVzZXRfaWQYAiABKAlIAIgBARISCgVlcnJvchgDIAEoCUgBiAEBEksKDGluc3RhbGxhdGlvbhgEIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Db21tdW5pdHlQcmVzZXRJbnN0YWxsYXRpb25EdG8SSQoLZGlhZ25vc3RpY3MYBSADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG9CDAoKX3ByZXNldF9pZEIICgZfZXJyb3IisgIKIENvbW11bml0eVByZXNldEluc3RhbGxSZXF1ZXN0RHRvEhYKDmFyY2hpdmVfYmFzZTY0GAEgASgJEh8KEmV4cGVjdGVkX3ByZXNldF9pZBgCIAEoCUgAiAEBEh0KEGV4cGVjdGVkX3ZlcnNpb24YAyABKAlIAYgBARIcCg9leHBlY3RlZF9zaGEyNTYYBCABKAlIAogBARIWCglwdWJsaXNoZXIYBSABKAlIA4gBARIdChBzb3VyY2VfcmVmZXJlbmNlGAYgASgJSASIAQFCFQoTX2V4cGVjdGVkX3ByZXNldF9pZEITChFfZXhwZWN0ZWRfdmVyc2lvbkISChBfZXhwZWN0ZWRfc2hhMjU2QgwKCl9wdWJsaXNoZXJCEwoRX3NvdXJjZV9yZWZlcmVuY2UiMwogQ29tbXVuaXR5UHJlc2V0RW5hYmxlZFJlcXVlc3REdG8SDwoHZW5hYmxlZBgBIAEoCDLMBQoXQ29tbXVuaXR5UHJlc2V0c1NlcnZpY2USfwoUTGlzdENvbW11bml0eVByZXNldHMSMi5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdENvbW11bml0eVByZXNldHNSZXF1ZXN0GjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RDb21tdW5pdHlQcmVzZXRzUmVzcG9uc2UShQEKFkluc3RhbGxDb21tdW5pdHlQcmVzZXQSNC5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNS5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbENvbW11bml0eVByZXNldFJlc3BvbnNlEo4BChlTZXRDb21tdW5pdHlQcmVzZXRFbmFibGVkEjcuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXF1ZXN0GjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldENvbW11bml0eVByZXNldEVuYWJsZWRSZXNwb25zZRKLAQoYVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0EjYuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbENvbW11bml0eVByZXNldFJlcXVlc3QaNy5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsQ29tbXVuaXR5UHJlc2V0UmVzcG9uc2USiAEKF1JlZnJlc2hDb21tdW5pdHlQcmVzZXRzEjUuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlJlZnJlc2hDb21tdW5pdHlQcmVzZXRzUmVxdWVzdBo2LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZWZyZXNoQ29tbXVuaXR5UHJlc2V0c1Jlc3BvbnNlQiuqAihQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuQ29tbXVuaXR5LlYxYgZwcm90bzM",[Ee]),Qn=q("CihoYWdpY29kZS9jb21tdW5pdHkvdjEvcHJlc2V0X3Rhc2tzLnByb3RvEhVoYWdpY29kZS5jb21tdW5pdHkudjEiHQobR2V0UHJlc2V0VGFza0NhdGFsb2dSZXF1ZXN0ImMKHEdldFByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDYXRhbG9nUmVzcG9uc2VEdG8ibwoiQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0byJzCiNDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRJMCgZyZXN1bHQYASABKAsyPC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tSZXNwb25zZUR0byIeChxMaXN0UHJlc2V0VGFza1NjaGVtYXNSZXF1ZXN0ImIKHUxpc3RQcmVzZXRUYXNrU2NoZW1hc1Jlc3BvbnNlEkEKBnJlc3VsdBgBIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU3VtbWFyeUR0byI0ChpHZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSJhChtHZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0byLKAQogUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDgoGc3RhdHVzGAQgASgJEhgKEHBsdWdpbl9yb290X3BhdGgYBSABKAkSSQoLZGlhZ25vc3RpY3MYBiADKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BsdWdpbkRpYWdub3N0aWNEdG8iPQodUHJlc2V0VGFza0FnZW50UmVxdWlyZW1lbnREdG8SDAoEbW9kZRgBIAEoCRIOCgZhZ2VudHMYAiADKAki6gEKFFByZXNldFRhc2tDb21tYW5kRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEg0KBWxhYmVsGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhIKBXNraWxsGAUgASgJSACIAQESEAoDdXJsGAYgASgJSAGIAQESFgoJZG9jc19zbHVnGAcgASgJSAKIAQESHQoQcHJlbHVkZV90ZW1wbGF0ZRgIIAEoCUgDiAEBQggKBl9za2lsbEIGCgRfdXJsQgwKCl9kb2NzX3NsdWdCEwoRX3ByZWx1ZGVfdGVtcGxhdGUiNgoZUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCSLMAQobUHJlc2V0VGFza0NvbW1hbmRDYXRhbG9nRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxI9Cghjb21tYW5kcxgEIAMoCzIrLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tbWFuZER0byJWChpQcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxIOCgZsZWdhY3kYASABKAkSDwoHYmluZGluZxgCIAEoCRIXCg9kaWFnbm9zdGljX2NvZGUYAyABKAkidAoWUHJlc2V0VGFza0V4ZWN1dGlvbkR0bxIWCg5zY2hlbWFfdmVyc2lvbhgBIAEoCRIQCghzdHJhdGVneRgCIAEoCRIcCg9leHRlbnNpb25fcG9pbnQYAyABKAlIAIgBAUISChBfZXh0ZW5zaW9uX3BvaW50Ip8CChlQcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEg0KBWlucHV0GAEgASgJEh0KEHByb21wdF9wYXJhbWV0ZXIYAiABKAlIAIgBARIZCgxtZXRhZGF0YV9rZXkYAyABKAlIAYgBARIQCghyZXF1aXJlZBgEIAEoCBIVCghwcm9kdWNlchgFIAEoCUgCiAEBEhcKCnZhbHVlX3R5cGUYBiABKAlIA4gBARIWCgl0cmFuc2Zvcm0YByABKAlIBIgBARIPCgdhbGlhc2VzGAggAygJQhMKEV9wcm9tcHRfcGFyYW1ldGVyQg8KDV9tZXRhZGF0YV9rZXlCCwoJX3Byb2R1Y2VyQg0KC192YWx1ZV90eXBlQgwKCl90cmFuc2Zvcm0iOAoYUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEg0KBXZhbHVlGAEgASgJEg0KBWxhYmVsGAIgASgJIt4DCiBQcmVzZXRUYXNrRmllbGRDb21wb25lbnRQcm9wc0R0bxIgChN0YXJnZXRfc2VsZWN0aW9uX2lkGAEgASgJSACIAQESFwoKZW1wdHlfdGV4dBgCIAEoCUgBiAEBEiMKFmFsbG93X291dHB1dF9zZWxlY3Rpb24YAyABKAhIAogBARIlChhyZXF1aXJlX291dHB1dF9zZWxlY3Rpb24YBCABKAhIA4gBARIYCgtlbXB0eV90aXRsZRgFIAEoCUgEiAEBEh4KEWVtcHR5X2Rlc2NyaXB0aW9uGAYgASgJSAWIAQESHQoQcmVxdWlyZWRfbWVzc2FnZRgHIAEoCUgGiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvQhYKFF90YXJnZXRfc2VsZWN0aW9uX2lkQg0KC19lbXB0eV90ZXh0QhkKF19hbGxvd19vdXRwdXRfc2VsZWN0aW9uQhsKGV9yZXF1aXJlX291dHB1dF9zZWxlY3Rpb25CDgoMX2VtcHR5X3RpdGxlQhQKEl9lbXB0eV9kZXNjcmlwdGlvbkITChFfcmVxdWlyZWRfbWVzc2FnZSL3AgoXUHJlc2V0VGFza1BhbmVsRmllbGREdG8SCgoCaWQYASABKAkSEAoIcmVuZGVyZXIYAiABKAkSEgoKaW5wdXRfdHlwZRgDIAEoCRISCgp2YWx1ZV90eXBlGAQgASgJEhIKBWxhYmVsGAUgASgJSACIAQESEQoEaGludBgGIAEoCUgBiAEBEhgKC3BsYWNlaG9sZGVyGAcgASgJSAKIAQESEAoIcmVxdWlyZWQYCCABKAgSEwoGb3V0cHV0GAkgASgJSAOIAQESGwoOc2VsZWN0aW9uX21vZGUYCiABKAlIBIgBARJQCg9jb21wb25lbnRfcHJvcHMYCyABKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkQ29tcG9uZW50UHJvcHNEdG9CCAoGX2xhYmVsQgcKBV9oaW50Qg4KDF9wbGFjZWhvbGRlckIJCgdfb3V0cHV0QhEKD19zZWxlY3Rpb25fbW9kZSJ3ChlQcmVzZXRUYXNrUGFuZWxTZWN0aW9uRHRvEgoKAmlkGAEgASgJEg4KBmxheW91dBgCIAEoCRI+CgZmaWVsZHMYAyADKAsyLi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1BhbmVsRmllbGREdG8iyQEKIVByZXNldFRhc2tQcm9tcHRWYXJpYW50U3VtbWFyeUR0bxIKCgJpZBgBIAEoCRJSCgVtYXRjaBgCIAMoCzJDLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUHJvbXB0VmFyaWFudFN1bW1hcnlEdG8uTWF0Y2hFbnRyeRpECgpNYXRjaEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi/gEKIlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SDAoEdHlwZRgBIAEoCRIWCg5kZWZhdWx0X2xvY2FsZRgCIAEoCRIZChFzdXBwb3J0ZWRfbG9jYWxlcxgDIAMoCRIRCglzZWxlY3RvcnMYBCADKAkSSgoIdmFyaWFudHMYBSADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1Byb21wdFZhcmlhbnRTdW1tYXJ5RHRvEiAKE2ZhbGxiYWNrX3ZhcmlhbnRfaWQYBiABKAlIAIgBAUIWChRfZmFsbGJhY2tfdmFyaWFudF9pZCJFChhQcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SDAoEdHlwZRgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBW5hbWVzGAMgAygJIqoDCh5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSYQoPdGl0bGVfYnlfbG9jYWxlGAQgAygLMkguaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZVJlZ2lzdHJhdGlvbkR0by5UaXRsZUJ5TG9jYWxlRW50cnkSZQoRc3VtbWFyeV9ieV9sb2NhbGUYBSADKAsySi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjZW5lUmVnaXN0cmF0aW9uRHRvLlN1bW1hcnlCeUxvY2FsZUVudHJ5Eh0KFWJhY2tncm91bmRfaW1hZ2Vfc2xvdBgGIAEoBRo0ChJUaXRsZUJ5TG9jYWxlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo2ChRTdW1tYXJ5QnlMb2NhbGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8BChJQcmVzZXRUYXNrU2NlbmVEdG8SEAoIcHJvdmlkZXIYASABKAkSGQoRZGVmYXVsdF9zY2VuZV9rZXkYAiABKAkSTAoNcmVnaXN0cmF0aW9ucxgDIAMoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NlbmVSZWdpc3RyYXRpb25EdG8ivAEKHFByZXNldFRhc2tUYXJnZXRTZWxlY3Rpb25EdG8SCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgDIAEoCRIcChRhbGxvd2VkX2FjY2Vzc190eXBlcxgEIAMoCRIOCgZvdXRwdXQYBSABKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEAoIcmVxdWlyZWQYByABKAhCDwoNX3Njb3BlX3NvdXJjZSLBCAoYUHJlc2V0VGFza0NhdGFsb2dJdGVtRHRvEgoKAmlkGAEgASgJEhAKCGdyb3VwX2lkGAIgASgJEhMKC3NvdXJjZV9raW5kGAMgASgJEg8KB3ZlcnNpb24YBCABKAkSEQoEaWNvbhgFIAEoCUgAiAEBEhQKDGRpc3BsYXlfbmFtZRgGIAEoCRINCgV0aXRsZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIVCg1kZWZhdWx0X3RpdGxlGAkgASgJEhQKDHN1Ym1pdF9sYWJlbBgKIAEoCRIYChBzdWJtaXR0aW5nX2xhYmVsGAsgASgJEhsKE2RlZmF1bHRfdGFyZ2V0X3R5cGUYDCABKAkSGwoTYWxsb3dfaGVyb19vdmVycmlkZRgNIAEoCBISCgpzb3J0X29yZGVyGA4gASgFEhkKEXN1cHBvcnRlZF9sb2NhbGVzGA8gAygJEkIKCHNlY3Rpb25zGBAgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQYW5lbFNlY3Rpb25EdG8SSwoPY29tbWFuZF9jYXRhbG9nGBEgASgLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tDb21tYW5kQ2F0YWxvZ0R0bxJOChF0YXJnZXRfc2VsZWN0aW9ucxgSIAMoCzIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrVGFyZ2V0U2VsZWN0aW9uRHRvEk8KEWFnZW50X3JlcXVpcmVtZW50GBMgASgLMjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tBZ2VudFJlcXVpcmVtZW50RHRvEkUKDHJlcXVpcmVtZW50cxgUIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnREdG8SUgoPcHJvbXB0X3N0cmF0ZWd5GBUgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tQcm9tcHRTdHJhdGVneVN1bW1hcnlEdG8SQAoJZXhlY3V0aW9uGBYgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tFeGVjdXRpb25EdG8SSAoNY29tcGF0aWJpbGl0eRgXIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ29tcGF0aWJpbGl0eUR0bxJICg5pbnB1dF9iaW5kaW5ncxgYIAMoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrSW5wdXRCaW5kaW5nRHRvEjgKBXNjZW5lGBkgASgLMikuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2VuZUR0b0IHCgVfaWNvbiKvAQocUHJlc2V0VGFza0NhdGFsb2dSZXNwb25zZUR0bxI+CgVpdGVtcxgBIAMoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrQ2F0YWxvZ0l0ZW1EdG8STwoOZGlzYWJsZWRfaXRlbXMYAiADKAsyNy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NhdGFsb2dEaXNhYmxlZEl0ZW1EdG8iSAonUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tEaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSK1AQohUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvEgwKBHR5cGUYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZwYXNzZWQYAyABKAgSDwoHbWVzc2FnZRgEIAEoCRJTCgtkaWFnbm9zdGljcxgFIAMoCzI+LmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrUmVxdWlyZW1lbnRDaGVja0RpYWdub3N0aWNEdG8iowEKJVByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVzcG9uc2VEdG8SFgoOcHJlc2V0X3Rhc2tfaWQYASABKAkSEgoKYWxsX3Bhc3NlZBgCIAEoCBJOCgxyZXF1aXJlbWVudHMYAyADKAsyOC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50Q2hlY2tJdGVtRHRvIj4KJFByZXNldFRhc2tSZXF1aXJlbWVudENoZWNrUmVxdWVzdER0bxIWCg5wcmVzZXRfdGFza19pZBgBIAEoCSLKAQoaUHJlc2V0VGFza1NjaGVtYVN1bW1hcnlEdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSEwoLc291cmNlX2tpbmQYAyABKAkSDwoHdmVyc2lvbhgEIAEoCRINCgV0aXRsZRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIUCgx0YXJnZXRfY291bnQYByABKAUSFQoNY29tbWFuZF9jb3VudBgIIAEoBRIXCg9wYXJhbWV0ZXJfY291bnQYCSABKAUieAoaUHJlc2V0VGFza1NjaGVtYUNvbW1hbmREdG8SCgoCaWQYASABKAkSEAoIZ3JvdXBfaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEAoDdXJsGAUgASgJSACIAQFCBgoEX3VybCLSAQobUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEhQKDHBhcmFtZXRlcl9pZBgBIAEoCRIWCg5zZWxlY3Rpb25fbW9kZRgCIAEoCRJACgZncm91cHMYAyADKAsyMC5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0NvbW1hbmRHcm91cER0bxJDCghjb21tYW5kcxgEIAMoCzIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hQ29tbWFuZER0byI7ChhQcmVzZXRUYXNrU2NoZW1hQWxpYXNEdG8SCwoDa2V5GAEgASgJEhIKCmRlcHJlY2F0ZWQYAiABKAgitAIKHFByZXNldFRhc2tTY2hlbWFQYXJhbWV0ZXJEdG8SCwoDa2V5GAEgASgJEg4KBm9yaWdpbhgCIAEoCRIVCghwcm9kdWNlchgDIAEoCUgAiAEBEhIKCnZhbHVlX3R5cGUYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSDQoFbGFiZWwYBiABKAkSEQoEaGludBgHIAEoCUgBiAEBEkAKB29wdGlvbnMYCCADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza0ZpZWxkT3B0aW9uRHRvEkAKB2FsaWFzZXMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUFsaWFzRHRvQgsKCV9wcm9kdWNlckIHCgVfaGludCKHAQoaUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSHAoUcHJlc2V0X3Rhc2tfaWRfZmllbGQYAyABKAkSFAoMbG9jYWxlX2ZpZWxkGAQgASgJEhcKD3JlcXVpcmVkX2ZpZWxkcxgFIAMoCSJ4CiRQcmVzZXRUYXNrU2NoZW1hU2NlbmVSZWdpc3RyYXRpb25EdG8SEQoJc2NlbmVfa2V5GAEgASgJEg0KBXRpdGxlGAIgASgJEg8KB3N1bW1hcnkYAyABKAkSHQoVYmFja2dyb3VuZF9pbWFnZV9zbG90GAQgASgFIpwBChlQcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEhAKCHByb3ZpZGVyGAEgASgJEhkKEWRlZmF1bHRfc2NlbmVfa2V5GAIgASgJElIKDXJlZ2lzdHJhdGlvbnMYAyADKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVNjZW5lUmVnaXN0cmF0aW9uRHRvIvQBChlQcmVzZXRUYXNrU2NoZW1hVGFyZ2V0RHRvEgoKAmlkGAEgASgJEgwKBGtpbmQYAiABKAkSFgoOc2VsZWN0aW9uX21vZGUYAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSHAoUYWxsb3dlZF9hY2Nlc3NfdHlwZXMYBSADKAkSGQoMc2NvcGVfc291cmNlGAYgASgJSACIAQESEwoLcmVxdWVzdF9rZXkYByABKAkSHgoRc2NvcGVfcmVxdWVzdF9rZXkYCCABKAlIAYgBAUIPCg1fc2NvcGVfc291cmNlQhQKEl9zY29wZV9yZXF1ZXN0X2tleSJ6ChhQcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SGwoTZGVmYXVsdF90YXJnZXRfdHlwZRgBIAEoCRJBCgd0YXJnZXRzGAIgAygLMjAuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlByZXNldFRhc2tTY2hlbWFUYXJnZXREdG8i4wQKG1ByZXNldFRhc2tDcmVhdGlvblNjaGVtYUR0bxIKCgJpZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEg4KBmxvY2FsZRgDIAEoCRINCgV0aXRsZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRI+CgVzY29wZRgGIAEoCzIvLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NvcGVEdG8SRAoIY29tbWFuZHMYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYUNvbW1hbmRzRHRvEkcKCnBhcmFtZXRlcnMYCCADKAsyMy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVBhcmFtZXRlckR0bxJFCgxyZXF1aXJlbWVudHMYCSADKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1JlcXVpcmVtZW50RHRvEkAKBnNjZW5lcxgKIAEoCzIwLmhhZ2ljb2RlLmNvbW11bml0eS52MS5QcmVzZXRUYXNrU2NoZW1hU2NlbmVzRHRvEkIKB3JlcXVlc3QYCyABKAsyMS5oYWdpY29kZS5jb21tdW5pdHkudjEuUHJlc2V0VGFza1NjaGVtYVJlcXVlc3REdG8SLQoMaW5wdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdleGFtcGxlGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdDKvBAoSUHJlc2V0VGFza3NTZXJ2aWNlEn8KFEdldFByZXNldFRhc2tDYXRhbG9nEjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFByZXNldFRhc2tDYXRhbG9nUmVxdWVzdBozLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrQ2F0YWxvZ1Jlc3BvbnNlEpQBChtDaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHMSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuQ2hlY2tQcmVzZXRUYXNrUmVxdWlyZW1lbnRzUmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5DaGVja1ByZXNldFRhc2tSZXF1aXJlbWVudHNSZXNwb25zZRKCAQoVTGlzdFByZXNldFRhc2tTY2hlbWFzEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkxpc3RQcmVzZXRUYXNrU2NoZW1hc1JlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuTGlzdFByZXNldFRhc2tTY2hlbWFzUmVzcG9uc2USfAoTR2V0UHJlc2V0VGFza1NjaGVtYRIxLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVxdWVzdBoyLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRQcmVzZXRUYXNrU2NoZW1hUmVzcG9uc2VCK6oCKFBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5Db21tdW5pdHkuVjFiBnByb3RvMw",[Ne,Du]),_u=G(Qn,5),Pu=G(Qn,7),$u=Ve(Qn,0),te=q("CiloYWdpY29kZS9jb21tdW5pdHkvdjEvc2tpbGxfZ2FsbGVyeS5wcm90bxIVaGFnaWNvZGUuY29tbXVuaXR5LnYxIhcKFUdldExvY2FsU2tpbGxzUmVxdWVzdCJfChZHZXRMb2NhbFNraWxsc1Jlc3BvbnNlEkUKBnJlc3VsdBgBIAEoCzI1LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8iLAocR2V0QnVpbHRJblNraWxsRGV0YWlsUmVxdWVzdBIMCgRzbHVnGAEgASgJIl0KHUdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLmNvbW11bml0eS52MS5CdWlsdEluU2tpbGxEZXRhaWxEdG8iYAoaVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QSQgoEYm9keRgBIAEoCzI0LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Vbmluc3RhbGxMb2NhbFNraWxsUmVxdWVzdER0byJiChtVbmluc3RhbGxMb2NhbFNraWxsUmVzcG9uc2USQwoGcmVzdWx0GAEgASgLMjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVuaW5zdGFsbExvY2FsU2tpbGxSZXN1bHREdG8icAoiU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBJKCgRib2R5GAEgASgLMjwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlcXVlc3REdG8icgojU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVzcG9uc2USSwoGcmVzdWx0GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0byI2ChZHZXRTa2lsbEdhbGxlcnlSZXF1ZXN0EhIKBXF1ZXJ5GAEgASgJSACIAQFCCAoGX3F1ZXJ5IlkKF0dldFNraWxsR2FsbGVyeVJlc3BvbnNlEj4KBnJlc3VsdBgBIAEoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5Ta2lsbEdhbGxlcnlSZXNwb25zZUR0byI6ChxHZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCSJdCh1HZXRTa2lsbEdhbGxlcnlEZXRhaWxSZXNwb25zZRI8CgZyZXN1bHQYASABKAsyLC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5RGV0YWlsRHRvIkIKJEdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkibQolR2V0U2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHRSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5jb21tdW5pdHkudjEuU2tpbGxHYWxsZXJ5SW5zdGFsbENvbnRleHREdG8iIQofR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdCJuCiBHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8ibgohVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0EkkKBGJvZHkYASABKAsyOy5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvInAKIlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USSgoGcmVzdWx0GAEgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyTGlzdFJlc3BvbnNlRHRvIm4KIURlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBJJCgRib2R5GAEgASgLMjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdER0byJwCiJEZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEkoKBnJlc3VsdBgBIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckxpc3RSZXNwb25zZUR0byIjCiFSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QicAoiUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8iUgoTSW5zdGFsbFNraWxsUmVxdWVzdBI7CgRib2R5GAEgASgLMi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlcXVlc3REdG8iVAoUSW5zdGFsbFNraWxsUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkluc3RhbGxTa2lsbFJlc3VsdER0byL3AQoYTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvEg8KB2VuYWJsZWQYASABKAgSFAoHdmVyc2lvbhgCIAEoCUgAiAEBEhMKBnNvdXJjZRgDIAEoCUgBiAEBEhcKCnJlcG9zaXRvcnkYBCABKAlIAogBARIQCgNyZWYYBSABKAlIA4gBARIRCgRwYXRoGAYgASgJSASIAQESGQoMY29udGVudF9oYXNoGAcgASgJSAWIAQFCCgoIX3ZlcnNpb25CCQoHX3NvdXJjZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQg8KDV9jb250ZW50X2hhc2givAIKI0xvY2FsU2tpbGxNYW5hZ2VkSW5zdGFsbE1ldGFkYXRhRHRvEhYKDnNjaGVtYV92ZXJzaW9uGAEgASgFEhAKCHNraWxsX2lkGAIgASgJEg4KBnNvdXJjZRgDIAEoCRISCgpza2lsbF9zbHVnGAQgASgJEhQKB3ZlcnNpb24YBSABKAlIAIgBARIhChRub3JtYWxpemVkX3NraWxsX2tleRgGIAEoCUgBiAEBEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSAKIAQESMwoPcmVjb3JkZWRfYXRfdXRjGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfdmVyc2lvbkIXChVfbm9ybWFsaXplZF9za2lsbF9rZXlCFAoSX2luc3RhbGxfcmVmZXJlbmNlIosCChFMb2NhbFNraWxsSXRlbUR0bxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXNjb3BlGAMgASgJEgwKBHBhdGgYBCABKAkSDgoGYWdlbnRzGAUgAygJElwKGG1hbmFnZWRfaW5zdGFsbF9tZXRhZGF0YRgGIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5Mb2NhbFNraWxsTWFuYWdlZEluc3RhbGxNZXRhZGF0YUR0bxIOCgZvcmlnaW4YByABKAkSQQoIYnVpbHRfaW4YCCABKAsyLy5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEJ1aWx0SW5JbmZvRHRvIo8BCh5Mb2NhbFNraWxsSW52ZW50b3J5UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNwoFaXRlbXMYAiADKAsyKC5oYWdpY29kZS5jb21tdW5pdHkudjEuTG9jYWxTa2lsbEl0ZW1EdG8isQEKG0J1aWx0SW5Ta2lsbERldGFpbFNvdXJjZUR0bxIRCgR0eXBlGAEgASgJSACIAQESFwoKcmVwb3NpdG9yeRgCIAEoCUgBiAEBEhAKA3JlZhgDIAEoCUgCiAEBEhEKBHBhdGgYBCABKAlIA4gBARIQCgN1cmwYBSABKAlIBIgBAUIHCgVfdHlwZUINCgtfcmVwb3NpdG9yeUIGCgRfcmVmQgcKBV9wYXRoQgYKBF91cmwiPAoYQnVpbHRJblNraWxsRmlsZUVudHJ5RHRvEgwKBHBhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAyI5ChtCdWlsdEluU2tpbGxNZXRhZGF0YVBhaXJEdG8SCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJIo4EChVCdWlsdEluU2tpbGxEZXRhaWxEdG8SDAoEc2x1ZxgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhQKB3ZlcnNpb24YBCABKAlIAIgBARIPCgdlbmFibGVkGAUgASgIEkQKCG1ldGFkYXRhGAYgAygLMjIuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbE1ldGFkYXRhUGFpckR0bxJCCgZzb3VyY2UYByABKAsyMi5oYWdpY29kZS5jb21tdW5pdHkudjEuQnVpbHRJblNraWxsRGV0YWlsU291cmNlRHRvEhkKDGNvbnRlbnRfaGFzaBgIIAEoCUgBiAEBEj4KBWZpbGVzGAkgAygLMi8uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkJ1aWx0SW5Ta2lsbEZpbGVFbnRyeUR0bxISCgpmaWxlX2NvdW50GAogASgFEhgKEHRvdGFsX3NpemVfYnl0ZXMYCyABKAMSFwoPZmlsZXNfdHJ1bmNhdGVkGAwgASgIEhUKDWxpY2Vuc2VfZmlsZXMYDSADKAkSDAoEYm9keRgOIAEoCRIWCg5ib2R5X3RydW5jYXRlZBgPIAEoCBIXCg9ib2R5X3NpemVfYnl0ZXMYECABKANCCgoIX3ZlcnNpb25CDwoNX2NvbnRlbnRfaGFzaCLXAQocVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3VsdER0bxISCgpza2lsbF9uYW1lGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIZCgx1c2VyX21lc3NhZ2UYAyABKAlIAIgBARIfChJkaWFnbm9zdGljX21lc3NhZ2UYBCABKAlIAYgBARIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3VzZXJfbWVzc2FnZUIVChNfZGlhZ25vc3RpY19tZXNzYWdlIjMKHVVuaW5zdGFsbExvY2FsU2tpbGxSZXF1ZXN0RHRvEhIKCnNraWxsX25hbWUYASABKAkivAEKJFNldEJ1aWx0SW5Ta2lsbEF2YWlsYWJpbGl0eVJlc3VsdER0bxIMCgRzbHVnGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEQoJc3VjY2VlZGVkGAMgASgIEhkKDHVzZXJfbWVzc2FnZRgEIAEoCUgAiAEBEh8KEmRpYWdub3N0aWNfbWVzc2FnZRgFIAEoCUgBiAEBQg8KDV91c2VyX21lc3NhZ2VCFQoTX2RpYWdub3N0aWNfbWVzc2FnZSJGCiVTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXF1ZXN0RHRvEgwKBHNsdWcYASABKAkSDwoHZW5hYmxlZBgCIAEoCCKlAgoiU2tpbGxHYWxsZXJ5UmVwb3NpdG9yeURpc2NvdmVyeUR0bxIMCgRtb2RlGAEgASgJEhwKD3JlcXVlc3RlZF9xdWVyeRgCIAEoCUgAiAEBEh4KEW5vcm1hbGl6ZWRfc291cmNlGAMgASgJSAGIAQESGwoOcmVwb3NpdG9yeV91cmwYBCABKAlIAogBARIPCgdvdXRjb21lGAUgASgJEhcKCmVycm9yX2NvZGUYBiABKAlIA4gBARIUCgdtZXNzYWdlGAcgASgJSASIAQFCEgoQX3JlcXVlc3RlZF9xdWVyeUIUChJfbm9ybWFsaXplZF9zb3VyY2VCEQoPX3JlcG9zaXRvcnlfdXJsQg0KC19lcnJvcl9jb2RlQgoKCF9tZXNzYWdlIuYBCiNUcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSHgoRbWF0Y2hlZF9ydWxlX3R5cGUYBCABKAlIAIgBARIfChJtYXRjaGVkX3J1bGVfdmFsdWUYBSABKAlIAYgBARIRCglpc19wcmVzZXQYBiABKAhCFAoSX21hdGNoZWRfcnVsZV90eXBlQhUKE19tYXRjaGVkX3J1bGVfdmFsdWUiwwEKFFNraWxsR2FsbGVyeVNraWxsRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc291cmNlGAMgASgJEhAKCGluc3RhbGxzGAQgASgFEhkKEWlzX3RydXN0ZWRfc291cmNlGAUgASgIElQKEHRydXN0ZWRfcHJvdmlkZXIYBiABKAsyOi5oYWdpY29kZS5jb21tdW5pdHkudjEuVHJ1c3RlZFNraWxsUHJvdmlkZXJUcnVzdFN1bW1hcnlEdG8i5AEKF1NraWxsR2FsbGVyeVJlc3BvbnNlRHRvEjQKEGdlbmVyYXRlZF9hdF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKBWl0ZW1zGAIgAygLMisuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVNraWxsRHRvElcKFHJlcG9zaXRvcnlfZGlzY292ZXJ5GAMgASgLMjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlNraWxsR2FsbGVyeVJlcG9zaXRvcnlEaXNjb3ZlcnlEdG8i7AUKFVNraWxsR2FsbGVyeURldGFpbER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhwKD3JlcG9zaXRvcnlfbmFtZRgFIAEoCUgBiAEBEiEKFHJlcG9zaXRvcnlfZnVsbF9uYW1lGAYgASgJSAKIAQESGwoOcmVwb3NpdG9yeV91cmwYByABKAlIA4gBARImChlyZXBvc2l0b3J5X2RlZmF1bHRfYnJhbmNoGAggASgJSASIAQESHwoScmVwb3NpdG9yeV9wcml2YXRlGAkgASgISAWIAQESFgoOaXNfaW5zdGFsbGFibGUYCiABKAgSGQoRaXNfdHJ1c3RlZF9zb3VyY2UYCyABKAgSVAoQdHJ1c3RlZF9wcm92aWRlchgMIAEoCzI6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlclRydXN0U3VtbWFyeUR0bxIeChFpbnN0YWxsX3JlZmVyZW5jZRgNIAEoCUgGiAEBEiQKF2luc3RhbGxfY29tbWFuZF9wcmV2aWV3GA4gASgJSAeIAQESHAoPaW5zdGFsbF92ZXJzaW9uGA8gASgJSAiIAQESGQoMaW5zdGFsbF9oaW50GBAgASgJSAmIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9yZXBvc2l0b3J5X25hbWVCFwoVX3JlcG9zaXRvcnlfZnVsbF9uYW1lQhEKD19yZXBvc2l0b3J5X3VybEIcChpfcmVwb3NpdG9yeV9kZWZhdWx0X2JyYW5jaEIVChNfcmVwb3NpdG9yeV9wcml2YXRlQhQKEl9pbnN0YWxsX3JlZmVyZW5jZUIaChhfaW5zdGFsbF9jb21tYW5kX3ByZXZpZXdCEgoQX2luc3RhbGxfdmVyc2lvbkIPCg1faW5zdGFsbF9oaW50Iq4DCh1Ta2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIWCg5pc19pbnN0YWxsYWJsZRgEIAEoCBIZChFpc190cnVzdGVkX3NvdXJjZRgFIAEoCBJUChB0cnVzdGVkX3Byb3ZpZGVyGAYgASgLMjouaGFnaWNvZGUuY29tbXVuaXR5LnYxLlRydXN0ZWRTa2lsbFByb3ZpZGVyVHJ1c3RTdW1tYXJ5RHRvEh4KEWluc3RhbGxfcmVmZXJlbmNlGAcgASgJSACIAQESJAoXaW5zdGFsbF9jb21tYW5kX3ByZXZpZXcYCCABKAlIAYgBARIcCg9pbnN0YWxsX3ZlcnNpb24YCSABKAlIAogBARIZCgxpbnN0YWxsX2hpbnQYCiABKAlIA4gBAUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCGgoYX2luc3RhbGxfY29tbWFuZF9wcmV2aWV3QhIKEF9pbnN0YWxsX3ZlcnNpb25CDwoNX2luc3RhbGxfaGludCJFCiBUcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0bxISCgptYXRjaF90eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIo8CChdUcnVzdGVkU2tpbGxQcm92aWRlckR0bxITCgtwcm92aWRlcl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLYmFkZ2VfbGFiZWwYAyABKAkSEQoJaXNfcHJlc2V0GAQgASgIEhIKCmlzX2VuYWJsZWQYBSABKAgSEgoKc29ydF9vcmRlchgGIAEoBRISCgpydWxlX2NvdW50GAcgASgFEhcKD3NvdXJjZV9leGFtcGxlcxgIIAMoCRJMCgttYXRjaF9ydWxlcxgJIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0byKrAQojVHJ1c3RlZFNraWxsUHJvdmlkZXJMaXN0UmVzcG9uc2VEdG8SNAoQZ2VuZXJhdGVkX2F0X3V0YxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmVyc2lvbhgCIAEoBRI9CgVpdGVtcxgDIAMoCzIuLmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlckR0byLxAQokVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtiYWRnZV9sYWJlbBgDIAEoCUgAiAEBEhIKCmlzX2VuYWJsZWQYBCABKAgSEgoKc29ydF9vcmRlchgFIAEoBRJMCgttYXRjaF9ydWxlcxgGIAMoCzI3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5UcnVzdGVkU2tpbGxQcm92aWRlck1hdGNoUnVsZUR0b0IOCgxfYmFkZ2VfbGFiZWwiOwokRGVsZXRlVHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0RHRvEhMKC3Byb3ZpZGVyX2lkGAEgASgJIrgDChVJbnN0YWxsU2tpbGxSZXN1bHREdG8SEAoIc2tpbGxfaWQYASABKAkSDgoGc291cmNlGAIgASgJEhIKCnNraWxsX3NsdWcYAyABKAkSIQoUbm9ybWFsaXplZF9za2lsbF9rZXkYBCABKAlIAIgBARIeChFpbnN0YWxsX3JlZmVyZW5jZRgFIAEoCUgBiAEBEhwKD2NvbW1hbmRfcHJldmlldxgGIAEoCUgCiAEBEhQKB3ZlcnNpb24YByABKAlIA4gBARIOCgZzdGF0dXMYCCABKAkSGQoMdXNlcl9tZXNzYWdlGAkgASgJSASIAQESHwoSZGlhZ25vc3RpY19tZXNzYWdlGAogASgJSAWIAQESLwoLb2NjdXJyZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9ub3JtYWxpemVkX3NraWxsX2tleUIUChJfaW5zdGFsbF9yZWZlcmVuY2VCEgoQX2NvbW1hbmRfcHJldmlld0IKCghfdmVyc2lvbkIPCg1fdXNlcl9tZXNzYWdlQhUKE19kaWFnbm9zdGljX21lc3NhZ2UiagoWSW5zdGFsbFNraWxsUmVxdWVzdER0bxIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSEgoKc2tpbGxfc2x1ZxgDIAEoCRIUCgd2ZXJzaW9uGAQgASgJSACIAQFCCgoIX3ZlcnNpb24y5QwKE1NraWxsR2FsbGVyeVNlcnZpY2USbQoOR2V0TG9jYWxTa2lsbHMSLC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0TG9jYWxTa2lsbHNSZXF1ZXN0Gi0uaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldExvY2FsU2tpbGxzUmVzcG9uc2USggEKFUdldEJ1aWx0SW5Ta2lsbERldGFpbBIzLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRCdWlsdEluU2tpbGxEZXRhaWxSZXF1ZXN0GjQuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldEJ1aWx0SW5Ta2lsbERldGFpbFJlc3BvbnNlEnwKE1VuaW5zdGFsbExvY2FsU2tpbGwSMS5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsTG9jYWxTa2lsbFJlcXVlc3QaMi5oYWdpY29kZS5jb21tdW5pdHkudjEuVW5pbnN0YWxsTG9jYWxTa2lsbFJlc3BvbnNlEpQBChtTZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHkSOS5oYWdpY29kZS5jb21tdW5pdHkudjEuU2V0QnVpbHRJblNraWxsQXZhaWxhYmlsaXR5UmVxdWVzdBo6LmhhZ2ljb2RlLmNvbW11bml0eS52MS5TZXRCdWlsdEluU2tpbGxBdmFpbGFiaWxpdHlSZXNwb25zZRJwCg9HZXRTa2lsbEdhbGxlcnkSLS5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5UmVxdWVzdBouLmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlSZXNwb25zZRKCAQoVR2V0U2tpbGxHYWxsZXJ5RGV0YWlsEjMuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeURldGFpbFJlcXVlc3QaNC5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0U2tpbGxHYWxsZXJ5RGV0YWlsUmVzcG9uc2USmgEKHUdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0EjsuaGFnaWNvZGUuY29tbXVuaXR5LnYxLkdldFNraWxsR2FsbGVyeUluc3RhbGxDb250ZXh0UmVxdWVzdBo8LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRTa2lsbEdhbGxlcnlJbnN0YWxsQ29udGV4dFJlc3BvbnNlEosBChhHZXRUcnVzdGVkU2tpbGxQcm92aWRlcnMSNi5oYWdpY29kZS5jb21tdW5pdHkudjEuR2V0VHJ1c3RlZFNraWxsUHJvdmlkZXJzUmVxdWVzdBo3LmhhZ2ljb2RlLmNvbW11bml0eS52MS5HZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRKRAQoaVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXISOC5oYWdpY29kZS5jb21tdW5pdHkudjEuVXBzZXJ0VHJ1c3RlZFNraWxsUHJvdmlkZXJSZXF1ZXN0GjkuaGFnaWNvZGUuY29tbXVuaXR5LnYxLlVwc2VydFRydXN0ZWRTa2lsbFByb3ZpZGVyUmVzcG9uc2USkQEKGkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyEjguaGFnaWNvZGUuY29tbXVuaXR5LnYxLkRlbGV0ZVRydXN0ZWRTa2lsbFByb3ZpZGVyUmVxdWVzdBo5LmhhZ2ljb2RlLmNvbW11bml0eS52MS5EZWxldGVUcnVzdGVkU2tpbGxQcm92aWRlclJlc3BvbnNlEpEBChpSZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVycxI4LmhhZ2ljb2RlLmNvbW11bml0eS52MS5SZXNldFRydXN0ZWRTa2lsbFByb3ZpZGVyc1JlcXVlc3QaOS5oYWdpY29kZS5jb21tdW5pdHkudjEuUmVzZXRUcnVzdGVkU2tpbGxQcm92aWRlcnNSZXNwb25zZRJnCgxJbnN0YWxsU2tpbGwSKi5oYWdpY29kZS5jb21tdW5pdHkudjEuSW5zdGFsbFNraWxsUmVxdWVzdBorLmhhZ2ljb2RlLmNvbW11bml0eS52MS5JbnN0YWxsU2tpbGxSZXNwb25zZUIrqgIoUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLkNvbW11bml0eS5WMWIGcHJvdG8z",[Ee]),qu=G(te,1),ed=G(te,5),td=G(te,7),nd=G(te,9),od=G(te,11),ad=G(te,15),rd=G(te,17),id=G(te,19),sd=G(te,21),ld=G(te,23),cd=G(te,33),ud=G(te,35),dd=G(te,45),md=G(te,46),hd=G(te,48),bd=Ve(te,0),Lr=q("CiVoYWdpY29kZS9wbGF0Zm9ybS92MS9zdGF0aXN0aWNzLnByb3RvEhRoYWdpY29kZS5wbGF0Zm9ybS52MSJ1ChhHZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QSFQoNZm9yY2VfcmVmcmVzaBgBIAEoCBIlChhnaXRfYXV0b19yZWZyZXNoX2VuYWJsZWQYAiABKAhIAIgBAUIbChlfZ2l0X2F1dG9fcmVmcmVzaF9lbmFibGVkIl0KGUdldEFnZ3JlZ2F0ZWREYXRhUmVzcG9uc2USQAoGcmVzdWx0GAEgASgLMjAuaGFnaWNvZGUucGxhdGZvcm0udjEuRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8iHQobR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0ImIKHEdldFRva2VuTW9uaXRvclVzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5Nb25pdG9yVXNhZ2VTbmFwc2hvdER0byIlCiNHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVxdWVzdCJgCiRHZXRUb2tlblRocm91Z2hwdXRTdGF0aXN0aWNzUmVzcG9uc2USOAoGcmVzdWx0GAEgASgLMiguaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0RHRvIkQKIEdldFRva2VuVGhyb3VnaHB1dEhpc3RvcnlSZXF1ZXN0EhQKB21pbnV0ZXMYASABKAVIAIgBAUIKCghfbWludXRlcyJiCiFHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USPQoGcmVzdWx0GAEgAygLMi0uaGFnaWNvZGUucGxhdGZvcm0udjEuVG9rZW5UaHJvdWdocHV0U25hcHNob3QiOAoaR2V0SGVyb0JhdHRsZVJlcG9ydFJlcXVlc3QSEQoEZGF0ZRgBIAEoCUgAiAEBQgcKBV9kYXRlIlgKG0dldEhlcm9CYXR0bGVSZXBvcnRSZXNwb25zZRI5CgZyZXN1bHQYASABKAsyKS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0RHRvIkAKIEdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXF1ZXN0EhIKBXJhbmdlGAEgASgJSACIAQFCCAoGX3JhbmdlImcKIUdldEhhZ2lwb3dlckhpc3RvcnlSZXBvcnRSZXNwb25zZRJCCgZyZXN1bHQYASABKAsyMi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzUmVwb3J0RHRvIuwCChxHZXRIaXN0b3JpY2FsVGltZWxpbmVSZXF1ZXN0EhgKC2VudGl0eV90eXBlGAEgASgJSACIAQESFgoJZW50aXR5X2lkGAIgASgJSAGIAQESFwoKcHJvamVjdF9pZBgDIAEoCUgCiAEBEhcKCnNlc3Npb25faWQYBCABKAlIA4gBARIzCg9yYW5nZV9zdGFydF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBmN1cnNvchgHIAEoCUgEiAEBEhYKCXBhZ2Vfc2l6ZRgIIAEoBUgFiAEBQg4KDF9lbnRpdHlfdHlwZUIMCgpfZW50aXR5X2lkQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19jdXJzb3JCDAoKX3BhZ2Vfc2l6ZSJpCh1HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRJICgZyZXN1bHQYASABKAsyOC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVRdWVyeVJlc3BvbnNlRHRvIiUKI0dldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0InIKJEdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8iqgEKFkFnZ3JlZ2F0aW9uTWV0YWRhdGFEdG8SLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg50b3RhbF9wcm9qZWN0cxgCIAEoBRIaChJ0b3RhbF9yZXBvc2l0b3JpZXMYAyABKAUSFwoPZmFpbGVkX3Byb2plY3RzGAQgASgFEhQKDGhhc19mYWlsdXJlcxgFIAEoCCKyBQoYUmVwb3NpdG9yeUFnZ3JlZ2F0aW9uRHRvEhEKBGNvZGUYASABKAlIAIgBARIMCgRuYW1lGAIgASgJEgwKBHBhdGgYAyABKAkSFQoNcmVsYXRpdmVfcGF0aBgEIAEoCRIUCgxkaXNwbGF5X25hbWUYBSABKAkSEQoEdHlwZRgGIAEoCUgBiAEBEgwKBHRhZ3MYByADKAkSEQoEaWNvbhgIIAEoCUgCiAEBEhAKA3VybBgJIAEoCUgDiAEBEhgKEGNvbGxhcHNlX3RvX21vcmUYCiABKAgSGQoRaXNfdmFsaWRfZ2l0X3JlcG8YCyABKAgSHAoUZ2l0X3N0YXR1c19hdmFpbGFibGUYDCABKAgSEwoGYnJhbmNoGA0gASgJSASIAQESHwoXaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMYDiABKAgSHQoVdW5wdXNoZWRfY29tbWl0X2NvdW50GA8gASgFEhsKE2hhc190cmFja2luZ19icmFuY2gYECABKAgSNQoPdHJhY2tpbmdfYnJhbmNoGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEhMKC2FoZWFkX2NvdW50GBIgASgFEhQKDGJlaGluZF9jb3VudBgTIAEoBRIXCgpzeW5jX3N0YXRlGBQgASgJSAWIAQESEwoLaXNfb3B0aW9uYWwYFSABKAgSFAoMaXNfc2FuaXRpemVkGBYgASgIEhsKE3Nhbml0aXphdGlvbl9yZWFzb24YFyABKAkSGAoQaGFzX25hbWVfd2FybmluZxgYIAEoCBIVCg1uYW1lX3dhcm5pbmdzGBkgAygJQgcKBV9jb2RlQgcKBV90eXBlQgcKBV9pY29uQgYKBF91cmxCCQoHX2JyYW5jaEINCgtfc3luY19zdGF0ZSK6BAoVUHJvamVjdEFnZ3JlZ2F0aW9uRHRvEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcGF0aBgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEhUKDWlzX21vbm9fc3BlY3MYBSABKAgSHwoSbW9ub19zcGVjc192ZXJzaW9uGAYgASgJSAGIAQESJgoZbW9ub19zcGVjc19yZXBvX2RpcmVjdG9yeRgHIAEoCUgCiAEBEisKHm1vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZRgIIAEoCEgDiAEBEkQKDHJlcG9zaXRvcmllcxgJIAMoCzIuLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLlJlcG9zaXRvcnlBZ2dyZWdhdGlvbkR0bxJBCh1naXRfc25hcHNob3RfcmVmcmVzaGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoZZ2l0X3NuYXBzaG90X3NlcnZlZF9zdGFsZRgLIAEoCBIrCgVlcnJvchgMIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIRCgloYXNfZXJyb3IYDSABKAhCDgoMX2Rlc2NyaXB0aW9uQhUKE19tb25vX3NwZWNzX3ZlcnNpb25CHAoaX21vbm9fc3BlY3NfcmVwb19kaXJlY3RvcnlCIQofX21vbm9fc3BlY3NfY29tbWl0X3doZW5fYXJjaGl2ZSKbAQoaRGF0YUFnZ3JlZ2F0aW9uUmVzcG9uc2VEdG8SPQoIcHJvamVjdHMYASADKAsyKy5oYWdpY29kZS5wbGF0Zm9ybS52MS5Qcm9qZWN0QWdncmVnYXRpb25EdG8SPgoIbWV0YWRhdGEYAiABKAsyLC5oYWdpY29kZS5wbGF0Zm9ybS52MS5BZ2dyZWdhdGlvbk1ldGFkYXRhRHRvIq0CChxUb2tlbk1vbml0b3JVc2FnZVNuYXBzaG90RHRvEg4KBnN0YXR1cxgBIAEoCRIOCgZzb3VyY2UYAiABKAkSGwoOZmFpbHVyZV9yZWFzb24YAyABKAlIAIgBARIVCghkYXRlX2tleRgEIAEoCUgBiAEBEhkKDHRvdGFsX3Rva2VucxgFIAEoA0gCiAEBEhUKCGNvc3RfdXNkGAYgASgBSAOIAQESLwoLcmVhZF9hdF91dGMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhgKEHNuYXBzaG90X3ZlcnNpb24YCCABKANCEQoPX2ZhaWx1cmVfcmVhc29uQgsKCV9kYXRlX2tleUIPCg1fdG90YWxfdG9rZW5zQgsKCV9jb3N0X3VzZCLYAgoSVG9rZW5UaHJvdWdocHV0RHRvEh8KF2lucHV0X3Rva2Vuc19wZXJfbWludXRlGAEgASgFEiAKGG91dHB1dF90b2tlbnNfcGVyX21pbnV0ZRgCIAEoBRIaChJ0b3RhbF9pbnB1dF90b2tlbnMYAyABKAMSGwoTdG90YWxfb3V0cHV0X3Rva2VucxgEIAEoAxIwCgxsYXN0X3VwZGF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEicKH3JlZ3VsYXJfaW5wdXRfdG9rZW5zX3Blcl9taW51dGUYBiABKAUSJQodY2FjaGVfaW5wdXRfdG9rZW5zX3Blcl9taW51dGUYByABKAUSIgoadG90YWxfcmVndWxhcl9pbnB1dF90b2tlbnMYCCABKAMSIAoYdG90YWxfY2FjaGVfaW5wdXRfdG9rZW5zGAkgASgDIq8BChdUb2tlblRocm91Z2hwdXRTbmFwc2hvdBItCgl0aW1lc3RhbXAYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhQKDGlucHV0X3Rva2VucxgCIAEoBRIVCg1vdXRwdXRfdG9rZW5zGAMgASgFEhwKFHJlZ3VsYXJfaW5wdXRfdG9rZW5zGAQgASgFEhoKEmNhY2hlX2lucHV0X3Rva2VucxgFIAEoBSLgAQosSGVyb0JhdHRsZVJlcG9ydExhdGVzdFVubG9ja2VkQWNoaWV2ZW1lbnREdG8SFQoNY2Fub25pY2FsX2tleRgBIAEoCRIQCghuYW1lX2tleRgCIAEoCRITCgtzb3VyY2Vfa2luZBgDIAEoCRIzCg91bmxvY2tlZF9hdF91dGMYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDnByb2dyZXNzX2FmdGVyGAUgASgFEg4KBnRhcmdldBgGIAEoBRIVCg1yZXdhcmRfYW1vdW50GAcgASgDIrsBCilIZXJvQmF0dGxlUmVwb3J0UGVuZGluZ0FjaGlldmVtZW50SGludER0bxIVCg1jYW5vbmljYWxfa2V5GAEgASgJEhAKCG5hbWVfa2V5GAIgASgJEhEKCWdvYWxfdHlwZRgDIAEoCRIQCghwcm9ncmVzcxgEIAEoBRIOCgZ0YXJnZXQYBSABKAUSFwoPcmVtYWluaW5nX2NvdW50GAYgASgFEhcKD2NvbXBsZXRpb25fcmF0ZRgHIAEoASK9AgolSGVyb0JhdHRsZVJlcG9ydEFjaGlldmVtZW50U3VtbWFyeUR0bxIYChBoYXNfYXJjaGl2ZV9kYXRhGAEgASgIEhcKD2NvbXBsZXRlZF9jb3VudBgCIAEoBRITCgt0b3RhbF9jb3VudBgDIAEoBRIXCg9jb21wbGV0aW9uX3JhdGUYBCABKAESWwoPbGF0ZXN0X3VubG9ja2VkGAUgASgLMkIuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydExhdGVzdFVubG9ja2VkQWNoaWV2ZW1lbnREdG8SVgoNcGVuZGluZ19oaW50cxgGIAMoCzI/LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQZW5kaW5nQWNoaWV2ZW1lbnRIaW50RHRvIvQCCiNIZXJvQmF0dGxlUmVwb3J0SGlnaGxpZ2h0U2Vzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESGQoMc2Vzc2lvbl9jb2RlGAMgASgJSAGIAQESGQoMc2Vzc2lvbl90eXBlGAQgASgJSAKIAQESGgoNcHJvcG9zYWxfbmFtZRgFIAEoCUgDiAEBEhYKDmFjdGl2aXR5X2NvdW50GAYgASgFEiIKGmNvbXBsZXRlZF9hc3Npc3RhbmNlX2NvdW50GAcgASgFEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAggASgFEjgKFGxhc3RfYWN0aXZpdHlfYXRfdXRjGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIICgZfdGl0bGVCDwoNX3Nlc3Npb25fY29kZUIPCg1fc2Vzc2lvbl90eXBlQhAKDl9wcm9wb3NhbF9uYW1lIqcDCiJIZXJvQmF0dGxlUmVwb3J0QWN0aXZpdHlTdW1tYXJ5RHRvEh0KFXNlc3Npb25fY3JlYXRlZF9jb3VudBgBIAEoBRIiChpjaGF0X3Nlc3Npb25fY3JlYXRlZF9jb3VudBgCIAEoBRImCh5wcm9wb3NhbF9zZXNzaW9uX2NyZWF0ZWRfY291bnQYAyABKAUSFgoOcHJvcG9zYWxfY291bnQYBCABKAUSIAoYcHJvcG9zYWxfZ2VuZXJhdGVkX2NvdW50GAUgASgFEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAYgASgFEh8KF3Byb3Bvc2FsX2FyY2hpdmVkX2NvdW50GAcgASgFEiIKGmFzc2lzdGFuY2VfY29tcGxldGVkX2NvdW50GAggASgFEh8KF2Fzc2lzdGFuY2VfZmFpbGVkX2NvdW50GAkgASgFElUKEmhpZ2hsaWdodF9zZXNzaW9ucxgKIAMoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIaWdobGlnaHRTZXNzaW9uRHRvIkYKI0hlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvEhAKCHByZXZpb3VzGAEgASgDEg0KBWRlbHRhGAIgASgDIrwFCh1IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbkR0bxIYChBoYXNfcHJldmlvdXNfZGF5GAEgASgIEhoKDXByZXZpb3VzX2RhdGUYAiABKAlIAIgBARJUChFhY3RpdmVfaGVyb19jb3VudBgDIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElIKD2V4ZWN1dGlvbl9jb3VudBgEIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElIKD3Rvb2xfY2FsbF9jb3VudBgFIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvEk8KDHRvdGFsX3Rva2VucxgGIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElgKFXNlc3Npb25fY3JlYXRlZF9jb3VudBgHIAEoCzI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uTWV0cmljRHRvElEKDnByb3Bvc2FsX2NvdW50GAggASgLMjkuaGFnaWNvZGUucGxhdGZvcm0udjEuSGVyb0JhdHRsZVJlcG9ydENvbXBhcmlzb25NZXRyaWNEdG8SVwoUaGFnaXBvd2VyX25ldF9jaGFuZ2UYCSABKAsyOS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0Q29tcGFyaXNvbk1ldHJpY0R0b0IQCg5fcHJldmlvdXNfZGF0ZSLGAQobSGVyb0JhdHRsZVJlcG9ydEV4ZWN1dG9yRHRvEhUKDWV4ZWN1dG9yX3R5cGUYASABKAkSEgoKaGVyb19jb3VudBgCIAEoBRIZChFhY3RpdmVfaGVyb19jb3VudBgDIAEoBRIXCg9leGVjdXRpb25fY291bnQYBCABKAUSFwoPdG9vbF9jYWxsX2NvdW50GAUgASgFEhQKDHRvdGFsX3Rva2VucxgGIAEoAxIZChF0b3RhbF9kdXJhdGlvbl9tcxgHIAEoAyK4AQohSGVyb0JhdHRsZVJlcG9ydEhhZ2lwb3dlclBvaW50RHRvEjUKEWJ1Y2tldF9taW51dGVfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdiYWxhbmNlGAIgASgDEhUKDXRvdGFsX2JhbGFuY2UYAyABKAMSIQoZYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgEIAEoAxIRCglpc19maWxsZWQYBSABKAgi3AMKHEhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJEdG8SMwoPcmFuZ2Vfc3RhcnRfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1yYW5nZV9lbmRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5idWNrZXRfbWludXRlcxgDIAEoBRIXCg9oYXNfZmlsbGVkX2dhcHMYBCABKAgSHAoUaGFzX3JlY29yZGVkX2hpc3RvcnkYBSABKAgSHgoWY3VycmVudF9wdWJsaWNfYmFsYW5jZRgGIAEoAxIdChVjdXJyZW50X3RvdGFsX2JhbGFuY2UYByABKAMSKQohY3VycmVudF9hY2N1bXVsYXRlZF90b3RhbF9iYWxhbmNlGAggASgDEhIKCm5ldF9jaGFuZ2UYCSABKAMSNwoTbGFzdF91cGRhdGVkX2F0X3V0YxgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASTgoNcHVibGljX3NlcmllcxgLIAMoCzI3LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJQb2ludER0byKJBAoXSGVyb0JhdHRsZVJlcG9ydEhlcm9EdG8SDwoHaGVyb19pZBgBIAEoCRIRCgloZXJvX25hbWUYAiABKAkSFgoJaGVyb19pY29uGAMgASgJSACIAQESFQoNZXhlY3V0b3JfdHlwZRgEIAEoCRISCgVtb2RlbBgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESDAoEcmFuaxgHIAEoBRIOCgZzdGF0dXMYCCABKAkSDQoFZ3JhZGUYCSABKAkSFAoMYmF0dGxlX3Njb3JlGAogASgFEhcKD2V4ZWN1dGlvbl9jb3VudBgLIAEoBRIXCg90b29sX2NhbGxfY291bnQYDCABKAUSFAoMaW5wdXRfdG9rZW5zGA0gASgDEhoKEmNhY2hlX2lucHV0X3Rva2VucxgOIAEoAxIVCg1vdXRwdXRfdG9rZW5zGA8gASgDEhsKE2NhY2hlX291dHB1dF90b2tlbnMYECABKAMSFAoMdG90YWxfdG9rZW5zGBEgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGBIgASgDEjkKFWxhc3RfY29tcGxldGVkX2F0X3V0YxgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDAoKX2hlcm9faWNvbkIICgZfbW9kZWxCDgoMX2Rlc2NyaXB0aW9uIoACCiJIZXJvQmF0dGxlUmVwb3J0UHJvamVjdEFjdGl2aXR5RHRvEhIKCnByb2plY3RfaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhYKDmFjdGl2aXR5X2NvdW50GAMgASgFEh0KFXNlc3Npb25fY3JlYXRlZF9jb3VudBgEIAEoBRIWCg5wcm9wb3NhbF9jb3VudBgFIAEoBRIiChphc3Npc3RhbmNlX2NvbXBsZXRlZF9jb3VudBgGIAEoBRIfChdhc3Npc3RhbmNlX2ZhaWxlZF9jb3VudBgHIAEoBRIWCg5hY3Rpdml0eV9zaGFyZRgIIAEoAUIHCgVfbmFtZSL6AQohSGVyb0JhdHRsZVJlcG9ydFByb2plY3RQcm9maWxlRHRvEhAKCGhhc19kYXRhGAEgASgIEh0KFXByb2plY3RfY3JlYXRlZF9jb3VudBgCIAEoAxIdChVzZXNzaW9uX2NyZWF0ZWRfY291bnQYAyABKAMSIAoYcHJvcG9zYWxfZ2VuZXJhdGVkX2NvdW50GAQgASgDEh8KF3Byb3Bvc2FsX2V4ZWN1dGVkX2NvdW50GAUgASgDEhMKC3Rva2VuX3RvdGFsGAYgASgDEi0KCWFzX29mX3V0YxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAijQIKG0hlcm9CYXR0bGVSZXBvcnRQcm9qZWN0c0R0bxIbChN0b3RhbF9wcm9qZWN0X2NvdW50GAEgASgFEhwKFGFjdGl2ZV9wcm9qZWN0X2NvdW50GAIgASgFEhkKEW5ld19wcm9qZWN0X2NvdW50GAMgASgFEk4KDHRvcF9wcm9qZWN0cxgEIAMoCzI4LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0QWN0aXZpdHlEdG8SSAoHcHJvZmlsZRgFIAEoCzI3LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0UHJvZmlsZUR0byKtAgoWSGVyb0JhdHRsZVJlcG9ydE12cER0bxIPCgdoZXJvX2lkGAEgASgJEhEKCWhlcm9fbmFtZRgCIAEoCRIWCgloZXJvX2ljb24YAyABKAlIAIgBARIVCg1leGVjdXRvcl90eXBlGAQgASgJEhIKBW1vZGVsGAUgASgJSAGIAQESDAoEcmFuaxgGIAEoBRIUCgxiYXR0bGVfc2NvcmUYByABKAUSDQoFZ3JhZGUYCCABKAkSFwoPZXhlY3V0aW9uX2NvdW50GAkgASgFEhcKD3Rvb2xfY2FsbF9jb3VudBgKIAEoBRIUCgx0b3RhbF90b2tlbnMYCyABKAMSGQoRdG90YWxfZHVyYXRpb25fbXMYDCABKANCDAoKX2hlcm9faWNvbkIICgZfbW9kZWwi2QIKGkhlcm9CYXR0bGVSZXBvcnRTdW1tYXJ5RHRvEhgKEHRvdGFsX2hlcm9fY291bnQYASABKAUSGQoRYWN0aXZlX2hlcm9fY291bnQYAiABKAUSGgoSdG90YWxfYmF0dGxlX3Njb3JlGAMgASgFEhgKEHRvdGFsX3Rvb2xfY2FsbHMYBCABKAUSFAoMdG90YWxfdG9rZW5zGAUgASgDEhkKEXRvdGFsX2R1cmF0aW9uX21zGAYgASgDEhQKDGlucHV0X3Rva2VucxgHIAEoAxIaChJjYWNoZV9pbnB1dF90b2tlbnMYCCABKAMSFQoNb3V0cHV0X3Rva2VucxgJIAEoAxIbChNjYWNoZV9vdXRwdXRfdG9rZW5zGAogASgDEjkKA212cBgLIAEoCzIsLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRNdnBEdG8ipgYKE0hlcm9CYXR0bGVSZXBvcnREdG8SEwoLcmVwb3J0X2RhdGUYASABKAkSNAoQZ2VuZXJhdGVkX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFAoMdGltZV96b25lX2lkGAMgASgJEjUKEWNvdmVyZWRfc3RhcnRfdXRjGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9jb3ZlcmVkX2VuZF91dGMYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkUKCWhhZ2lwb3dlchgGIAEoCzIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRIYWdpcG93ZXJEdG8SQQoHc3VtbWFyeRgHIAEoCzIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRTdW1tYXJ5RHRvElEKDGFjaGlldmVtZW50cxgIIAEoCzI7LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRBY2hpZXZlbWVudFN1bW1hcnlEdG8SUgoQYWN0aXZpdHlfc3VtbWFyeRgJIAEoCzI4LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRBY3Rpdml0eVN1bW1hcnlEdG8SRwoKY29tcGFyaXNvbhgKIAEoCzIzLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRDb21wYXJpc29uRHRvEkQKCWV4ZWN1dG9ycxgLIAMoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRFeGVjdXRvckR0bxJDCghwcm9qZWN0cxgMIAEoCzIxLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhlcm9CYXR0bGVSZXBvcnRQcm9qZWN0c0R0bxI9CgZoZXJvZXMYDSADKAsyLS5oYWdpY29kZS5wbGF0Zm9ybS52MS5IZXJvQmF0dGxlUmVwb3J0SGVyb0R0byK1AQoeSGFnaXBvd2VyUHVibGljSGlzdG9yeVBvaW50RHRvEjUKEWJ1Y2tldF9taW51dGVfdXRjGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdiYWxhbmNlGAIgASgDEhUKDXRvdGFsX2JhbGFuY2UYAyABKAMSIQoZYWNjdW11bGF0ZWRfdG90YWxfYmFsYW5jZRgEIAEoAxIRCglpc19maWxsZWQYBSABKAgi1wEKHkhhZ2lwb3dlclN0YXRpc3RpY3NNZXRhZGF0YUR0bxIzCg9yYW5nZV9zdGFydF91dGMYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXJhbmdlX2VuZF91dGMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmJ1Y2tldF9taW51dGVzGAMgASgFEhcKD2hhc19maWxsZWRfZ2FwcxgEIAEoCBIcChRoYXNfcmVjb3JkZWRfaGlzdG9yeRgFIAEoCCLWAQodSGFnaXBvd2VyU3RhdGlzdGljc1N1bW1hcnlEdG8SHgoWY3VycmVudF9wdWJsaWNfYmFsYW5jZRgBIAEoAxIdChVjdXJyZW50X3RvdGFsX2JhbGFuY2UYAiABKAMSKQohY3VycmVudF9hY2N1bXVsYXRlZF90b3RhbF9iYWxhbmNlGAMgASgDEhIKCm5ldF9jaGFuZ2UYBCABKAMSNwoTbGFzdF91cGRhdGVkX2F0X3V0YxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiAIKHEhhZ2lwb3dlclN0YXRpc3RpY3NSZXBvcnREdG8SDQoFcmFuZ2UYASABKAkSRgoIbWV0YWRhdGEYAiABKAsyNC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJTdGF0aXN0aWNzTWV0YWRhdGFEdG8SRAoHc3VtbWFyeRgDIAEoCzIzLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkhhZ2lwb3dlclN0YXRpc3RpY3NTdW1tYXJ5RHRvEksKDXB1YmxpY19zZXJpZXMYBCADKAsyNC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IYWdpcG93ZXJQdWJsaWNIaXN0b3J5UG9pbnREdG8iuwMKGkhpc3RvcmljYWxUaW1lbGluZUV2ZW50RHRvEhAKCGV2ZW50X2lkGAEgASgJEjMKD29jY3VycmVkX2F0X3V0YxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOY3JlYXRlZF9hdF91dGMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC2VudGl0eV90eXBlGAQgASgJEhEKCWVudGl0eV9pZBgFIAEoCRIXCgpwcm9qZWN0X2lkGAYgASgJSACIAQESFwoKc2Vzc2lvbl9pZBgHIAEoCUgBiAEBEgwKBGNvZGUYCCABKAkSKAoIbWV0YWRhdGEYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEwoGc291cmNlGAogASgJSAKIAQESFQoIYWN0b3JfaWQYCyABKAlIA4gBARIbCg5jb3JyZWxhdGlvbl9pZBgMIAEoCUgEiAEBQg0KC19wcm9qZWN0X2lkQg0KC19zZXNzaW9uX2lkQgkKB19zb3VyY2VCCwoJX2FjdG9yX2lkQhEKD19jb3JyZWxhdGlvbl9pZCKIAQofSGlzdG9yaWNhbFRpbWVsaW5lUGFnaW5hdGlvbkR0bxIRCglwYWdlX3NpemUYASABKAUSFgoOcmV0dXJuZWRfY291bnQYAiABKAUSEAoIaGFzX21vcmUYAyABKAgSGAoLbmV4dF9jdXJzb3IYBCABKAlIAIgBAUIOCgxfbmV4dF9jdXJzb3IisAEKIkhpc3RvcmljYWxUaW1lbGluZVF1ZXJ5UmVzcG9uc2VEdG8SPwoFaXRlbXMYASADKAsyMC5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVFdmVudER0bxJJCgpwYWdpbmF0aW9uGAIgASgLMjUuaGFnaWNvZGUucGxhdGZvcm0udjEuSGlzdG9yaWNhbFRpbWVsaW5lUGFnaW5hdGlvbkR0byKbAwogSGlzdG9yaWNhbFRpbWVsaW5lRXZlbnRTYW1wbGVEdG8SEwoLZW50aXR5X3R5cGUYASABKAkSDAoEY29kZRgCIAEoCRIYChBzYW1wbGVfZW50aXR5X2lkGAMgASgJEh4KEXNhbXBsZV9wcm9qZWN0X2lkGAQgASgJSACIAQESHgoRc2FtcGxlX3Nlc3Npb25faWQYBSABKAlIAYgBARIaCg1zYW1wbGVfc291cmNlGAYgASgJSAKIAQESHAoPc2FtcGxlX2FjdG9yX2lkGAcgASgJSAOIAQESIgoVc2FtcGxlX2NvcnJlbGF0aW9uX2lkGAggASgJSASIAQESMAoQbWV0YWRhdGFfZXhhbXBsZRgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUIUChJfc2FtcGxlX3Byb2plY3RfaWRCFAoSX3NhbXBsZV9zZXNzaW9uX2lkQhAKDl9zYW1wbGVfc291cmNlQhIKEF9zYW1wbGVfYWN0b3JfaWRCGAoWX3NhbXBsZV9jb3JyZWxhdGlvbl9pZCJtCiRIaXN0b3JpY2FsVGltZWxpbmVTYW1wbGVzUmVzcG9uc2VEdG8SRQoFaXRlbXMYASADKAsyNi5oYWdpY29kZS5wbGF0Zm9ybS52MS5IaXN0b3JpY2FsVGltZWxpbmVFdmVudFNhbXBsZUR0bzLVCAoRU3RhdGlzdGljc1NlcnZpY2USdAoRR2V0QWdncmVnYXRlZERhdGESLi5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRBZ2dyZWdhdGVkRGF0YVJlcXVlc3QaLy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRBZ2dyZWdhdGVkRGF0YVJlc3BvbnNlEn0KFEdldFRva2VuTW9uaXRvclVzYWdlEjEuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXF1ZXN0GjIuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5Nb25pdG9yVXNhZ2VSZXNwb25zZRKVAQocR2V0VG9rZW5UaHJvdWdocHV0U3RhdGlzdGljcxI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldFRva2VuVGhyb3VnaHB1dFN0YXRpc3RpY3NSZXF1ZXN0GjouaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0U3RhdGlzdGljc1Jlc3BvbnNlEowBChlHZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5EjYuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0VG9rZW5UaHJvdWdocHV0SGlzdG9yeVJlcXVlc3QaNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRUb2tlblRocm91Z2hwdXRIaXN0b3J5UmVzcG9uc2USegoTR2V0SGVyb0JhdHRsZVJlcG9ydBIwLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhlcm9CYXR0bGVSZXBvcnRSZXF1ZXN0GjEuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGVyb0JhdHRsZVJlcG9ydFJlc3BvbnNlEowBChlHZXRIYWdpcG93ZXJIaXN0b3J5UmVwb3J0EjYuaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGFnaXBvd2VySGlzdG9yeVJlcG9ydFJlcXVlc3QaNy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIYWdpcG93ZXJIaXN0b3J5UmVwb3J0UmVzcG9uc2USgAEKFUdldEhpc3RvcmljYWxUaW1lbGluZRIyLmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVJlcXVlc3QaMy5oYWdpY29kZS5wbGF0Zm9ybS52MS5HZXRIaXN0b3JpY2FsVGltZWxpbmVSZXNwb25zZRKVAQocR2V0SGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlcxI5LmhhZ2ljb2RlLnBsYXRmb3JtLnYxLkdldEhpc3RvcmljYWxUaW1lbGluZVNhbXBsZXNSZXF1ZXN0GjouaGFnaWNvZGUucGxhdGZvcm0udjEuR2V0SGlzdG9yaWNhbFRpbWVsaW5lU2FtcGxlc1Jlc3BvbnNlQiqqAidQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuUGxhdGZvcm0uVjFiBnByb3RvMw",[Ne,Ee,cr]),gd=G(Lr,1),pd=Ve(Lr,0),ae=q("CiJoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25zLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIlUKFk9wZW5DaGF0U2Vzc2lvblJlcXVlc3QSOwoEYm9keRgBIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0IlIKF09wZW5DaGF0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIk0KEk9wZW5TZXNzaW9uUmVxdWVzdBI3CgRib2R5GAEgASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdCJOChNPcGVuU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIicKEUdldFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiTQoSR2V0U2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvImEKElNhdmVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjcKBGJvZHkYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Ik4KE1NhdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8izAEKE0xpc3RTZXNzaW9uc1JlcXVlc3QSEQoEdHlwZRgBIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAIgASgISAGIAQESHQoQaW5jbHVkZV9hcmNoaXZlZBgDIAEoCEgCiAEBEhcKCnByb2plY3RfaWQYBCABKAlIA4gBARITCgtwcm9qZWN0X2lkcxgFIAMoCUIHCgVfdHlwZUIOCgxfYWN0aXZlX29ubHlCEwoRX2luY2x1ZGVfYXJjaGl2ZWRCDQoLX3Byb2plY3RfaWQiUwoUTGlzdFNlc3Npb25zUmVzcG9uc2USOwoGcmVzdWx0GAEgASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTGlzdFJlc3BvbnNlRHRvIkAKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMZGVsZXRlX2ZpbGVzGAIgASgIIlYKFURlbGV0ZVNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlNpbXBsZU1lc3NhZ2VSZXNwb25zZUR0byIvChlBcmNoaXZlQ2hhdFNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWwoaQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8idAoZU3dpdGNoU3RvcHBlZEFnZW50UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEkMKBGJvZHkYAiABKAsyNS5oYWdpY29kZS5zZXNzaW9uLnYxLlN3aXRjaFN0b3BwZWRTZXNzaW9uQWdlbnRSZXF1ZXN0IlUKGlN3aXRjaFN0b3BwZWRBZ2VudFJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIl4KG1N0YXJ0SGFnaVRhc2tTZXNzaW9uUmVxdWVzdBI/CgRib2R5GAEgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5DcmVhdGVIYWdpVGFza1Nlc3Npb25SZXF1ZXN0IlcKHFN0YXJ0SGFnaVRhc2tTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iZAohU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0Ej8KBGJvZHkYASABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNyZWF0ZUhhZ2lUYXNrU2Vzc2lvblJlcXVlc3QiXQoiU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXNwb25zZRI3CgZyZXN1bHQYASABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0byLOAwoSQ2hhdEhlcm9TdW1tYXJ5RHRvEg8KB2hlcm9faWQYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhEKBGljb24YBCABKAlIAYgBARIVCg1leGVjdXRvcl90eXBlGAUgASgJEhkKDGFnZW50X2NsaV9pZBgGIAEoCUgCiAEBEhsKDmFnZW50X2NsaV9uYW1lGAcgASgJSAOIAQESGwoOYWdlbnRfY2xpX2ljb24YCCABKAlIBIgBARIVCghtb2RlbF9pZBgJIAEoCUgFiAEBEhcKCm1vZGVsX25hbWUYCiABKAlIBogBARIXCgptb2RlbF9pY29uGAsgASgJSAeIAQESIgoVc2Vjb25kYXJ5X21vZGVsX2xhYmVsGAwgASgJSAiIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQg8KDV9hZ2VudF9jbGlfaWRCEQoPX2FnZW50X2NsaV9uYW1lQhEKD19hZ2VudF9jbGlfaWNvbkILCglfbW9kZWxfaWRCDQoLX21vZGVsX25hbWVCDQoLX21vZGVsX2ljb25CGAoWX3NlY29uZGFyeV9tb2RlbF9sYWJlbCI4ChRPcGVuU3BlY1Rhc2tQcm9ncmVzcxIRCgljb21wbGV0ZWQYASABKAUSDQoFdG90YWwYAiABKAUi/gEKEE9wZW5TcGVjRmlsZUluZm8SEQoJZmlsZV9uYW1lGAEgASgJEhUKDXJlbGF0aXZlX3BhdGgYAiABKAkSDgoGZXhpc3RzGAMgASgIEhEKCWZpbGVfdHlwZRgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBITCgtpc19hcmNoaXZlZBgGIAEoCBIxCg1hcmNoaXZlZF9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJACg10YXNrX3Byb2dyZXNzGAggASgLMikuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcGVuU3BlY1Rhc2tQcm9ncmVzcyJcChFPcGVuU3BlY0ZpbGVzSW5mbxIRCgliYXNlX3BhdGgYASABKAkSNAoFZmlsZXMYAiADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TcGVjRmlsZUluZm8izAEKFlF1ZXVlTWVzc2FnZVN1bW1hcnlEdG8SDQoFaW5kZXgYASABKAUSDAoEbW9kZRgCIAEoBRItCglxdWV1ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvbnRlbnRfcHJldmlldxgEIAEoCRIhChRleGVjdXRpb25fbWVzc2FnZV9pZBgFIAEoCUgAiAEBEhEKCWNhbl9zdGVlchgGIAEoCEIXChVfZXhlY3V0aW9uX21lc3NhZ2VfaWQigAEKFlNlc3Npb25Ob3RpZmljYXRpb25EdG8SDAoEa2luZBgBIAEoCRIvCgtvYnNlcnZlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoHcGF5bG9hZBgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSLtAQoWU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIaCg1wcm9tcHRfdG9rZW5zGAEgASgFSACIAQESIQoUY2FjaGVkX3Byb21wdF90b2tlbnMYAiABKAVIAYgBARIeChFjb21wbGV0aW9uX3Rva2VucxgDIAEoBUgCiAEBEjMKD2xhc3RfdXBkYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3Byb21wdF90b2tlbnNCFwoVX2NhY2hlZF9wcm9tcHRfdG9rZW5zQhQKEl9jb21wbGV0aW9uX3Rva2VucyJfChRTdGFnZUV4ZWN1dG9ySW5mb0R0bxIVCg1wcm92aWRlcl90eXBlGAEgASgJEjAKDGxhc3RfdXBkYXRlZBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAivAIKFVN0YWdlSGVyb1NlbGVjdGlvbkR0bxIRCglzdGFnZV9rZXkYASABKAkSEgoKc2NyaXB0X2tleRgCIAEoCRIVCg1zY2VuYXJpb19uYW1lGAMgASgJEhQKB2hlcm9faWQYBCABKAlIAIgBARIWCgloZXJvX25hbWUYBSABKAlIAYgBARIWCgloZXJvX2ljb24YBiABKAlIAogBARIVCg1leGVjdXRvcl90eXBlGAcgASgJEhUKDXVzZWRfZmFsbGJhY2sYCCABKAgSGAoQc2VsZWN0aW9uX3NvdXJjZRgJIAEoCRIvCgtzZWxlY3RlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2hlcm9faWRCDAoKX2hlcm9fbmFtZUIMCgpfaGVyb19pY29uIqULChJTZXNzaW9uUmVzcG9uc2VEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEhwKD2NoaWVmX2NvbXBsYWludBgEIAEoCUgBiAEBEgwKBGNvZGUYBSABKAUSDAoEdHlwZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSEQoJaXNfYWN0aXZlGAggASgIEjIKDmxhc3RfYWN0aXZlX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwcm9qZWN0X2lkGAogASgJEhQKDHByb2plY3RfbmFtZRgLIAEoCRIUCgxwcm9qZWN0X3BhdGgYDCABKAkSGgoNcHJvcG9zYWxfbmFtZRgNIAEoCUgCiAEBEj8KD29wZW5fc3BlY19maWxlcxgOIAEoCzImLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNwZWNGaWxlc0luZm8SHQoVcGVuZGluZ19tZXNzYWdlX2NvdW50GA8gASgFEkMKDnF1ZXVlX21lc3NhZ2VzGBAgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEh4KEXdvcmtpbmdfZGlyZWN0b3J5GBEgASgJSAOIAQESFQoIbWV0YWRhdGEYEiABKAlIBIgBARIfChJjaGF0X2V4ZWN1dG9yX3R5cGUYEyABKAlIBYgBARI6CgljaGF0X2hlcm8YFCABKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkNoYXRIZXJvU3VtbWFyeUR0bxJZChJzdGFnZV9leGVjdXRvcl9tYXAYFSADKAsyPS5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25SZXNwb25zZUR0by5TdGFnZUV4ZWN1dG9yTWFwRW50cnkSZAoYc3RhZ2VfaGVyb19zZWxlY3Rpb25fbWFwGBYgAygLMkIuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8uU3RhZ2VIZXJvU2VsZWN0aW9uTWFwRW50cnkSIAoTcnVudGltZV9tb2RlbF9sYWJlbBgXIAEoCUgGiAEBEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgYIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQgoNc2Vzc2lvbl91c2FnZRgZIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblVzYWdlU3VtbWFyeUR0bxIcCg9wcmV2aW91c19zdGF0dXMYGiABKAlIB4gBARJCCg1ub3RpZmljYXRpb25zGBsgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTm90aWZpY2F0aW9uRHRvGmIKFVN0YWdlRXhlY3V0b3JNYXBFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlRXhlY3V0b3JJbmZvRHRvOgI4ARpoChpTdGFnZUhlcm9TZWxlY3Rpb25NYXBFbnRyeRILCgNrZXkYASABKAkSOQoFdmFsdWUYAiABKAsyKi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0YWdlSGVyb1NlbGVjdGlvbkR0bzoCOAFCDgoMX2Rlc2NyaXB0aW9uQhIKEF9jaGllZl9jb21wbGFpbnRCEAoOX3Byb3Bvc2FsX25hbWVCFAoSX3dvcmtpbmdfZGlyZWN0b3J5QgsKCV9tZXRhZGF0YUIVChNfY2hhdF9leGVjdXRvcl90eXBlQhYKFF9ydW50aW1lX21vZGVsX2xhYmVsQhIKEF9wcmV2aW91c19zdGF0dXMieQoYQ3JlYXRlQ2hhdFNlc3Npb25SZXF1ZXN0Eg0KBXRpdGxlGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSGAoQaXNfZGVmYXVsdF90aXRsZRgDIAEoCBIUCgdoZXJvX2lkGAQgASgJSACIAQFCCgoIX2hlcm9faWQivgIKEFBhdGhSZWZlcmVuY2VEdG8SCgoCaWQYASABKAkSDgoGc291cmNlGAIgASgJEhUKDWRpc3BsYXlfdmFsdWUYAyABKAkSFQoNcGh5c2ljYWxfcGF0aBgEIAEoCRINCgVzdGFydBgFIAEoBRILCgNlbmQYBiABKAUSFgoJZW50aXR5X2lkGAcgASgJSACIAQESFwoKcHJvamVjdF9pZBgIIAEoCUgBiAEBEkUKCG1ldGFkYXRhGAkgAygLMjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgwKCl9lbnRpdHlfaWRCDQoLX3Byb2plY3RfaWQi+wEKGVNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIQCghpbWFnZV9pZBgCIAEoCRIWCg5oYWdpX2ltYWdlX3VybBgDIAEoCRIYCgtwcmV2aWV3X3VybBgEIAEoCUgAiAEBEhYKCWZpbGVfbmFtZRgFIAEoCUgBiAEBEhkKDGNvbnRlbnRfdHlwZRgGIAEoCUgCiAEBEhYKCWZpbGVfc2l6ZRgHIAEoA0gDiAEBQg4KDF9wcmV2aWV3X3VybEIMCgpfZmlsZV9uYW1lQg8KDV9jb250ZW50X3R5cGVCDAoKX2ZpbGVfc2l6ZSJ+ChlUYXJnZXRQcm9qZWN0UmVmZXJlbmNlRHRvEhIKCnByb2plY3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIVCg1waHlzaWNhbF9wYXRoGAMgASgJEhgKC2FjY2Vzc190eXBlGAQgASgJSACIAQFCDgoMX2FjY2Vzc190eXBlIocBChNUYXJnZXRSZXBvc2l0b3J5RHRvEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIZCgxkaXNwbGF5X25hbWUYAyABKAlIAIgBARIYCgthY2Nlc3NfdHlwZRgEIAEoCUgBiAEBQg8KDV9kaXNwbGF5X25hbWVCDgoMX2FjY2Vzc190eXBlIj0KGFRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxIMCgRtb2RlGAEgASgJEhMKC2FjY2Vzc190eXBlGAIgASgJIpUFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIcCg9jaGllZl9jb21wbGFpbnQYAiABKAlIAIgBARIlChhvcmlnaW5hbF9jaGllZl9jb21wbGFpbnQYAyABKAlIAYgBARJIChBkcmFmdF9pbWFnZV9yZWZzGAQgAygLMi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uTWVzc2FnZUltYWdlUmVmRHRvEhEKBHR5cGUYBSABKAlIAogBARISCgpwcm9qZWN0X2lkGAYgASgJEkUKE3RhcmdldF9yZXBvc2l0b3JpZXMYByADKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlEdG8STgoXdGFyZ2V0X3JlcG9zaXRvcnlfc2NvcGUYCCABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFJlcG9zaXRvcnlTY29wZUR0bxJHCg90YXJnZXRfcHJvamVjdHMYCSADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlRhcmdldFByb2plY3RSZWZlcmVuY2VEdG8SPgoPcGF0aF9yZWZlcmVuY2VzGAogAygLMiUuaGFnaWNvZGUuc2Vzc2lvbi52MS5QYXRoUmVmZXJlbmNlRHRvEhgKEGlzX2RlZmF1bHRfdGl0bGUYCyABKAgSJgoZcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZRgMIAEoCUgDiAEBQhIKEF9jaGllZl9jb21wbGFpbnRCGwoZX29yaWdpbmFsX2NoaWVmX2NvbXBsYWludEIHCgVfdHlwZUIcChpfcHJvcG9zYWxfY29udGVudF9sYW5ndWFnZSKTAQoUVXBkYXRlU2Vzc2lvblJlcXVlc3QSDQoFdGl0bGUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARITCgZzdGF0dXMYAyABKAlIAYgBARIVCghtZXRhZGF0YRgEIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSJTChZTZXNzaW9uTGlzdFJlc3BvbnNlRHRvEjkKCHNlc3Npb25zGAEgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iKwoYU2ltcGxlTWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkiMwogU3dpdGNoU3RvcHBlZFNlc3Npb25BZ2VudFJlcXVlc3QSDwoHaGVyb19pZBgBIAEoCSLrCAocQ3JlYXRlSGFnaVRhc2tTZXNzaW9uUmVxdWVzdBINCgV0aXRsZRgBIAEoCRIYChBpc19kZWZhdWx0X3RpdGxlGAIgASgIEhIKCnByb2plY3RfaWQYAyABKAkSFgoJcHJvbXB0X2lkGAQgASgJSACIAQESFAoHbWVzc2FnZRgFIAEoCUgBiAEBEkgKEGRyYWZ0X2ltYWdlX3JlZnMYBiADKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25NZXNzYWdlSW1hZ2VSZWZEdG8SHAoPcmVwb3NpdG9yeV9wYXRoGAcgASgJSAKIAQESGAoLdGFyZ2V0X3R5cGUYCCABKAlIA4gBARIVCgh2YXVsdF9pZBgJIAEoCUgEiAEBEhwKD291dHB1dF92YXVsdF9pZBgKIAEoCUgFiAEBEhsKE3JlZmVyZW5jZV92YXVsdF9pZHMYCyADKAkSGgoSZWRpdGFibGVfdmF1bHRfaWRzGAwgAygJEkcKD3RhcmdldF9wcm9qZWN0cxgNIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuVGFyZ2V0UHJvamVjdFJlZmVyZW5jZUR0bxIfChJyZXNlYXJjaF9kaXJlY3Rpb24YDiABKAlIBogBARIbCg5wcmVzZXRfdGFza19pZBgPIAEoCUgHiAEBEh8KEnByZXNldF90YXNrX2xvY2FsZRgQIAEoCUgIiAEBEjEKEXByZXNldF90YXNrX2lucHV0GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhcKD3JlcG9zaXRvcnlfdXJscxgSIAMoCRITCgtwcm9qZWN0X2lkcxgTIAMoCRIRCgluZWVkX3B1c2gYFCABKAgSJAoXcHVsbF9yZWJhc2VfYmVmb3JlX3B1c2gYFSABKAhICYgBARIfChJ0YXJnZXRfYnJhbmNoX21vZGUYFiABKAlICogBARIfChJ0YXJnZXRfYnJhbmNoX25hbWUYFyABKAlIC4gBARIXCgpzY3JpcHRfa2V5GBggASgJSAyIAQESFAoHaGVyb19pZBgZIAEoCUgNiAEBEiAKE2hlcm9fc2VsZWN0aW9uX21vZGUYGiABKAlIDogBAUIMCgpfcHJvbXB0X2lkQgoKCF9tZXNzYWdlQhIKEF9yZXBvc2l0b3J5X3BhdGhCDgoMX3RhcmdldF90eXBlQgsKCV92YXVsdF9pZEISChBfb3V0cHV0X3ZhdWx0X2lkQhUKE19yZXNlYXJjaF9kaXJlY3Rpb25CEQoPX3ByZXNldF90YXNrX2lkQhUKE19wcmVzZXRfdGFza19sb2NhbGVCGgoYX3B1bGxfcmViYXNlX2JlZm9yZV9wdXNoQhUKE190YXJnZXRfYnJhbmNoX21vZGVCFQoTX3RhcmdldF9icmFuY2hfbmFtZUINCgtfc2NyaXB0X2tleUIKCghfaGVyb19pZEIWChRfaGVyb19zZWxlY3Rpb25fbW9kZTLqCAoPU2Vzc2lvbnNTZXJ2aWNlEmwKD09wZW5DaGF0U2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlbkNoYXRTZXNzaW9uUmVzcG9uc2USYAoLT3BlblNlc3Npb24SJy5oYWdpY29kZS5zZXNzaW9uLnYxLk9wZW5TZXNzaW9uUmVxdWVzdBooLmhhZ2ljb2RlLnNlc3Npb24udjEuT3BlblNlc3Npb25SZXNwb25zZRJdCgpHZXRTZXNzaW9uEiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUmVxdWVzdBonLmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblJlc3BvbnNlEmAKC1NhdmVTZXNzaW9uEicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TYXZlU2Vzc2lvblJlcXVlc3QaKC5oYWdpY29kZS5zZXNzaW9uLnYxLlNhdmVTZXNzaW9uUmVzcG9uc2USYwoMTGlzdFNlc3Npb25zEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZRJmCg1EZWxldGVTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5EZWxldGVTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlEnUKEkFyY2hpdmVDaGF0U2Vzc2lvbhIuLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZUNoYXRTZXNzaW9uUmVzcG9uc2USdQoSU3dpdGNoU3RvcHBlZEFnZW50Ei4uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5Td2l0Y2hTdG9wcGVkQWdlbnRSZXNwb25zZRJ7ChRTdGFydEhhZ2lUYXNrU2Vzc2lvbhIwLmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydEhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlEo0BChpTdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvbhI2LmhhZ2ljb2RlLnNlc3Npb24udjEuU3RhcnRMZWdhY3lIYWdpVGFza1Nlc3Npb25SZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGFydExlZ2FjeUhhZ2lUYXNrU2Vzc2lvblJlc3BvbnNlQimqAiZQQ29kZS5IdHRwQXBpLkdycGNDb250cmFjdHMuU2Vzc2lvbi5WMWIGcHJvdG8z",[Ne,Ee]),Ad=G(ae,1),Zd=G(ae,3),fd=G(ae,5),Rd=G(ae,7),Ed=G(ae,9),Nd=G(ae,11),Gd=G(ae,13),Vd=G(ae,17),Wd=G(ae,30),Sd=G(ae,36),vd=G(ae,37),Xd=G(ae,41),Yd=Ve(ae,0),ht=q("CitoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fbWVzc2FnaW5nLnByb3RvEhNoYWdpY29kZS5zZXNzaW9uLnYxIr0BChlHZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSEQoEcGFnZRgCIAEoBUgAiAEBEhYKCXBhZ2Vfc2l6ZRgDIAEoBUgBiAEBEhoKDWhpc3Rvcnlfc2NvcGUYBCABKAlIAogBARISCgVvcmRlchgFIAEoCUgDiAEBQgcKBV9wYWdlQgwKCl9wYWdlX3NpemVCEAoOX2hpc3Rvcnlfc2NvcGVCCAoGX29yZGVyIlkKGkdldFNlc3Npb25NZXNzYWdlc1Jlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZUxpc3RSZXNwb25zZUR0byIqChRDYW5jZWxTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlYKFUNhbmNlbFNlc3Npb25SZXNwb25zZRI9CgZyZXN1bHQYASABKAsyLS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFNlc3Npb25SZXNwb25zZUR0byI3CiFHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJeCiJHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvY2Vzc2luZ1N0YXR1c0R0byJGChtDYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtxdWV1ZV9pbmRleBgCIAEoBSJcChxDYW5jZWxQZW5kaW5nTWVzc2FnZVJlc3BvbnNlEjwKBnJlc3VsdBgBIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsUGVuZGluZ01lc3NhZ2VEdG8iZAoTU3RlZXJTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLlNlc3Npb25TdGVlclJlcXVlc3REdG8iVAoUU3RlZXJTZXNzaW9uUmVzcG9uc2USPAoGcmVzdWx0GAEgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uU3RlZXJSZXNwb25zZUR0byKFAQoZU3RlZXJRdWV1ZWRNZXNzYWdlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEhMKC3F1ZXVlX2luZGV4GAIgASgFEj8KBGJvZHkYAyABKAsyMS5oYWdpY29kZS5zZXNzaW9uLnYxLlF1ZXVlZE1lc3NhZ2VTdGVlclJlcXVlc3REdG8iYAoaU3RlZXJRdWV1ZWRNZXNzYWdlUmVzcG9uc2USQgoGcmVzdWx0GAEgASgLMjIuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZWRNZXNzYWdlU3RlZXJSZXNwb25zZUR0byJmChlQb3N0U2Vzc2lvbk1lc3NhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSNQoEYm9keRgCIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXF1ZXN0IlkKGlBvc3RTZXNzaW9uTWVzc2FnZVJlc3BvbnNlEjsKBnJlc3VsdBgBIAEoCzIrLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdE1lc3NhZ2VSZXNwb25zZUR0byJgCipHZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgZsb2NhbGUYAiABKAlIAIgBAUIJCgdfbG9jYWxlIn8KK0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2USUAoGcmVzdWx0GAEgASgLMkAuaGFnaWNvZGUuc2Vzc2lvbi52MS5Db252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlc3BvbnNlRHRvInEKH1N1Ym1pdFNlc3Npb25Bbm5vdGF0aW9uc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI6CgRib2R5GAIgASgLMiwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Bbm5vdGF0aW9uU3VibWlzc2lvbkR0byJoCiBTdWJtaXRTZXNzaW9uQW5ub3RhdGlvbnNSZXNwb25zZRJECgZyZXN1bHQYASABKAsyNC5oYWdpY29kZS5zZXNzaW9uLnYxLkFubm90YXRpb25TdWJtaXNzaW9uUmVzcG9uc2VEdG8i+gEKFk1lc3NhZ2VIZXJvU25hcHNob3REdG8SFAoHaGVyb19pZBgBIAEoCUgAiAEBEhYKCWhlcm9fbmFtZRgCIAEoCUgBiAEBEhYKCWhlcm9faWNvbhgDIAEoCUgCiAEBEhoKDWV4ZWN1dG9yX3R5cGUYBCABKAlIA4gBARITCgZzb3VyY2UYBSABKAlIBIgBARIWCglzdGFnZV9rZXkYBiABKAlIBYgBAUIKCghfaGVyb19pZEIMCgpfaGVyb19uYW1lQgwKCl9oZXJvX2ljb25CEAoOX2V4ZWN1dG9yX3R5cGVCCQoHX3NvdXJjZUIMCgpfc3RhZ2Vfa2V5IlIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25BbnN3ZXJEdG8SEAoIcXVlc3Rpb24YASABKAkSDgoGdmFsdWVzGAIgAygJEhAKCHJlamVjdGVkGAMgASgIIkIKHE1lc3NhZ2VVc2VyUXVlc3Rpb25PcHRpb25EdG8SDQoFbGFiZWwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiyAEKGk1lc3NhZ2VVc2VyUXVlc3Rpb25JdGVtRHRvEhAKCHF1ZXN0aW9uGAEgASgJEg4KBmhlYWRlchgCIAEoCRIUCgxtdWx0aV9zZWxlY3QYAyABKAgSQgoHb3B0aW9ucxgEIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbk9wdGlvbkR0bxIbChNhbGxvd19jdXN0b21fYW5zd2VyGAUgASgIEhEKCWlzX3NlY3JldBgGIAEoCCJaChxNZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvEhkKEW1heF9hbnN3ZXJfbGVuZ3RoGAEgASgFEh8KF21heF92YWx1ZXNfcGVyX3F1ZXN0aW9uGAIgASgFItgCChZNZXNzYWdlVXNlclF1ZXN0aW9uRHRvEhMKC3F1ZXN0aW9uX2lkGAEgASgJEhMKBnJ1bl9pZBgCIAEoCUgAiAEBEg0KBXN0YXRlGAMgASgJEkIKCXF1ZXN0aW9ucxgEIAMoCzIvLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkl0ZW1EdG8SQgoHYW5zd2VycxgFIAMoCzIxLmhhZ2ljb2RlLnNlc3Npb24udjEuTWVzc2FnZVVzZXJRdWVzdGlvbkFuc3dlckR0bxIvCgthbnN3ZXJlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoGbGltaXRzGAcgASgLMjEuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlVXNlclF1ZXN0aW9uTGltaXRzRHRvQgkKB19ydW5faWQi1gMKEk1lc3NhZ2VSZXNwb25zZUR0bxIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEgwKBHR5cGUYAyABKAkSDAoEbW9kZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDWNyZWF0aW9uX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KDmNvbnRlbnRfYmxvY2tzGAcgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKBW1vZGVsGAggASgJSACIAQESFQoIcHJvdmlkZXIYCSABKAlIAYgBARJCCg1oZXJvX3NuYXBzaG90GAogASgLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlSGVyb1NuYXBzaG90RHRvEkIKDXVzZXJfcXVlc3Rpb24YCyABKAsyKy5oYWdpY29kZS5zZXNzaW9uLnYxLk1lc3NhZ2VVc2VyUXVlc3Rpb25EdG8SGAoLc3RlZXJfc3RhdGUYDCABKAlIAogBAUIICgZfbW9kZWxCCwoJX3Byb3ZpZGVyQg4KDF9zdGVlcl9zdGF0ZSKyAQoWTWVzc2FnZUxpc3RSZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHBhZ2UYAiABKAUSEQoJcGFnZV9zaXplGAMgASgFEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3RvdGFsX3BhZ2VzGAUgASgFEjkKCG1lc3NhZ2VzGAYgAygLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5NZXNzYWdlUmVzcG9uc2VEdG8ikAEKGENhbmNlbFNlc3Npb25SZXNwb25zZUR0bxISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIwCgxjYW5jZWxsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKBnJ1bl9pZBgEIAEoCUgAiAEBQgkKB19ydW5faWQi3gEKE1Byb2Nlc3NpbmdTdGF0dXNEdG8SEgoKc2Vzc2lvbl9pZBgBIAEoCRIVCg1pc19wcm9jZXNzaW5nGAIgASgIEhwKFHF1ZXVlZF9tZXNzYWdlX2NvdW50GAMgASgFEkMKDnF1ZXVlX21lc3NhZ2VzGAQgAygLMisuaGFnaWNvZGUuc2Vzc2lvbi52MS5RdWV1ZU1lc3NhZ2VTdW1tYXJ5RHRvEjkKFXByb2Nlc3Npbmdfc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiPQoUQ2FuY2VsbGVkTWVzc2FnZUluZm8SDAoEbW9kZRgBIAEoCRIXCg9jb250ZW50X3ByZXZpZXcYAiABKAkiwwEKF0NhbmNlbFBlbmRpbmdNZXNzYWdlRHRvEhIKCnNlc3Npb25faWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBITCgtxdWV1ZV9pbmRleBgDIAEoBRIXCg9yZW1haW5pbmdfY291bnQYBCABKAUSDwoHbWVzc2FnZRgFIAEoCRJEChFjYW5jZWxsZWRfbWVzc2FnZRgGIAEoCzIpLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsbGVkTWVzc2FnZUluZm8iUgoXU2Vzc2lvblN0ZWVyUmVzcG9uc2VEdG8SDwoHb3V0Y29tZRgBIAEoCRIXCgptZXNzYWdlX2lkGAIgASgJSACIAQFCDQoLX21lc3NhZ2VfaWQiKQoWU2Vzc2lvblN0ZWVyUmVxdWVzdER0bxIPCgdjb250ZW50GAEgASgJIjAKHVF1ZXVlZE1lc3NhZ2VTdGVlclJlc3BvbnNlRHRvEg8KB291dGNvbWUYASABKAkiPAocUXVldWVkTWVzc2FnZVN0ZWVyUmVxdWVzdER0bxIcChRleGVjdXRpb25fbWVzc2FnZV9pZBgBIAEoCSIpChZQb3N0TWVzc2FnZVJlc3BvbnNlRHRvEg8KB21lc3NhZ2UYASABKAkitwEKElBvc3RNZXNzYWdlUmVxdWVzdBIPCgdjb250ZW50GAEgASgJEgwKBG1vZGUYAiABKAkSQgoKaW1hZ2VfcmVmcxgDIAMoCzIuLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvbk1lc3NhZ2VJbWFnZVJlZkR0bxI+Cg9wYXRoX3JlZmVyZW5jZXMYBCADKAsyJS5oYWdpY29kZS5zZXNzaW9uLnYxLlBhdGhSZWZlcmVuY2VEdG8iXgorQ29udmVydFRvUHJvcG9zYWxIYWdpU2tpbGxQcm9tcHRSZXNwb25zZUR0bxIPCgdvdXRjb21lGAEgASgJEhMKBnByb21wdBgCIAEoCUgAiAEBQgkKB19wcm9tcHQiYAofQW5ub3RhdGlvblN1Ym1pc3Npb25SZXNwb25zZUR0bxIPCgdtZXNzYWdlGAEgASgJEhgKEGFubm90YXRpb25fY291bnQYAiABKAUSEgoKZmlsZV9jb3VudBgDIAEoBSLKAQoSQmxvY2tBbm5vdGF0aW9uRHRvEhkKEXN0YXJ0X2xpbmVfbnVtYmVyGAEgASgFEhcKD2VuZF9saW5lX251bWJlchgCIAEoBRIYChBvcmlnaW5hbF9jb250ZW50GAMgASgJEhIKCmJsb2NrX3R5cGUYBCABKAkSFwoPYW5ub3RhdGlvbl90ZXh0GAUgASgJEi0KCXRpbWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASCgoCaWQYByABKAkirwEKEUZpbGVBbm5vdGF0aW9uRHRvEhEKCWZpbGVfbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSQgoRYmxvY2tfYW5ub3RhdGlvbnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLkJsb2NrQW5ub3RhdGlvbkR0bxIcCg9maWxlX2Fubm90YXRpb24YBCABKAlIAIgBAUISChBfZmlsZV9hbm5vdGF0aW9uIt8BChdBbm5vdGF0aW9uU3VibWlzc2lvbkR0bxISCgpzZXNzaW9uX2lkGAEgASgJEjUKBWZpbGVzGAIgAygLMiYuaGFnaWNvZGUuc2Vzc2lvbi52MS5GaWxlQW5ub3RhdGlvbkR0bxIZChF0b3RhbF9hbm5vdGF0aW9ucxgDIAEoBRIwCgxzdWJtaXR0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhoKDWdsb2JhbF9wcm9tcHQYBSABKAlIAIgBAUIQCg5fZ2xvYmFsX3Byb21wdDKNCQoXU2Vzc2lvbk1lc3NhZ2luZ1NlcnZpY2USdQoSR2V0U2Vzc2lvbk1lc3NhZ2VzEi4uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXF1ZXN0Gi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uTWVzc2FnZXNSZXNwb25zZRJmCg1DYW5jZWxTZXNzaW9uEikuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxTZXNzaW9uUmVxdWVzdBoqLmhhZ2ljb2RlLnNlc3Npb24udjEuQ2FuY2VsU2Vzc2lvblJlc3BvbnNlEo0BChpHZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1cxI2LmhhZ2ljb2RlLnNlc3Npb24udjEuR2V0U2Vzc2lvblByb2Nlc3NpbmdTdGF0dXNSZXF1ZXN0GjcuaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRTZXNzaW9uUHJvY2Vzc2luZ1N0YXR1c1Jlc3BvbnNlEnsKFENhbmNlbFBlbmRpbmdNZXNzYWdlEjAuaGFnaWNvZGUuc2Vzc2lvbi52MS5DYW5jZWxQZW5kaW5nTWVzc2FnZVJlcXVlc3QaMS5oYWdpY29kZS5zZXNzaW9uLnYxLkNhbmNlbFBlbmRpbmdNZXNzYWdlUmVzcG9uc2USYwoMU3RlZXJTZXNzaW9uEiguaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXF1ZXN0GikuaGFnaWNvZGUuc2Vzc2lvbi52MS5TdGVlclNlc3Npb25SZXNwb25zZRJ1ChJTdGVlclF1ZXVlZE1lc3NhZ2USLi5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlcXVlc3QaLy5oYWdpY29kZS5zZXNzaW9uLnYxLlN0ZWVyUXVldWVkTWVzc2FnZVJlc3BvbnNlEnUKElBvc3RTZXNzaW9uTWVzc2FnZRIuLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVxdWVzdBovLmhhZ2ljb2RlLnNlc3Npb24udjEuUG9zdFNlc3Npb25NZXNzYWdlUmVzcG9uc2USqAEKI0dldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0Ej8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZXRDb252ZXJ0VG9Qcm9wb3NhbEhhZ2lTa2lsbFByb21wdFJlcXVlc3QaQC5oYWdpY29kZS5zZXNzaW9uLnYxLkdldENvbnZlcnRUb1Byb3Bvc2FsSGFnaVNraWxsUHJvbXB0UmVzcG9uc2UShwEKGFN1Ym1pdFNlc3Npb25Bbm5vdGF0aW9ucxI0LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVxdWVzdBo1LmhhZ2ljb2RlLnNlc3Npb24udjEuU3VibWl0U2Vzc2lvbkFubm90YXRpb25zUmVzcG9uc2VCKaoCJlBDb2RlLkh0dHBBcGkuR3JwY0NvbnRyYWN0cy5TZXNzaW9uLlYxYgZwcm90bzM",[Ne,Ee,ae]),Id=G(ht,13),yd=G(ht,17),Cd=G(ht,35),Bd=G(ht,40),Fd=Ve(ht,0),pe=q("CipoYWdpY29kZS9zZXNzaW9uL3YxL3Nlc3Npb25fcHJvcG9zYWwucHJvdG8SE2hhZ2ljb2RlLnNlc3Npb24udjEicAoeT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSOgoEYm9keRgCIAEoCzIsLmhhZ2ljb2RlLnNlc3Npb24udjEuT3B0aW1pemVQcm9wb3NhbFJlcXVlc3QibQofT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXNwb25zZRJKCgZyZXN1bHQYASABKAsyOi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzcG9uc2VEdG8ibAoXR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRI9CgRib2R5GAIgASgLMi8uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZW5lcmF0ZVByb3Bvc2FsUmVxdWVzdER0byJZChhHZW5lcmF0ZVByb3Bvc2FsUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8iaAoVQXJjaGl2ZVNlc3Npb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSOwoEYm9keRgCIAEoCzItLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXF1ZXN0RHRvIlEKFkFyY2hpdmVTZXNzaW9uUmVzcG9uc2USNwoGcmVzdWx0GAEgASgLMicuaGFnaWNvZGUuc2Vzc2lvbi52MS5TZXNzaW9uUmVzcG9uc2VEdG8iagoWRXhlY3V0ZVByb3Bvc2FsUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEjwKBGJvZHkYAiABKAsyLi5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlcXVlc3REdG8iWAoXRXhlY3V0ZVByb3Bvc2FsUmVzcG9uc2USPQoGcmVzdWx0GAEgASgLMi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5TaW1wbGVNZXNzYWdlUmVzcG9uc2VEdG8iLAoWQ29tcGxldGVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIlIKF0NvbXBsZXRlU2Vzc2lvblJlc3BvbnNlEjcKBnJlc3VsdBgBIAEoCzInLmhhZ2ljb2RlLnNlc3Npb24udjEuU2Vzc2lvblJlc3BvbnNlRHRvIjMKHVZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkiWgoeVmFsaWRhdGVTZXNzaW9uRXhlY3V0ZVJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byIxChtWYWxpZGF0ZVNlc3Npb25TdGFydFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCSJYChxWYWxpZGF0ZVNlc3Npb25TdGFydFJlc3BvbnNlEjgKBnJlc3VsdBgBIAEoCzIoLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGlvblJlc3VsdER0byIzCh1WYWxpZGF0ZVNlc3Npb25BcmNoaXZlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIloKHlZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXNwb25zZRI4CgZyZXN1bHQYASABKAsyKC5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25SZXN1bHREdG8icgohUHJvcG9zYWxPcHRpbWl6YXRpb25EaWFnbm9zdGljRHRvEgwKBGNvZGUYASABKAkSEAoIc2V2ZXJpdHkYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRISCgVmaWVsZBgEIAEoCUgAiAEBQggKBl9maWVsZCKOAQotUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVWYWxpZGF0aW9uUmVzdWx0RHRvEhAKCGlzX3ZhbGlkGAEgASgIEksKC2RpYWdub3N0aWNzGAIgAygLMjYuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkRpYWdub3N0aWNEdG8i3AMKJ1Byb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0bxIXCgpzY3JpcHRfa2V5GAEgASgJSACIAQESHQoQc2VsZWN0ZWRfaGVyb19pZBgCIAEoCUgBiAEBEhwKD2NhcHRhaW5faGVyb19pZBgDIAEoCUgCiAEBEhYKCXJvc3Rlcl9pZBgEIAEoCUgDiAEBEmsKEGV4dGVuc2lvbl9maWVsZHMYBSADKAsyUS5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uU2NlbmFyaW9TZXR0aW5nc0R0by5FeHRlbnNpb25GaWVsZHNFbnRyeRIWCglzdGFnZV9rZXkYBiABKAlIBIgBARIdChBzZWxlY3Rpb25fc291cmNlGAcgASgJSAWIAQEaNgoURXh0ZW5zaW9uRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUINCgtfc2NyaXB0X2tleUITChFfc2VsZWN0ZWRfaGVyb19pZEISChBfY2FwdGFpbl9oZXJvX2lkQgwKCl9yb3N0ZXJfaWRCDAoKX3N0YWdlX2tleUITChFfc2VsZWN0aW9uX3NvdXJjZSK+AwojUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVSZXN1bHREdG8SHAoPb3B0aW1pemVkX3RpdGxlGAEgASgJSACIAQESKAobb3B0aW1pemVkX3Byb3Bvc2FsX21hcmtkb3duGAIgASgJSAGIAQESHwoXb3B0aW1pemVkX3Byb3Bvc2FsX25hbWUYAyABKAkSHQoVb3B0aW1pemVkX2Rlc2NyaXB0aW9uGAQgASgJElcKEXNjZW5hcmlvX3NldHRpbmdzGAUgASgLMjwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvblNjZW5hcmlvU2V0dGluZ3NEdG8SVgoKdmFsaWRhdGlvbhgGIAEoCzJCLmhhZ2ljb2RlLnNlc3Npb24udjEuUHJvcG9zYWxPcHRpbWl6YXRpb25CdW5kbGVWYWxpZGF0aW9uUmVzdWx0RHRvEhkKDHJhd19yZXNwb25zZRgHIAEoCUgCiAEBQhIKEF9vcHRpbWl6ZWRfdGl0bGVCHgocX29wdGltaXplZF9wcm9wb3NhbF9tYXJrZG93bkIPCg1fcmF3X3Jlc3BvbnNlItIICiRQcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVN1bW1hcnlEdG8SGwoTcmVxdWVzdF9maW5nZXJwcmludBgBIAEoCRI0ChBnZW5lcmF0ZWRfYXRfdXRjGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzb3VyY2UYAyABKAkSFQoNYXBwbGllZF90aXRsZRgEIAEoCRIdChVhcHBsaWVkX3Byb3Bvc2FsX25hbWUYBSABKAkSIAoYcHJvcG9zYWxfZHJhZnRfYXZhaWxhYmxlGAYgASgIEiAKGHNjZW5hcmlvX3NldHRpbmdzX3N0YXR1cxgHIAEoCRIaChJhcHBsaWVkX3RpdGxlX21vZGUYCCABKAkSEAoIaXNfdmFsaWQYCSABKAgSSwoLZGlhZ25vc3RpY3MYCiADKAsyNi5oYWdpY29kZS5zZXNzaW9uLnYxLlByb3Bvc2FsT3B0aW1pemF0aW9uRGlhZ25vc3RpY0R0bxImChlvcHRpbWl6ZWRfdGl0bGVfY2FuZGlkYXRlGAsgASgJSACIAQESIwoWcHJvcG9zYWxfZHJhZnRfcHJldmlldxgMIAEoCUgBiAEBEhoKDWFydGlmYWN0X3BhdGgYDSABKAlIAogBARIbCg5jb3JyZWxhdGlvbl9pZBgOIAEoCUgDiAEBEh0KEHJlc29sdmVkX2hlcm9faWQYDyABKAlIBIgBARIfChJyZXNvbHZlZF9oZXJvX25hbWUYECABKAlIBYgBARIfChJyZXNvbHZlZF9oZXJvX2ljb24YESABKAlIBogBARIoChtyZXNvbHZlZF9oZXJvX2V4ZWN1dG9yX3R5cGUYEiABKAlIB4gBARIiChVoZXJvX3NlbGVjdGlvbl9zb3VyY2UYEyABKAlICIgBARIjChZoZXJvX3JvdXRpbmdfc3RhZ2Vfa2V5GBQgASgJSAmIAQESJAoXaGVyb19yb3V0aW5nX3NjcmlwdF9rZXkYFSABKAlICogBARIkChdvcHRpbWl6YXRpb25fY2Vzc2lvbl9pZBgWIAEoCUgLiAEBQhwKGl9vcHRpbWl6ZWRfdGl0bGVfY2FuZGlkYXRlQhkKF19wcm9wb3NhbF9kcmFmdF9wcmV2aWV3QhAKDl9hcnRpZmFjdF9wYXRoQhEKD19jb3JyZWxhdGlvbl9pZEITChFfcmVzb2x2ZWRfaGVyb19pZEIVChNfcmVzb2x2ZWRfaGVyb19uYW1lQhUKE19yZXNvbHZlZF9oZXJvX2ljb25CHgocX3Jlc29sdmVkX2hlcm9fZXhlY3V0b3JfdHlwZUIYChZfaGVyb19zZWxlY3Rpb25fc291cmNlQhkKF19oZXJvX3JvdXRpbmdfc3RhZ2Vfa2V5QhoKGF9oZXJvX3JvdXRpbmdfc2NyaXB0X2tleUIaChhfb3B0aW1pemF0aW9uX2Nlc3Npb25faWQi1QEKJVByb3Bvc2FsT3B0aW1pemF0aW9uQnVuZGxlUmVzcG9uc2VEdG8SSAoGcmVzdWx0GAEgASgLMjguaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVJlc3VsdER0bxJKCgdzdW1tYXJ5GAIgASgLMjkuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvbkJ1bmRsZVN1bW1hcnlEdG8SFgoOY29ycmVsYXRpb25faWQYAyABKAkiiQMKF09wdGltaXplUHJvcG9zYWxSZXF1ZXN0EhMKC2Rlc2NyaXB0aW9uGAEgASgJEiYKGXByb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2UYAiABKAlIAIgBARIjChZvcHRpbWl6YXRpb25fZGlyZWN0aW9uGAMgASgJSAGIAQESEgoFdGl0bGUYBCABKAlIAogBARIYChBpc19kZWZhdWx0X3RpdGxlGAUgASgIEiUKGG9yaWdpbmFsX2NoaWVmX2NvbXBsYWludBgGIAEoCUgDiAEBElcKEXNjZW5hcmlvX3NldHRpbmdzGAcgASgLMjwuaGFnaWNvZGUuc2Vzc2lvbi52MS5Qcm9wb3NhbE9wdGltaXphdGlvblNjZW5hcmlvU2V0dGluZ3NEdG9CHAoaX3Byb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2VCGQoXX29wdGltaXphdGlvbl9kaXJlY3Rpb25CCAoGX3RpdGxlQhsKGV9vcmlnaW5hbF9jaGllZl9jb21wbGFpbnQiRQoaUGxhbm5pbmdEaXJlY3Rpb25PcHRpb25EdG8SDwoCaWQYASABKAlIAIgBARIPCgdlbmFibGVkGAIgASgIQgUKA19pZCKMAgoaR2VuZXJhdGVQcm9wb3NhbFJlcXVlc3REdG8SIAoTZW5hYmxlX2V4cGxvcmVfbW9kZRgBIAEoCEgAiAEBEkwKE3BsYW5uaW5nX2RpcmVjdGlvbnMYAiADKAsyLy5oYWdpY29kZS5zZXNzaW9uLnYxLlBsYW5uaW5nRGlyZWN0aW9uT3B0aW9uRHRvEiYKGXByb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2UYAyABKAlIAYgBARIUCgdoZXJvX2lkGAQgASgJSAKIAQFCFgoUX2VuYWJsZV9leHBsb3JlX21vZGVCHAoaX3Byb3Bvc2FsX2NvbnRlbnRfbGFuZ3VhZ2VCCgoIX2hlcm9faWQiPAoYQXJjaGl2ZVNlc3Npb25SZXF1ZXN0RHRvEhQKB2hlcm9faWQYASABKAlIAIgBAUIKCghfaGVyb19pZCI9ChlFeGVjdXRlUHJvcG9zYWxSZXF1ZXN0RHRvEhQKB2hlcm9faWQYASABKAlIAIgBAUIKCghfaGVyb19pZCJXCgtDb25mbGljdER0bxIMCgR0eXBlGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRISCgpyZXNvbHV0aW9uGAQgASgJImsKElZhbGlkYXRpb25Jc3N1ZUR0bxIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEAoIc2V2ZXJpdHkYAyABKAkSFgoJZW50aXR5X2lkGAQgASgJSACIAQFCDAoKX2VudGl0eV9pZCKFAQoUVmFsaWRhdGlvblN1bW1hcnlEdG8SFQoNcHJvamVjdF9jb3VudBgBIAEoBRIVCg1zZXNzaW9uX2NvdW50GAIgASgFEh8KF2R1cGxpY2F0ZV9wcm9qZWN0X2NvdW50GAMgASgFEh4KFm9ycGhhbmVkX3Nlc3Npb25fY291bnQYBCABKAUijAIKE1ZhbGlkYXRpb25SZXN1bHREdG8SEAoIaXNfdmFsaWQYASABKAgSOQoId2FybmluZ3MYAiADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25Jc3N1ZUR0bxI3CgZlcnJvcnMYAyADKAsyJy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25Jc3N1ZUR0bxIzCgljb25mbGljdHMYBCADKAsyIC5oYWdpY29kZS5zZXNzaW9uLnYxLkNvbmZsaWN0RHRvEjoKB3N1bW1hcnkYBSABKAsyKS5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRpb25TdW1tYXJ5RHRvMtwHChZTZXNzaW9uUHJvcG9zYWxTZXJ2aWNlEoQBChdPcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbBIzLmhhZ2ljb2RlLnNlc3Npb24udjEuT3B0aW1pemVTZXNzaW9uUHJvcG9zYWxSZXF1ZXN0GjQuaGFnaWNvZGUuc2Vzc2lvbi52MS5PcHRpbWl6ZVNlc3Npb25Qcm9wb3NhbFJlc3BvbnNlEm8KEEdlbmVyYXRlUHJvcG9zYWwSLC5oYWdpY29kZS5zZXNzaW9uLnYxLkdlbmVyYXRlUHJvcG9zYWxSZXF1ZXN0Gi0uaGFnaWNvZGUuc2Vzc2lvbi52MS5HZW5lcmF0ZVByb3Bvc2FsUmVzcG9uc2USaQoOQXJjaGl2ZVNlc3Npb24SKi5oYWdpY29kZS5zZXNzaW9uLnYxLkFyY2hpdmVTZXNzaW9uUmVxdWVzdBorLmhhZ2ljb2RlLnNlc3Npb24udjEuQXJjaGl2ZVNlc3Npb25SZXNwb25zZRJsCg9FeGVjdXRlUHJvcG9zYWwSKy5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlcXVlc3QaLC5oYWdpY29kZS5zZXNzaW9uLnYxLkV4ZWN1dGVQcm9wb3NhbFJlc3BvbnNlEmwKD0NvbXBsZXRlU2Vzc2lvbhIrLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29tcGxldGVTZXNzaW9uUmVxdWVzdBosLmhhZ2ljb2RlLnNlc3Npb24udjEuQ29tcGxldGVTZXNzaW9uUmVzcG9uc2USgQEKFlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGUSMi5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkV4ZWN1dGVSZXF1ZXN0GjMuaGFnaWNvZGUuc2Vzc2lvbi52MS5WYWxpZGF0ZVNlc3Npb25FeGVjdXRlUmVzcG9uc2USewoUVmFsaWRhdGVTZXNzaW9uU3RhcnQSMC5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvblN0YXJ0UmVxdWVzdBoxLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uU3RhcnRSZXNwb25zZRKBAQoWVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZRIyLmhhZ2ljb2RlLnNlc3Npb24udjEuVmFsaWRhdGVTZXNzaW9uQXJjaGl2ZVJlcXVlc3QaMy5oYWdpY29kZS5zZXNzaW9uLnYxLlZhbGlkYXRlU2Vzc2lvbkFyY2hpdmVSZXNwb25zZUIpqgImUENvZGUuSHR0cEFwaS5HcnBjQ29udHJhY3RzLlNlc3Npb24uVjFiBnByb3RvMw",[Ee,ae]),wd=G(pe,1),Ud=G(pe,3),Jd=G(pe,5),kd=G(pe,7),Kd=G(pe,9),xd=G(pe,22),zd=G(pe,24),Ld=G(pe,25),jd=G(pe,26),Td=Ve(pe,0),_t=new Set([h.INT64,h.UINT64,h.SINT64,h.FIXED64,h.SFIXED64]),jr=e=>e.typeName.startsWith("google.protobuf.");function Pt(e){if(typeof e!="string")return e;const t=Number(e);return Number.isSafeInteger(t)?t:e}function Wt(e,t){if(t==null||typeof t!="object"||Array.isArray(t)||jr(e))return t;const n=t;for(const o of e.fields){const a=n[o.jsonName];a!==void 0&&(n[o.jsonName]=Hd(o,a))}return n}function Hd(e,t){switch(e.fieldKind){case"scalar":return _t.has(e.scalar)?Pt(t):t;case"message":return Wt(e.message,t);case"list":return Array.isArray(t)?e.listKind==="scalar"?_t.has(e.scalar)?t.map(Pt):t:e.listKind==="message"?t.map(n=>Wt(e.message,n)):t:t;case"map":{if(t===null||typeof t!="object"||Array.isArray(t))return t;const n=t;for(const o of Object.keys(n))e.mapKind==="scalar"&&_t.has(e.scalar)?n[o]=Pt(n[o]):e.mapKind==="message"&&(n[o]=Wt(e.message,n[o]));return n}default:return t}}function Qd(e,t){return Wt(e,hr(e,t,{alwaysEmitImplicit:!0}))}function Md(e,t){return Qd(e,t).result}function St(e,t,n=0){if(t===null||typeof t!="object"||Array.isArray(t)||jr(e)||n>8)return t;const o=t;for(const a of e.fields){const r=o[a.jsonName];if(!(r===null||typeof r!="object")){if(a.fieldKind==="message")St(a.message,r,n+1);else if(a.fieldKind==="list"&&a.listKind==="message"&&Array.isArray(r))r.forEach(i=>St(a.message,i,n+1));else if(a.fieldKind==="map"&&!Array.isArray(r)){const i=r;for(const s of Object.keys(i)){const l=i[s];a.mapKind==="scalar"&&a.scalar===h.STRING?l===null?delete i[s]:(typeof l=="number"||typeof l=="boolean")&&(i[s]=String(l)):a.mapKind==="message"&&St(a.message,l,n+1)}}}}return t}function H(e,t){return fr(e,t===void 0?t:St(e,JSON.parse(JSON.stringify(t))),{ignoreUnknownFields:!0})}function la(e,t){const n=Cr(e);if(n)throw t.forEach((o,a)=>{n.metadata.append(a,o)}),n;if(!t.has("Grpc-Status")&&!e.has("Grpc-Status"))throw new S("protocol error: missing status",R.Internal)}function Od(e,t,n,o){var a,r;const i=new Headers(n??{});i.set(jc,e?_c:Pc),i.set(Dc,"1");const s=(r=(a=i.get("User-Agent"))!==null&&a!==void 0?a:i.get("X-User-Agent"))!==null&&r!==void 0?r:"connect-es/2.2.0";return i.set(Oc,s),o&&i.set(Mc,s),t!==void 0&&i.set(Hc,`${t}m`),i}function ca(e,t,n,o,a,r){const i=Od(e,t,n,r);return a!=null&&i.set(Ir,a.name),o.length>0&&i.set(Tc,o.map(s=>s.name).join(",")),i}function Dd(e){switch(e){case 400:return R.Internal;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 429:return R.Unavailable;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function _d(e,t){var n;if(e>=200&&e<300)return{foundStatus:t.has(yr),headerError:Cr(t)};throw new S(decodeURIComponent((n=t.get("Grpc-Message"))!==null&&n!==void 0?n:`HTTP ${e}`),Dd(e),t)}function ua(e,t,n){const{foundStatus:o,headerError:a}=_d(t,n);let r;const i=n.get(Ir);if(i!==null&&i.toLowerCase()!=="identity"&&(r=e.find(s=>s.name===i),!r))throw new S(`unsupported response encoding "${i}"`,R.Internal,n);return{foundStatus:o,compression:r,headerError:a}}var da=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values=="function"?__values(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(r){n[r]=e[r]&&function(i){return new Promise(function(s,l){i=e[r](i),a(s,l,i.done,i.value)})}}function a(r,i,s,l){Promise.resolve(l).then(function(c){r({value:c,done:s})},i)}},Xe=function(e){return this instanceof Xe?(this.v=e,this):new Xe(e)},Pd=function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),a,r=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",i),a[Symbol.asyncIterator]=function(){return this},a;function i(Z){return function(N){return Promise.resolve(N).then(Z,p)}}function s(Z,N){o[Z]&&(a[Z]=function(V){return new Promise(function(C,J){r.push([Z,V,C,J])>1||l(Z,V)})},N&&(a[Z]=N(a[Z])))}function l(Z,N){try{c(o[Z](N))}catch(V){f(r[0][3],V)}}function c(Z){Z.value instanceof Xe?Promise.resolve(Z.value.v).then(m,p):f(r[0][2],Z)}function m(Z){l("next",Z)}function p(Z){l("throw",Z)}function f(Z,N){Z(N),r.shift(),r.length&&l(r[0][0],r[0][1])}};function $d(e){return{async unary(t,n,o,a,r,i){const s=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,await nu({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Vt(vr([l.message]),Mo(s.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,headerError:p}=ua(e.acceptCompression,c.status,c.header),{trailer:f,message:Z}=await Ic(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(s.getO(e.useBinaryFormat),128,ea()),async N=>{var V,C,J,u;let d,g;try{for(var b=!0,A=da(N),E;E=await A.next(),V=E.done,!V;b=!0){u=E.value,b=!1;const v=u;if(v.end){if(g!==void 0)throw new S("protocol error: received extra trailer",R.Unimplemented);g=v.value}else{if(d!==void 0)throw new S("protocol error: received extra output message for unary method",R.Unimplemented);d=v.value}}}catch(v){C={error:v}}finally{try{!b&&!V&&(J=A.return)&&await J.call(A)}finally{if(C)throw C.error}}return{trailer:g,message:d}},{propagateDownStreamError:!1});if(f===void 0)throw p??new S("protocol error: missing trailer",c.header.has("Grpc-Status")?R.Unimplemented:R.Unknown);if(la(f,c.header),Z===void 0)throw new S("protocol error: missing output message for unary method",f.has("Grpc-Status")?R.Unimplemented:R.Unknown);return{stream:!1,service:t.parent,method:t,header:c.header,message:Z,trailer:f}}})},async stream(t,n,o,a,r,i){const s=na(t,e.binaryOptions,e.jsonOptions,e);return o=o===void 0?e.defaultTimeoutMs:o<=0?void 0:o,ou({interceptors:e.interceptors,signal:n,timeoutMs:o,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:ta(e.baseUrl,t),header:ca(e.useBinaryFormat,o,a,e.acceptCompression,e.sendCompression,!0),contextValues:i??qo(),message:r},next:async l=>{const c=await e.httpClient({url:l.url,method:l.requestMethod,header:l.header,signal:l.signal,body:Vt(l.message,Mo(s.getI(e.useBinaryFormat)),Do(e.sendCompression,e.compressMinBytes),Po(),{propagateDownStreamError:!0})}),{compression:m,foundStatus:p,headerError:f}=ua(e.acceptCompression,c.status,c.header);if(f)throw f;const Z=Object.assign(Object.assign({},l),{header:c.header,trailer:new Headers,message:Vt(c.body,$o(e.readMaxBytes),_o(m??null,e.readMaxBytes),Oo(s.getO(e.useBinaryFormat),128,ea()),function(N){return Pd(this,arguments,function*(){var V,C,J,u;if(p){if((yield Xe(N[Symbol.asyncIterator]().next())).done!==!0)throw new S("protocol error: extra data for trailers-only",R.InvalidArgument);return yield Xe(void 0)}let d=!1;try{for(var g=!0,b=da(N),A;A=yield Xe(b.next()),V=A.done,!V;g=!0){u=A.value,g=!1;const E=u;if(E.end){if(d)throw new S("protocol error: received extra trailer",R.InvalidArgument);d=!0,la(E.value,c.header),E.value.forEach((v,U)=>Z.trailer.set(U,v));continue}if(d)throw new S("protocol error: received extra message after trailer",R.InvalidArgument);yield yield Xe(E.value)}}catch(E){C={error:E}}finally{try{!g&&!V&&(J=b.return)&&(yield Xe(J.call(b)))}finally{if(C)throw C.error}}if(!d)throw new S("protocol error: missing trailer",R.Internal)})},{propagateDownStreamError:!0})});return Z}})}}}function Kt(e){let t=R.Internal;const n=Mn(e).map(xt);n.some(a=>a.code=="ERR_STREAM_WRITE_AFTER_END")||n.some(a=>a.code=="ERR_STREAM_DESTROYED"||a.code=="ERR_HTTP2_INVALID_STREAM"||a.code=="ECONNRESET")?t=R.Aborted:n.some(a=>a.code=="ETIMEDOUT"||a.code=="ENOTFOUND"||a.code=="EAI_AGAIN"||a.code=="ECONNREFUSED")&&(t=R.Unavailable);const o=S.from(e,t);return o!==e&&(o.cause=e),o}function Mn(e){const t=[];for(;!(!(e instanceof Error)||t.includes(e)||(t.push(e),!("cause"in e)));)e=e.cause;return t}function xt(e){const t={};return e instanceof Error&&("code"in e&&typeof e.code=="string"&&(t.code=e.code),"syscall"in e&&typeof e.syscall=="string"&&(t.syscall=e.syscall)),t}function qd(e){switch(e){case M.PROTOCOL_ERROR:case M.INTERNAL_ERROR:case M.FLOW_CONTROL_ERROR:case M.SETTINGS_TIMEOUT:case M.FRAME_SIZE_ERROR:case M.COMPRESSION_ERROR:case M.CONNECT_ERROR:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Internal);case M.REFUSED_STREAM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Unavailable);case M.CANCEL:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.Canceled);case M.ENHANCE_YOUR_CALM:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.ResourceExhausted);case M.INADEQUATE_SECURITY:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);case M.HTTP_1_1_REQUIRED:return new S(`http/2 stream closed with error code ${M[e]} (0x${e.toString(16)})`,R.PermissionDenied);default:break}}var M;(function(e){e[e.PROTOCOL_ERROR=1]="PROTOCOL_ERROR",e[e.INTERNAL_ERROR=2]="INTERNAL_ERROR",e[e.FLOW_CONTROL_ERROR=3]="FLOW_CONTROL_ERROR",e[e.SETTINGS_TIMEOUT=4]="SETTINGS_TIMEOUT",e[e.STREAM_CLOSED=5]="STREAM_CLOSED",e[e.FRAME_SIZE_ERROR=6]="FRAME_SIZE_ERROR",e[e.REFUSED_STREAM=7]="REFUSED_STREAM",e[e.CANCEL=8]="CANCEL",e[e.COMPRESSION_ERROR=9]="COMPRESSION_ERROR",e[e.CONNECT_ERROR=10]="CONNECT_ERROR",e[e.ENHANCE_YOUR_CALM=11]="ENHANCE_YOUR_CALM",e[e.INADEQUATE_SECURITY=12]="INADEQUATE_SECURITY",e[e.HTTP_1_1_REQUIRED=13]="HTTP_1_1_REQUIRED"})(M||(M={}));var em=(0,Ct.promisify)(Me.gzip),tm=(0,Ct.promisify)(Me.gunzip),nm=(0,Ct.promisify)(Me.brotliCompress),om=(0,Ct.promisify)(Me.brotliDecompress),am={name:"gzip",compress(e){return Yt(em(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Tr(tm(e,{maxOutputLength:t}),t))}},rm={name:"br",compress(e){return Yt(nm(e,{}))},decompress(e,t){return e.length==0?Promise.resolve(new Uint8Array(0)):Yt(Tr(om(e,{maxOutputLength:t}),t))}};function Yt(e){return e.then(t=>t.buffer instanceof ArrayBuffer?t:new Uint8Array(t))}function Tr(e,t){return e.catch(n=>{var o;const a=xt(n);let r=R.Internal,i="decompression failed";switch(a.code){case"ERR_BUFFER_TOO_LARGE":r=R.ResourceExhausted,i=`message is larger than configured readMaxBytes ${t} after decompression`;break;case"Z_DATA_ERROR":case"ERR_PADDING_2":r=R.InvalidArgument;break;default:!((o=a.code)===null||o===void 0)&&o.startsWith("ERR__ERROR_FORMAT_")&&(r=R.InvalidArgument);break}return Promise.reject(new S(i,r,void 0,void 0,n))})}function zt(e){const t=new Headers;for(const[n,o]of Object.entries(e))if(!n.startsWith(":")&&o!==void 0)if(typeof o=="string")t.append(n,o);else if(typeof o=="number")t.append(n,String(o));else for(const a of o)t.append(n,a);return t}function Hr(e,t){if(e===void 0&&t===void 0)return;const n=Object.create(null);if(t!==void 0)if(Array.isArray(t))for(let o=0;o+1<t.length;o+=2){const a=t[o],r=t[o+1];Array.isArray(n[a])?n[a].push(r):typeof n[a]=="string"?n[a]=[n[a],r]:n[a]=r}else for(const[o,a]of Object.entries(t))Array.isArray(a)?n[o]=a.concat():a!==void 0&&(n[o]=a);if(e!==void 0)if(Array.isArray(e))for(const[o,a]of e)$t(n,o,a);else if("forEach"in e)typeof e.forEach=="function"&&e.forEach((o,a)=>{$t(n,a,o)});else for(const[o,a]of Object.entries(e))$t(n,o,a);return n}function $t(e,t,n){t=t.toLowerCase();const o=e[t];Array.isArray(o)?o.push(n):o===void 0?e[t]=n:e[t]=[o.toString(),n]}var Qr=class{state(){return this.s.t=="ready"?this.verifying!==void 0?"verifying":this.s.streamCount()>0?"open":"idle":this.s.t}error(){if(this.s.t=="error")return this.s.reason}constructor(e,t,n){var o,a,r,i;this.s=bn(),this.shuttingDown=[],this.authority=new URL(e).origin,this.http2SessionOptions=n,this.options={pingIntervalMs:(o=t?.pingIntervalMs)!==null&&o!==void 0?o:Number.POSITIVE_INFINITY,pingTimeoutMs:(a=t?.pingTimeoutMs)!==null&&a!==void 0?a:1e3*15,pingIdleConnection:(r=t?.pingIdleConnection)!==null&&r!==void 0?r:!1,idleConnectionTimeoutMs:(i=t?.idleConnectionTimeoutMs)!==null&&i!==void 0?i:1e3*60*15}}async connect(){try{return(await this.gotoReady()).streamCount()>0?"open":"idle"}catch{return"error"}}async request(e,t,n,o){for(;;){const a=await this.gotoReady();try{const r=a.conn.request(Object.assign(Object.assign({},n),{":method":e,":path":t}),o);return a.registerRequest(r),r}catch(r){if(a.conn.closed||a.conn.destroyed)continue;throw r}}}notifyResponseByteRead(e){this.s.t=="ready"&&this.s.responseByteRead(e);for(const t of this.shuttingDown)t.responseByteRead(e)}abort(e){var t,n,o;const a=e??new S("connection aborted",R.Canceled);(n=(t=this.s).abort)===null||n===void 0||n.call(t,a);for(const r of this.shuttingDown)(o=r.abort)===null||o===void 0||o.call(r,a);this.setState(Zt(a))}async gotoReady(){for(this.s.t=="ready"?this.s.isShuttingDown()||this.s.conn.closed||this.s.conn.destroyed?this.setState(qt(this.authority,this.http2SessionOptions)):this.s.requiresVerify()&&await this.verify(this.s):(this.s.t=="closed"||this.s.t=="error")&&this.setState(qt(this.authority,this.http2SessionOptions));this.s.t!=="ready";){if(this.s.t==="error")throw this.s.reason;this.s.t==="connecting"&&await this.s.conn}return this.s}setState(e){var t,n;if((n=(t=this.s).onExitState)===null||n===void 0||n.call(t),this.s.t=="ready"&&this.s.isShuttingDown()){const o=this.s;this.shuttingDown.push(o),o.onClose=o.onError=()=>{const a=this.shuttingDown.indexOf(o);a!==-1&&this.shuttingDown.splice(a,1)}}switch(e.t){case"connecting":e.conn.then(o=>{this.setState(sm(o,this.options))},o=>{this.setState(Zt(o))});break;case"ready":e.onClose=()=>this.setState(bn()),e.onError=o=>this.setState(Zt(o));break;case"closed":break;case"error":break}this.s=e}verify(e){return this.verifying!==void 0?this.verifying:(this.verifying=e.verify().then(t=>{t||this.setState(qt(this.authority,this.http2SessionOptions))},t=>{this.setState(Zt(t))}).finally(()=>{this.verifying=void 0}),this.verifying)}};function bn(){return{t:"closed"}}function im(e){return{t:"error",reason:e}}function Zt(e){return e instanceof S&&S.from(e).code==R.Canceled?bn():im(e)}function qt(e,t){let n,o;const a=new Promise((c,m)=>{n=c,o=m}),r=he.connect(e,t);r.on("connect",i),r.on("error",s);function i(){n?.(r),l()}function s(c){o?.(Kt(c)),l()}function l(){r.off("connect",i),r.off("error",s)}return{t:"connecting",conn:a,abort(c){r.destroyed||r.destroy(void 0,he.constants.NGHTTP2_CANCEL),o?.(c)},onExitState(){l()}}}function sm(e,t){lm(e),e.unref();let n=Date.now(),o=0,a,r,i=!1,s=!1,l;V();const c={t:"ready",conn:e,streamCount(){return o},requiresVerify(){return Date.now()-n>t.pingIntervalMs},isShuttingDown(){return i},onClose:void 0,onError:void 0,registerRequest(b){o++,o==1&&(e.ref(),m(),N()),b.once("response",()=>{n=Date.now(),m()}),b.once("close",()=>{o--,o==0&&(e.unref(),m(),V())})},responseByteRead(b){b.session===e&&(e.closed||e.destroyed||o<=0||(n=Date.now(),m()))},verify(){return e.ref(),new Promise(b=>{const A=()=>{b(!1)};Z(()=>{o==0&&e.unref(),e.off("error",A),e.off("close",A),b(!0)}),e.once("error",A),e.once("close",A)})},abort(b){e.destroyed||(e.once("error",()=>{}),e.destroy(b,he.constants.NGHTTP2_CANCEL))},onExitState(){c.isShuttingDown()||(g(),this.onError=void 0,this.onClose=void 0)}};function m(){p(),(o>0||t.pingIdleConnection)&&(a=en(f,t.pingIntervalMs))}function p(){clearTimeout(a),clearTimeout(r)}function f(){Z(m)}function Z(b){clearTimeout(r),r=en(()=>{e.destroy(new S("PING timed out",R.Unavailable),he.constants.NGHTTP2_CANCEL)},t.pingTimeoutMs),e.ping((A,E)=>{if(clearTimeout(r),A===null){if(E>t.pingTimeoutMs){e.destroy(new S("PING timed out",R.Unavailable),he.constants.NGHTTP2_CANCEL);return}n=Date.now(),b()}})}function N(){clearTimeout(l)}function V(){l=en(C,t.idleConnectionTimeoutMs)}function C(){e.close(),u()}function J(b,A,E){if(b===he.constants.NGHTTP2_NO_ERROR&&o===0){e.destroy(new S("received GOAWAY without any open streams",R.Canceled),he.constants.NGHTTP2_NO_ERROR);return}i=!0;const v=Buffer.from("too_many_pings","ascii");E?.equals(v)&&(t.pingIntervalMs=t.pingIntervalMs*2,s=!0)}function u(){var b;g(),(b=c.onClose)===null||b===void 0||b.call(c)}function d(b){var A,E;if(g(),s){const v=new S(`http/2 connection closed with error code ENHANCE_YOUR_CALM (0x${he.constants.NGHTTP2_ENHANCE_YOUR_CALM.toString(16)}), too_many_pings, doubled the interval`,R.ResourceExhausted);(A=c.onError)===null||A===void 0||A.call(c,v)}else(E=c.onError)===null||E===void 0||E.call(c,Kt(b))}function g(){p(),N(),e.off("error",d),e.off("close",u),e.off("goaway",J)}return e.on("error",d),e.on("close",u),e.on("goaway",J),c}function en(e,t){if(!(t>2147483647))return setTimeout(e,t).unref()}function lm(e){if(e.connecting)throw new S("expected open session, but it is connecting",R.Internal);if(e.destroyed)throw new S("expected open session, but it is destroyed",R.Internal);if(e.closed)throw new S("expected open session, but it is closed",R.Internal)}function ma(e){var t;return e.httpVersion=="1.1"?cm(e.nodeOptions):um((t=e.sessionProvider)!==null&&t!==void 0?t:(n=>new Qr(n)))}function cm(e){return async function(n){const o=Or(n.signal);return new Promise((a,r)=>{o.onError(i=>{r(i)}),dm(o,n.url,Object.assign(Object.assign({},e),{headers:Hr(n.header,e?.headers),method:n.method}),i=>{Mr(n,i,o),i.on("response",s=>{var l;s.on("error",o.error),o.onError(m=>s.destroy(m));const c=new Headers;a({status:(l=s.statusCode)!==null&&l!==void 0?l:0,header:zt(s.headers),body:mm(o,s,c),trailer:c})})})})}}function um(e){return function(n){const o=Or(n.signal),a=e(n.url);return new Promise((r,i)=>{o.onError(s=>{i(s)}),hm(o,a,n.url,n.method,Hr(n.header),{},s=>{Mr(n,s,o),s.on("response",l=>{var c;r({status:(c=l[":status"])!==null&&c!==void 0?c:0,header:zt(l),body:gm(o,s,a),trailer:bm(s)})})})})}}function dm(e,t,n,o){let a;new URL(t).protocol.startsWith("https")?a=on.request(t,n):a=nn.request(t,n),e.onError(r=>a.destroy(r)),a.flushHeaders(),a.on("error",e.error),a.on("socket",function(i){function s(){i.off("connect",s),o(a)}i.readyState==="open"?o(a):i.on("connect",s)})}function mm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&(zt(t.trailers).forEach((r,i)=>{n.set(i,r)}),e.close()),a},throw(a){throw e.error(a),a}}}}}function hm(e,t,n,o,a,r,i){const s=new URL(n);if(s.origin!==t.authority){const l=`cannot make a request to ${s.origin}: the http2 session is connected to ${t.authority}`;e.error(new S(l,R.Internal));return}t.request(o,s.pathname+s.search,a,{}).then(l=>{e.onError(c=>{if(l.closed)return;const m=c.code==R.Canceled?M.CANCEL:M.INTERNAL_ERROR;return new Promise(p=>l.close(m,p))}),l.on("error",function(m){l.writableEnded&&Mn(m).map(xt).some(p=>p.code=="ERR_STREAM_WRITE_AFTER_END")||e.error(m)}),l.on("close",function(){const m=qd(l.rstCode);m&&e.error(m)}),i(l)},l=>{e.error(l)})}function bm(e){const t=new Headers;return e.on("trailers",n=>{zt(n).forEach((o,a)=>{t.set(a,o)})}),t}function gm(e,t,n){const o=t[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return{async next(){const a=await e.race(o.next());return a.done===!0&&e.close(),n?.notifyResponseByteRead(t),a},throw(a){throw e.error(a),a}}}}}async function Mr(e,t,n){if(e.body===void 0){await new Promise(a=>t.end(a));return}const o=e.body[Symbol.asyncIterator]();return new Promise(a=>{r();function r(){n.isClosed()||o.next().then(i=>{if(i.done===!0){t.end(a);return}t.write(i.value,"binary",s=>{if(s==null){r();return}o.throw!==void 0&&o.throw(Kt(s)).catch(()=>{}),!(t.writableEnded&&Mn(s).map(xt).some(l=>l.code=="ERR_STREAM_WRITE_AFTER_END"))&&n.error(s)})},i=>{n.error(i)})}})}function Or(e){let t,n=!1,o,a=[];const r={error(l){if(!n){n=!0,o=l instanceof S?l:Kt(l),t?.(o);for(const c of a)c(o);i()}},close(){n||(n=!0,t&&t(new S("sentinel completed early",R.Internal)),i())},isClosed(){return n},onError(l){n?o!==void 0&&l(o):a.push(l)},race(l){let c;const m=new Promise((p,f)=>{c=p,t=f});return l.then(p=>{c?.(p)},p=>{t?.(p)}),n&&t?.(o??new S("sentinel completed early",R.Internal)),m}};function i(){e&&e.removeEventListener("abort",s),a=[],t=void 0}function s(){r.error(lt(this))}return e&&(e.addEventListener("abort",s),e.aborted&&r.error(lt(e))),r}function pm(e){var t,n,o,a;let r;if(e.httpVersion=="2"){let i;e.sessionManager?i=e.sessionManager:i=new Qr(e.baseUrl,{pingIntervalMs:e.pingIntervalMs,pingIdleConnection:e.pingIdleConnection,pingTimeoutMs:e.pingTimeoutMs,idleConnectionTimeoutMs:e.idleConnectionTimeoutMs},e.nodeOptions),r=ma({httpVersion:"2",sessionProvider:()=>i})}else r=ma({httpVersion:"1.1",nodeOptions:e.nodeOptions});return Object.assign(Object.assign(Object.assign({},e),{httpClient:r,useBinaryFormat:(t=e.useBinaryFormat)!==null&&t!==void 0?t:!0,interceptors:(n=e.interceptors)!==null&&n!==void 0?n:[],sendCompression:(o=e.sendCompression)!==null&&o!==void 0?o:null,acceptCompression:(a=e.acceptCompression)!==null&&a!==void 0?a:[am,rm]}),Nc(e.readMaxBytes,e.writeMaxBytes,e.compressMinBytes))}function Am(e){return $d(pm(e))}function Zm(e){return`cli/${e??"unknown"}`}var fm=Zm("0.1.0-dev.34.1.015c6d4"),Rm="/grpc";function Em(e){return`${e.replace(/\/+$/,"")}${Rm}`}var Nm=e=>async t=>{const{token:n,lang:o}=zr();return t.header.set("X-Hagi-Client",fm),n&&t.header.set("Authorization",`Bearer ${n}`),o&&t.header.set("Accept-Language",o),e(t)},ft;function Se(){const e=Em(zr().baseUrl);return(!ft||ft.baseUrl!==e)&&(ft={baseUrl:e,transport:Am({baseUrl:e,httpVersion:"1.1",useBinaryFormat:!0,interceptors:[Nm]})}),ft.transport}var de=()=>Ge(Cu,Se()),Te=()=>Ge(zu,Se()),Fe=()=>Ge(Ou,Se()),ha=()=>Ge($u,Se()),me=()=>Ge(bd,Se()),Gm=()=>Ge(pd,Se()),ve=()=>Ge(Yd,Se()),ba=()=>Ge(Fd,Se()),tt=()=>Ge(Td,Se());async function y(e,t){return Md(e,await t)}function Vm(){return{listSessions:async e=>y(Ed,ve().listSessions({type:e.type,activeOnly:e.activeOnly,includeArchived:e.includeArchived,projectId:e.projectId,projectIds:e.projectIds??[]})),getSession:async e=>y(fd,ve().getSession({sessionId:e})),createProposalSession:async e=>y(Zd,ve().openSession({body:H(Sd,e)})),createChatSession:async e=>y(Ad,ve().openChatSession({body:H(Wd,e)})),createHagiTaskSession:async e=>y(Vd,ve().startHagiTaskSession({body:H(Xd,e)})),listHagiTaskSchemas:async()=>y(_u,ha().listPresetTaskSchemas({})),getHagiTaskSchema:async e=>y(Pu,ha().getPresetTaskSchema({presetTaskId:e})),updateSession:async(e,t)=>y(Rd,ve().saveSession({sessionId:e,body:H(vd,t)})),deleteSession:async(e,t)=>y(Nd,ve().deleteSession({sessionId:e,deleteFiles:t??!1})),sendMessage:async(e,t)=>y(Id,ba().postSessionMessage({sessionId:e,body:H(Cd,t)})),optimizeProposal:async(e,t)=>y(wd,tt().optimizeSessionProposal({sessionId:e,body:H(xd,t)})),generateProposal:async(e,t)=>y(Ud,tt().generateProposal({sessionId:e,body:H(zd,t)})),executeProposal:async(e,t)=>y(kd,tt().executeProposal({sessionId:e,body:H(jd,t??{})})),archiveProposal:async(e,t)=>y(Jd,tt().archiveSession({sessionId:e,body:H(Ld,t??{})})),completeProposal:async e=>y(Kd,tt().completeSession({sessionId:e})),submitAnnotations:async(e,t)=>y(yd,ba().submitSessionAnnotations({sessionId:e,body:H(Bd,t)})),listProjects:async()=>y(gd,Gm().getAggregatedData({forceRefresh:!1})),createProject:async e=>y(Zu,de().createProject({body:H(vu,e)})),updateProject:async(e,t)=>y(fu,de().updateProject({id:e,body:H(Xu,t)})),deleteProject:async e=>{await de().deleteProject({id:e})},getMonoSpecsManagement:async e=>y(Ru,de().getMonoSpecsManagement({projectId:e})),saveMonoSpecsManagement:async(e,t)=>y(Wu,de().updateMonoSpecsManagement({projectId:e,body:H(Iu,t)})),initializeMonoSpecsManagement:async e=>y(Vu,de().initializeMonoSpecs({projectId:e})),reloadMonoSpecsManagement:async e=>y(Eu,de().reloadMonoSpecs({projectId:e})),validateMonoSpecs:async e=>y(Su,de().validateMonoSpecsConfig({body:H(yu,e)})),cloneMonoSpecsRepositories:async(e,t)=>y(Nu,de().cloneMonoSpecsRepositories({projectId:e,body:H(Yu,t)})),removeMonoSpecsRepositoryCheckout:async(e,t,n)=>y(Gu,de().removeMonoSpecsRepositoryCheckout({projectId:e,path:t,force:n})),listPlans:async()=>y(Lu,Fe().listScheduledPlans({})),getPlan:async e=>y(ju,Fe().getScheduledPlan({id:e})),createPlan:async e=>y(Tu,Fe().createScheduledPlan({body:H(sa,e)})),updatePlan:async(e,t)=>y(Hu,Fe().updateScheduledPlan({id:e,body:H(sa,t)})),deletePlan:async e=>{await Fe().deleteScheduledPlan({id:e})},runPlan:async e=>y(Qu,Fe().runScheduledPlan({id:e})),startPlan:async e=>y(Mu,Fe().startScheduledPlan({id:e})),listVaults:async()=>y(Bu,Te().listVaults({})),createVault:async e=>y(Fu,Te().createVault({body:H(Ku,e)})),updateVault:async(e,t)=>y(wu,Te().updateVault({id:e,body:H(xu,t)})),deleteVault:async(e,t)=>y(Uu,Te().deleteVault({id:e,deleteLocalFiles:t??!1})),listVaultFiles:async(e,t)=>y(Ju,Te().getVaultFiles({id:e,path:t})),previewVaultFile:async(e,t)=>y(ku,Te().getVaultFilePreview({id:e,path:t})),archiveChat:async e=>y(Gd,ve().archiveChatSession({sessionId:e})),listLocalSkills:async()=>y(qu,me().getLocalSkills({})),uninstallLocalSkill:async e=>y(ed,me().uninstallLocalSkill({body:H(cd,e)})),setBuiltInSkillAvailability:async e=>y(td,me().setBuiltInSkillAvailability({body:H(ud,e)})),searchSkillGallery:async e=>y(nd,me().getSkillGallery({query:e})),getSkillGalleryDetail:async(e,t)=>y(od,me().getSkillGalleryDetail({id:e,source:t})),installGallerySkill:async e=>y(ld,me().installSkill({body:H(hd,e)})),listTrustedSkillProviders:async()=>y(ad,me().getTrustedSkillProviders({})),upsertTrustedSkillProvider:async e=>y(rd,me().upsertTrustedSkillProvider({body:H(dd,e)})),deleteTrustedSkillProvider:async e=>y(id,me().deleteTrustedSkillProvider({body:H(md,e)})),resetTrustedSkillProviders:async()=>y(sd,me().resetTrustedSkillProviders({}))}}function B(e){const t=e?.trim();return t||void 0}function F(e,t){const n=B(e);if(!n)throw new w(`${t} is required.`);return n}function gn(e){const t=e?.map(n=>B(n)).filter(Boolean);return t&&t.length>0?t:void 0}function Dr(e=process.env,t={stdout:n=>{process.stdout.write(n)},stderr:n=>{process.stderr.write(n)}}){return{api:Vm(),env:e,io:t}}function Wm(e){return e.option("--base-url <url>",'Backend API base URL. Overrides HAGI_API_BASE_URL and the "baseUrl" config file entry.').option("--token <token>","Bearer token for backend API calls. Overrides HAGI_API_TOKEN.").option("--lang <lang>","Accept-Language value for backend API calls. Overrides HAGI_API_LANG.")}function X(e){return e.option("--json","Emit deterministic JSON instead of human-readable text.")}function Y(e,t){const n=e.optsWithGlobals();return{api:t.api,env:t.env,io:t.io,outputJson:n.json===!0,runtime:pu({baseUrl:n.baseUrl,token:n.token,lang:n.lang},t.env)}}function Sm(e,t){X(e.command("archive").description("Archive a chat session through the dedicated chat archive endpoint.")).requiredOption("--session-id <id>","Chat session id to archive.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.archiveChat(r);if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message}));return}a.io.stdout(`Chat archived
|
|
35
|
+
sessionId ${r}
|
|
36
|
+
message ${i.message}
|
|
37
|
+
`)})}var _r=(function(e){return e.INIT="Init",e.COMPLETED="Completed",e.ARCHIVED="Archived",e.DRAFTING="Drafting",e.EXECUTION_COMPLETED="ExecutionCompleted",e.OPTIMIZING="Optimizing",e.OPENSPECING="Openspecing",e.REVIEWING="Reviewing",e.EXECUTING="Executing",e.ARCHIVING="Archiving",e})({});function Pr(e){return e.replace(/\s+/g," ").trim()}function ne(e,t){const n=t.map(r=>e.map(i=>Pr(i.value(r)))),o=e.map((r,i)=>{const s=n.map(l=>l[i].length);return Math.max(r.header.length,...s)}),a=r=>r.map((i,s)=>i.padEnd(o[s])).join(" ").trimEnd();return[a(e.map(r=>r.header)),a(o.map(r=>"-".repeat(r))),...n.map(a)].join(`
|
|
38
|
+
`)}function _(e){const t=e.filter(([,o])=>o!==void 0&&o!==""),n=Math.max(...t.map(([o])=>o.length));return`${t.map(([o,a])=>`${o.padEnd(n)} ${Pr(a??"")}`).join(`
|
|
39
|
+
`)}
|
|
40
|
+
`}function ga(e){return typeof e=="string"?e.trim():e?.value?.trim()??""}function Be(e){return{sessionId:ga(e.sessionId),title:e.title,type:e.type,status:e.status,projectId:ga(e.projectId),proposalName:e.proposalName??void 0,archived:e.status===_r.ARCHIVED,lastActiveAt:e.lastActiveAt??void 0,enableIndependentWorkspace:e.enableIndependentWorkspace,baseBranch:e.baseBranch??void 0,metadata:e.metadata??void 0,chatExecutorType:e.chatExecutorType??void 0}}function $r(e){return{sessions:e.sessions.map(Be)}}function qr(e,t){return t.length===0?`No ${e.toLowerCase()} found.
|
|
41
|
+
`:`${e} (${t.length})
|
|
42
|
+
${ne([{header:"Session ID",value:n=>n.sessionId},{header:"Title",value:n=>n.title},{header:"Status",value:n=>n.status},{header:"Project ID",value:n=>n.projectId},{header:"Archived",value:n=>n.archived?"yes":"no"}],t)}
|
|
43
|
+
`}function ze(e,t=[]){return _([["sessionId",e.sessionId],["type",e.type],["title",e.title],["status",e.status],["projectId",e.projectId],["proposalName",e.proposalName],["independentWorkspace",String(e.enableIndependentWorkspace)],["baseBranch",e.baseBranch],["chatExecutorType",e.chatExecutorType],["metadata",e.metadata],...t])}function On(e,t,n,o=[]){return`${e}
|
|
44
|
+
${_([["sessionId",t],["message",n.message],...o])}`}var Lt=(function(e){return e.CLAUDE_CODE_CLI="ClaudeCodeCli",e.CODEX_CLI="CodexCli",e.GIT_HUB_COPILOT="GitHubCopilot",e.CODEBUDDY_CLI="CodebuddyCli",e.OPEN_CODE_CLI="OpenCodeCli",e.IFLOW_CLI="IFlowCli",e.HERMES_CLI="HermesCli",e.QODER_CLI="QoderCli",e.KIRO_CLI="KiroCli",e.KIMI_CLI="KimiCli",e.GEMINI_CLI="GeminiCli",e.DEEP_AGENTS_CLI="DeepAgentsCli",e})({});function vm(e,t){X(e.command("create").description("Create a normal chat session.")).requiredOption("--title <title>","Chat session title.").requiredOption("--project-id <id>","Owning project id.").option("--hero-id <id>","Optional bound hero id.").addOption(new Ye("--executor-type <type>","Optional executor override.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=Be(await a.api.createChatSession({title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),heroId:B(o.heroId),executorType:o.executorType}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Chat session created
|
|
45
|
+
${ze(r)}`)})}function Xm(e,t){X(e.command("delete").description("Delete a chat session.")).requiredOption("--session-id <id>","Chat session id to delete.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.deleteSession(r,!1);if(a.outputJson){a.io.stdout(I({sessionId:r,deleted:!0,message:i.message}));return}a.io.stdout(`Chat deleted
|
|
46
|
+
sessionId ${r}
|
|
47
|
+
message ${i.message}
|
|
48
|
+
`)})}var Dn=(function(e){return e.CHAT="Chat",e.PROPOSAL="Proposal",e})({});function Ym(e,t){X(e.command("list").description("List normal chat sessions.")).action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=$r(await a.api.listSessions({type:Dn.CHAT,projectId:B(o.projectId),projectIds:gn(o.projectIds),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(qr("Chat sessions",r.sessions))}).option("--project-id <id>","Filter chat sessions by a single project id.").option("--project-ids <ids...>","Filter chat sessions by multiple project ids.").option("--active-only","Only return non-archived chat sessions.").option("--include-archived","Include archived chat sessions.")}var _n=(function(e){return e.READONLY="Readonly",e.EDIT="Edit",e})({});function Im(e,t){X(e.command("send").description("Send a follow-up message to a chat session.")).requiredOption("--session-id <id>","Chat session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Chat message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function ym(e,t){const n=e.command("chat").description("Manage normal chat sessions.");Ym(n,t),vm(n,t),Sm(n,t),Xm(n,t),Im(n,t)}async function Cm(){const e=[];for await(const t of process.stdin)e.push(typeof t=="string"?Buffer.from(t):t);return Buffer.concat(e).toString("utf8")}async function jt(e){const t=e.trim();if(!t)throw new w("Provide --input <file> or --input - for stdin.");const n=t==="-"?await Cm():await(0,Xi.readFile)(t,"utf8");try{return JSON.parse(n)}catch(o){throw new w(`Invalid JSON input from ${t}: ${o instanceof Error?o.message:String(o)}`)}}var Bm=["first","random"];async function Fm(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read HagiTask input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`HagiTask input from ${e} must be a JSON object.`);return t}function wm(e,t,n){if(!t&&!n)throw new w("Provide --task-id or --prompt-id.");if(e.input!==void 0&&!t)throw new w("--input requires --task-id.");if(e.targetBranchName&&e.targetBranchMode!=="new-custom")throw new w("--target-branch-name requires --target-branch-mode new-custom.");if(e.targetBranchMode==="new-custom"&&!B(e.targetBranchName))throw new w("--target-branch-name is required when --target-branch-mode is new-custom.");const o=B(e.heroSelectionMode);if(o&&!Bm.includes(o))throw new w("--hero-selection-mode must be first or random.")}function Um(e,t){X(e.command("create").description("Create a HagiTask session. Read the task schema first with `hagitask schema --task-id <id>`, then pass the input JSON with --input.")).requiredOption("--title <title>","HagiTask session title.").requiredOption("--project-id <id>","Owning project id.").option("--task-id <id>","HagiTask id from `hagitask list`. Required with --input.").option("--prompt-id <id>","Prompt template id, for example auto-compose-commit.en-US. Used when there is no --task-id.").option("--input <file|->","Structured task input: a JSON object file, or - to read it from stdin. Needs --task-id.").option("--message <text>","Optional message that overrides the prompt template.").option("--locale <locale>","Locale for the HagiTask prompt, for example en-US.").option("--repository-path <path>","Optional MonoSpecs sub-repository path, for example repos/cli.").option("--target-type <type>","Explicit target type: repository or vault.").option("--vault-id <id>","Registered vault id for vault-targeted execution.").option("--output-vault-id <id>","Output vault id for research-investigation tasks.").option("--reference-vault-id <ids...>","Reference vault ids the session may read.").option("--editable-vault-id <ids...>","Vault ids the session may edit.").option("--hero-id <id>","Preferred hero id. Takes precedence over --hero-selection-mode.").option("--hero-selection-mode <mode>","Hero choice when --hero-id is not given: first (default) or random.").option("--need-push","Request a push after commit creation when supported.").option("--pull-rebase","Run git pull --rebase before pushing, when push is requested.").option("--target-branch-mode <mode>","Optional target branch mode, for example current or new-custom.").option("--target-branch-name <name>","Custom target branch name. Requires --target-branch-mode new-custom.").option("--script-key <key>","Optional stable scenario script key.").action(async function(o){const a=B(o.taskId),r=B(o.promptId);wm(o,a,r);const i=o.input!==void 0?await Fm(F(o.input,"--input")):void 0,s=Y(this,t),l={title:F(o.title,"--title"),projectId:F(o.projectId,"--project-id"),promptId:r,presetTaskId:a,presetTaskLocale:B(o.locale),presetTaskInput:i,message:B(o.message),repositoryPath:B(o.repositoryPath),targetType:B(o.targetType),vaultId:B(o.vaultId),outputVaultId:B(o.outputVaultId),referenceVaultIds:gn(o.referenceVaultId),editableVaultIds:gn(o.editableVaultId),heroId:B(o.heroId),heroSelectionMode:B(o.heroSelectionMode),needPush:o.needPush?!0:void 0,pullRebaseBeforePush:o.pullRebase?!0:void 0,targetBranchMode:B(o.targetBranchMode),targetBranchName:B(o.targetBranchName),scriptKey:B(o.scriptKey)},c=Be(await s.api.createHagiTaskSession(l));if(s.outputJson){s.io.stdout(I({session:c,presetTaskId:l.presetTaskId??null,promptId:l.promptId??null,requested:l}));return}s.io.stdout(`HagiTask session created
|
|
49
|
+
${ze(c,[["presetTaskId",l.presetTaskId??void 0],["presetTaskLocale",l.presetTaskLocale??void 0],["promptId",l.promptId??void 0],["repositoryPath",l.repositoryPath??void 0],["targetBranchMode",l.targetBranchMode??void 0],["targetBranchName",l.targetBranchName??void 0],["scriptKey",l.scriptKey??void 0],["heroId",l.heroId??void 0],["heroSelectionMode",l.heroSelectionMode??void 0]])}`)})}var j="-";function pa(e){return e?"yes":"no"}function Aa(e){return e&&e.length>0?e.join(", "):j}function It(e){if(Array.isArray(e))return e.map(t=>It(t));if(e&&typeof e=="object"){const t=e;return Object.fromEntries(Object.keys(t).sort().map(n=>[n,It(t[n])]))}return e}function ei(e){return[...e].sort((t,n)=>{const o=t.id??"",a=n.id??"";return o<a?-1:o>a?1:0})}function Jm(e){return It({tasks:ei(e)})}function km(e){if(e.length===0)return`No HagiTask is available.
|
|
50
|
+
`;const t=ei(e);return`HagiTasks (${t.length})
|
|
51
|
+
${ne([{header:"ID",value:n=>n.id??j},{header:"Version",value:n=>n.version??j},{header:"Title",value:n=>n.title??j},{header:"Description",value:n=>n.description??j}],t)}
|
|
52
|
+
`}function Km(e){const t=[];e.origin==="derived"&&t.push(e.producer?`derived by ${e.producer}`:"derived");for(const n of e.aliases??[])n.key&&t.push(`alias ${n.key} (deprecated)`);return e.options&&e.options.length>0&&t.push(`options: ${e.options.map(n=>n.value??"").join(", ")}`),t.length>0?t.join("; "):j}function xm(e){const t=e.id??j,n=[];n.push(_([["id",e.id??void 0],["title",e.title??void 0],["version",e.version??void 0],["locale",e.locale??void 0],["description",e.description??void 0]]));const o=e.scope?.targets??[];n.push(`Target scope (default ${e.scope?.defaultTargetType??j})${o.length===0?`
|
|
53
|
+
None.
|
|
54
|
+
`:`
|
|
55
|
+
${ne([{header:"ID",value:c=>c.id??j},{header:"Kind",value:c=>c.kind??j},{header:"Selection",value:c=>c.selectionMode??j},{header:"Required",value:c=>pa(c.required)},{header:"Access",value:c=>Aa(c.allowedAccessTypes)},{header:"Input key",value:c=>c.requestKey??j},{header:"Scope key",value:c=>c.scopeRequestKey??j}],o)}
|
|
56
|
+
`}`);const a=e.commands?.commands??[];n.push(`Commands${a.length===0?`
|
|
57
|
+
None.
|
|
58
|
+
`:`
|
|
59
|
+
${ne([{header:"ID",value:c=>c.id??j},{header:"Group",value:c=>c.groupId??j},{header:"Label",value:c=>c.label??j},{header:"URL",value:c=>c.url??j}],a)}
|
|
60
|
+
`}`);const r=e.parameters??[];n.push(`Parameters${r.length===0?`
|
|
61
|
+
None.
|
|
62
|
+
`:`
|
|
63
|
+
${ne([{header:"Key",value:c=>c.key??j},{header:"Required",value:c=>pa(c.required)},{header:"Origin",value:c=>c.origin??j},{header:"Type",value:c=>c.valueType??j},{header:"Label",value:c=>c.label??j},{header:"Notes",value:Km}],r)}
|
|
64
|
+
`}`);const i=e.requirements??[];n.push(`Requirements${i.length===0?`
|
|
65
|
+
None.
|
|
66
|
+
`:`
|
|
67
|
+
${i.map(c=>`- ${c.type??j}: ${c.name??Aa(c.names)}`).join(`
|
|
68
|
+
`)}
|
|
69
|
+
`}`);const s=e.scenes?.registrations??[];n.push(`Scenes${s.length===0?`
|
|
70
|
+
None.
|
|
71
|
+
`:`
|
|
72
|
+
${s.map(c=>`- ${c.sceneKey??j}: ${c.title??j}`).join(`
|
|
73
|
+
`)}
|
|
74
|
+
`}`);const l=e.request;return n.push(_([["endpoint",l?`${l.method??j} ${l.path??j}`:void 0],["presetTaskIdField",l?.presetTaskIdField??void 0],["localeField",l?.localeField??void 0],["requiredFields",l?.requiredFields&&l.requiredFields.length>0?l.requiredFields.join(", "):void 0]])),n.push(`Example
|
|
75
|
+
hagi hagitask schema --task-id ${t} --json # full input JSON Schema and example body
|
|
76
|
+
hagi hagitask create --title "<title>" --project-id <project-id> --task-id ${t} --input input.json
|
|
77
|
+
`),n.join(`
|
|
78
|
+
`)}function zm(e){return It(e)}function Lm(e,t){X(e.command("list").description("List the active HagiTasks with their id, version, title and description.")).action(async function(){const o=Y(this,t),a=await o.api.listHagiTaskSchemas();if(o.outputJson){o.io.stdout(I(Jm(a)));return}o.io.stdout(km(a))})}function jm(e,t){const n=e&&typeof e=="object"?e[t]:void 0;return typeof n=="string"&&n.trim()?n.trim():void 0}function Tm(e){const t=e&&typeof e=="object"?e.diagnostics:void 0;return Array.isArray(t)?t:[]}async function Hm(e,t){try{return await e.getHagiTaskSchema(t)}catch(n){const o=Jr(n);if(o?.status===404){const a=Tm(o.body);if(a.length>0){const r=a.map(i=>{const s=i.path?` (${i.path})`:"";return` - ${i.code??"diagnostic"}: ${i.message??""}${s}`});throw new xe(404,[jm(o.body,"error")??`HagiTask ${t} is not available.`,...r].join(`
|
|
79
|
+
`),o.body)}}throw n}}function Qm(e,t){X(e.command("schema").description("Show the creation schema of one HagiTask: scope, commands, parameters, requirements, scenes and an example. --json prints the full schema, including the input JSON Schema.")).requiredOption("--task-id <id>","HagiTask id to read.").action(async function(o){const a=F(o.taskId,"--task-id"),r=Y(this,t),i=await Hm(r.api,a);if(r.outputJson){r.io.stdout(I(zm(i)));return}r.io.stdout(xm(i))})}function Mm(e,t){X(e.command("send").description("Send a follow-up message to a HagiTask session.")).requiredOption("--session-id <id>","HagiTask session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("HagiTask message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function Om(e,t){const n=e.command("hagitask").description("Manage HagiTask sessions: list tasks, read a task schema, create a session from it, and send follow-up messages.");Lm(n,t),Qm(n,t),Um(n,t),Mm(n,t)}function le(e){const t=e?.trim();return t||void 0}function ti(e){if(!e)return"";const t=le(e.mode);if(t==="once")return["once",le(e.runAt)].filter(Boolean).join(" ");const n=le(e.repeat?.rule)??t??"";return[n,n==="weekly"?(e.repeat?.weekdays??[]).map(o=>o.trim().slice(0,3).toLowerCase()).join(","):void 0,le(e.timeOfDay),le(e.timeZone)].filter(Boolean).join(" ")}function we(e){return{id:le(e.id)??"",type:le(e.type)??"",name:le(e.name)??"",enabled:e.enabled===!0,state:le(e.state)??"",nextRunAt:le(e.nextRunAt)??null,schedule:e.schedule,agentPool:e.agentPool,payload:e.payload}}function Dm(e){return{plans:e.map(we)}}function _m(e){return e.length===0?`No scheduled plans found.
|
|
80
|
+
`:`Plans (${e.length})
|
|
81
|
+
${ne([{header:"ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Enabled",value:t=>t.enabled?"yes":"no"},{header:"State",value:t=>t.state},{header:"Next Run",value:t=>t.nextRunAt??"-"},{header:"Schedule",value:t=>ti(t.schedule)}],e)}
|
|
82
|
+
`}function bt(e){return _([["id",e.id],["type",e.type],["name",e.name],["enabled",e.enabled?"yes":"no"],["state",e.state],["nextRun",e.nextRunAt??"-"],["schedule",ti(e.schedule)]])}function Pm(e){return{planId:e,deleted:!0}}function $m(e){return`Plan deleted
|
|
83
|
+
${_([["planId",e.planId],["deleted",String(e.deleted)]])}`}function qm(e){return{planId:le(e.planId)??"",accepted:!0}}function eh(e){return`Plan run accepted
|
|
84
|
+
${_([["planId",e.planId],["accepted",String(e.accepted)]])}`}var th=["id","createdAt","updatedAt","state","nextRunAt"];async function ni(e){let t;try{t=await jt(e)}catch(n){throw n instanceof w?n:new w(`Cannot read plan input from ${e}: ${n instanceof Error?n.message:String(n)}`)}if(!t||typeof t!="object"||Array.isArray(t))throw new w(`Plan input from ${e} must be a JSON object.`);return t}function yt(e){const t={...e};for(const n of th)delete t[n];return t}function nh(e){return{strategy:"random",agents:[{heroId:e}]}}function oi(e){return{...e.name!==void 0?{name:e.name}:{},...e.heroId!==void 0?{agentPool:nh(e.heroId)}:{},...e.enabled!==void 0?{enabled:e.enabled}:{}}}function ai(e,t){return{...yt(e),...yt(t)}}function oh(e,t){X(e.command("create").description("Create a scheduled plan from a JSON document. Plans are enabled unless --disabled or the document says otherwise.")).requiredOption("--input <file|->","Plan JSON file path, or - to read from stdin.").option("--name <name>","Plan name. Overrides the document name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the document agent pool.").option("--disabled","Create the plan disabled. Overrides the document enabled value.").action(async function(o){const a=Y(this,t),r=yt(await ni(o.input)),i=we(await a.api.createPlan({enabled:!0,...r,...oi({name:B(o.name),heroId:B(o.heroId),enabled:o.disabled?!1:void 0})}));if(a.outputJson){a.io.stdout(I({plan:i}));return}a.io.stdout(`Plan created
|
|
85
|
+
${bt(i)}`)})}function ah(e,t){X(e.command("delete").description("Delete a scheduled plan by id.")).requiredOption("--id <id>","Plan id to delete.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");await a.api.deletePlan(r);const i=Pm(r);if(a.outputJson){a.io.stdout(I(i));return}a.io.stdout($m(i))})}async function ri(e,t,n){const o=await e.api.getPlan(t);return we(o).enabled===n?{view:we(o),changed:!1}:{view:we(await e.api.updatePlan(t,ai(o,{enabled:n}))),changed:!0}}function rh(e,t){X(e.command("disable").description("Disable a scheduled plan. Nothing is sent when it is already disabled.")).requiredOption("--id <id>","Plan id to disable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!1);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan disabled":"Plan was already disabled"}
|
|
86
|
+
${bt(r)}`)})}function ih(e,t){X(e.command("enable").description("Enable a scheduled plan. Nothing is sent when it is already enabled.")).requiredOption("--id <id>","Plan id to enable.").action(async function(o){const a=Y(this,t),{view:r,changed:i}=await ri(a,F(o.id,"--id"),!0);if(a.outputJson){a.io.stdout(I({plan:r,changed:i}));return}a.io.stdout(`${i?"Plan enabled":"Plan was already enabled"}
|
|
87
|
+
${bt(r)}`)})}function sh(e,t){X(e.command("get").description("Show one scheduled plan, including its schedule, agent pool and payload in --json mode.")).requiredOption("--id <id>","Plan id to read.").action(async function(o){const a=Y(this,t),r=we(await a.api.getPlan(F(o.id,"--id")));if(a.outputJson){a.io.stdout(I({plan:r}));return}a.io.stdout(bt(r))})}function lh(e,t){X(e.command("list").description("List scheduled plans with their state, next run time and schedule.")).action(async function(){const o=Y(this,t),a=Dm(await o.api.listPlans());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(_m(a.plans))})}function ch(e,t){X(e.command("run").description("Run a scheduled plan now from its stored inputs. The schedule is not changed.")).requiredOption("--id <id>","Plan id to run.").option("--background","Start the run and print the accepted plan id without waiting for the session.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id");if(o.background){const s=qm(await a.api.startPlan(r));if(a.outputJson){a.io.stdout(I(s));return}a.io.stdout(eh(s));return}const i=Be(await a.api.runPlan(r));if(a.outputJson){a.io.stdout(I({session:i}));return}a.io.stdout(`Plan run created a session
|
|
88
|
+
${ze(i)}`)})}function uh(e,t){X(e.command("update").description("Update a scheduled plan. The current plan is read first and only the given fields change.")).requiredOption("--id <id>","Plan id to update.").option("--input <file|->","JSON document whose top-level fields replace the same fields of the plan.").option("--name <name>","Updated plan name.").option("--hero-id <id>","Hero for a single-agent pool. Replaces the agent pool.").option("--enabled","Enable the plan.").option("--disabled","Disable the plan.").action(async function(o){const a=F(o.id,"--id"),r=B(o.input),i=B(o.name),s=B(o.heroId);if(o.enabled&&o.disabled)throw new w("Pass either --enabled or --disabled, not both.");const l=o.enabled?!0:o.disabled?!1:void 0;if(!r&&!i&&!s&&l===void 0)throw new w("Provide at least one change: --input, --name, --enabled, --disabled, or --hero-id.");const c=r?yt(await ni(r)):{},m=Y(this,t),p=await m.api.getPlan(a),f=we(await m.api.updatePlan(a,ai(p,{...c,...oi({name:i,heroId:s,enabled:l})})));if(m.outputJson){m.io.stdout(I({plan:f}));return}m.io.stdout(`Plan updated
|
|
89
|
+
${bt(f)}`)})}function dh(e,t){const n=e.command("plan").description("Manage scheduled plans: saved proposal or HagiTask inputs that run on a schedule.");lh(n,t),sh(n,t),oh(n,t),uh(n,t),ih(n,t),rh(n,t),ah(n,t),ch(n,t)}function re(e){const t=e?.trim();return t||void 0}function Pn(e){return{id:re(e.id)??"",name:re(e.name)??"",path:re(e.path)??"",description:re(e.description),isMonoSpecs:e.isMonoSpecs===!0,monoSpecsVersion:re(e.monoSpecsVersion),monoSpecsRepoDirectory:re(e.monoSpecsRepoDirectory),monoSpecsCommitWhenArchive:typeof e.monoSpecsCommitWhenArchive=="boolean"?e.monoSpecsCommitWhenArchive:void 0,hasError:"hasError"in e?e.hasError===!0:!1,error:"error"in e?re(e.error):void 0}}function ii(e){return{projects:(e??[]).map(Pn)}}function mh(e){return e.length===0?`No projects found.
|
|
90
|
+
`:`Projects (${e.length})
|
|
91
|
+
${ne([{header:"Project ID",value:t=>t.id},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.path},{header:"MonoSpecs",value:t=>t.isMonoSpecs?"yes":"no"},{header:"Error",value:t=>t.hasError?"yes":"no"}],e)}
|
|
92
|
+
`}function si(e,t=[]){return _([["id",e.id],["name",e.name],["path",e.path],["description",e.description],["isMonoSpecs",String(e.isMonoSpecs)],["monoSpecsVersion",e.monoSpecsVersion],["monoSpecsRepoDirectory",e.monoSpecsRepoDirectory],["monoSpecsCommitWhenArchive",typeof e.monoSpecsCommitWhenArchive=="boolean"?String(e.monoSpecsCommitWhenArchive):void 0],["hasError",String(e.hasError)],["error",e.error],...t])}function hh(e){return{projectId:re(e.id)??"",name:re(e.name)??"",isMonoSpecs:e.isMonoSpecs===!0,hasError:e.hasError===!0,error:re(e.error),repositories:(e.repositories??[]).map(t=>({name:re(t.name),path:t.path??void 0,displayName:re(t.displayName),type:re(t.type),branch:re(t.branch),isValidGitRepo:typeof t.isValidGitRepo=="boolean"?t.isValidGitRepo:void 0}))}}function bh(e){return`${_([["projectId",e.projectId],["name",e.name],["isMonoSpecs",String(e.isMonoSpecs)],["hasError",String(e.hasError)],["error",e.error??(e.hasError?"The project failed to load; its repository list may be incomplete.":void 0)]])}
|
|
93
|
+
${e.repositories.length===0?`This project lists no repositories.
|
|
94
|
+
`:`${ne([{header:"Name",value:t=>t.name??""},{header:"Path",value:t=>t.path??""},{header:"Display name",value:t=>t.displayName??""},{header:"Type",value:t=>t.type??""},{header:"Branch",value:t=>t.branch??""}],e.repositories)}
|
|
95
|
+
`}`}function gh(e,t){X(e.command("create").description("Create a project through the generated project client.")).requiredOption("--name <name>","Project display name.").requiredOption("--path <path>","Project root path.").option("--description <text>","Optional project description.").action(async function(o){const a=Y(this,t),r=Pn(await a.api.createProject({name:F(o.name,"--name"),path:F(o.path,"--path"),description:B(o.description)}));if(a.outputJson){a.io.stdout(I({project:r}));return}a.io.stdout(`Project created
|
|
96
|
+
${si(r)}`)})}function ph(e,t){X(e.command("delete").description("Delete a project by id.")).requiredOption("--id <id>","Project id to delete.").action(async function(o){const a=Y(this,t),r=o.id.trim();if(await a.api.deleteProject(r),a.outputJson){a.io.stdout(I({projectId:r,deleted:!0}));return}a.io.stdout(`Project deleted
|
|
97
|
+
projectId ${r}
|
|
98
|
+
`)})}function Ah(e,t){X(e.command("list").description("List projects from the aggregation endpoint.")).action(async function(){const o=Y(this,t),a=ii((await o.api.listProjects()).projects);if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(mh(a.projects))})}function $(e){const t=e?.trim();return t||void 0}function li(e){return{key:e.key??"",value:e.value??"",valueKind:e.valueKind??"string"}}function Zh(e){const t=e.isValidGitRepo===!0;return{name:$(e.name),code:$(e.code),path:e.path??"",url:$(e.url),displayName:$(e.displayName),type:$(e.type),icon:$(e.icon),optional:e.optional===!0,tags:e.tags??[],metadata:(e.metadata??[]).map(li),isValidGitRepo:t,branch:t?$(e.branch):void 0,hasUncommittedChanges:e.hasUncommittedChanges===!0,unpushedCommitCount:e.unpushedCommitCount??0,hasTrackingBranch:e.hasTrackingBranch===!0,trackingBranch:$(e.trackingBranch),aheadCount:e.aheadCount??0,behindCount:e.behindCount??0,syncState:t?$(e.syncState):void 0}}function ci(e){return{version:$(e.version)??"",repoDirectory:$(e.repoDirectory)??"",configPath:$(e.configPath)??"",commitWhenArchive:e.commitWhenArchive===!0,yamlPreview:e.yamlPreview??"",metadata:(e.metadata??[]).map(li),repositories:(e.repositories??[]).map(Zh)}}function fh(e){return e.isValidGitRepo?[e.branch??"no branch",e.syncState,e.hasUncommittedChanges?"uncommitted changes":void 0].filter(Boolean).join(", "):"missing or not a Git repository"}function ui(e,t={}){return`${_([["version",e.version],["repoDirectory",e.repoDirectory],["configPath",e.configPath],["commitWhenArchive",String(e.commitWhenArchive)]])}
|
|
99
|
+
${e.repositories.length===0?`This document lists no repositories.
|
|
100
|
+
`:`${ne([{header:"Path",value:n=>n.path},{header:"Name",value:n=>n.name??""},{header:"Type",value:n=>n.type??""},{header:"URL",value:n=>n.url??""},{header:"Local state",value:n=>fh(n)}],e.repositories)}
|
|
101
|
+
`}${t.yaml?`
|
|
102
|
+
YAML
|
|
103
|
+
${e.yamlPreview}${e.yamlPreview.endsWith(`
|
|
104
|
+
`)?"":`
|
|
105
|
+
`}`:""}`}function di(e){return{results:(e??[]).map(t=>({path:t.path??"",status:t.status??"",message:$(t.message)}))}}function mi(e){return e.results.length===0?`No repositories were selected for cloning.
|
|
106
|
+
`:`${ne([{header:"Path",value:t=>t.path},{header:"Status",value:t=>t.status},{header:"Message",value:t=>t.message??""}],e.results)}
|
|
107
|
+
`}function Rh(e){return{isValid:e.isValid===!0,config:e.config?{version:$(e.config.version),repoDirectory:$(e.config.repoDirectory)}:null,warnings:e.warnings??[],errors:e.errors??[]}}function Eh(e){const t=e.isValid?"MonoSpecs configuration is valid.":"MonoSpecs configuration is invalid.",n=_([["version",e.config?.version],["repoDirectory",e.config?.repoDirectory]]),o=e.warnings.map(r=>` - ${r}
|
|
108
|
+
`).join(""),a=e.errors.map(r=>` - ${r}
|
|
109
|
+
`).join("");return[t,n.trimEnd(),e.warnings.length>0?`Warnings:
|
|
110
|
+
${o}`.trimEnd():"",e.errors.length>0?`Errors:
|
|
111
|
+
${a}`.trimEnd():""].filter(Boolean).join(`
|
|
112
|
+
`)+`
|
|
113
|
+
`}function Nh(e){return{path:e.path??"",removed:e.removed===!0,message:$(e.message)}}function Gh(e){const t=e.removed?`Removed checkout ${e.path}`:`Checkout ${e.path} was not removed`;return`${e.message?`${t}
|
|
114
|
+
${e.message}`:t}
|
|
115
|
+
`}function $n(e,t,n={}){const o=ci(t);if(e.outputJson){e.io.stdout(I(o));return}const a=n.heading?`${n.heading}
|
|
116
|
+
`:"";e.io.stdout(`${a}${ui(o,{yaml:n.yaml})}`)}function pn(e,t){return[...t,e]}function Qe(e){const t=e.trim().replace(/\\/g,"/").replace(/^(\.\/)+/,"").replace(/\/+$/,"");if(!t||t===".")throw new w(`Repository path must name a directory below the project root: "${e}".`);return t}function Vh(e,t){X(e.command("clone").description("Clone the configured repositories that are missing on the backend host. Exits with code 30 when any clone fails.")).requiredOption("--id <id>","Project id.").option("--path <path>","Configured repository path to clone. Repeatable; omit to clone every missing repository.",pn,[]).option("--include-optional","Also clone optional repositories when no --path is given.").action(async function(o){const a=o.path.map(Qe),r=Y(this,t),i=F(o.id,"--id"),s=o.includeOptional===!0,l=di((await r.api.cloneMonoSpecsRepositories(i,a.length>0?{paths:a,includeOptional:s}:{includeOptional:s})).results);r.outputJson?r.io.stdout(I(l)):r.io.stdout(mi(l));const c=l.results.filter(m=>m.status==="failed");if(c.length>0)throw new mt(`${c.length} repository clone(s) failed. See the results above.`)})}function Wh(e,t){X(e.command("init").description("Initialize the MonoSpecs configuration of a project. An initialized project returns its existing document.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.initializeMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration initialized."})})}function Sh(e,t){X(e.command("reload").description("Reread monospecs.yaml on the backend host and refresh the local Git state of its repositories.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t);$n(a,await a.api.reloadMonoSpecsManagement(F(o.id,"--id")),{heading:"MonoSpecs configuration reloaded."})})}function vh(e,t){X(e.command("remove-checkout").description("Delete the local checkout of one configured repository on the backend host. monospecs.yaml is not changed.")).requiredOption("--id <id>","Project id.").requiredOption("--path <path>","Configured repository path whose local checkout to delete.").option("--force","Delete the checkout even with uncommitted changes, unpushed commits or no upstream branch.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=Qe(F(o.path,"--path")),s=o.force===!0;let l;try{l=await a.api.removeMonoSpecsRepositoryCheckout(r,i,s)}catch(m){const p=kr(m);throw p.status===409&&!s&&/force/i.test(p.message)?new xe(409,`${p.message}
|
|
117
|
+
Re-run with --force to delete this checkout anyway.`,p.details):m}const c=Nh(l);a.outputJson?a.io.stdout(I(c)):a.io.stdout(Gh(c))})}var Xh="--version, --repo-directory, --commit-when-archive, --add-repository, --remove-repository";function Yh(e){return{name:e.name,code:e.code,path:e.path,url:e.url,displayName:e.displayName,type:e.type,icon:e.icon,optional:e.optional,tags:e.tags,metadata:e.metadata}}function Ih(e){return e.split("/").at(-1)??e}function tn(e,t,n){const o=ci(t),a=n?di(n.results):void 0;if(e.outputJson){e.io.stdout(I(a?{...o,clone:a}:o));return}e.io.stdout(`MonoSpecs configuration saved.
|
|
118
|
+
${ui(o)}`),a&&e.io.stdout(`
|
|
119
|
+
Clone results
|
|
120
|
+
${mi(a)}`)}function yh(e,t){X(e.command("set").description("Change the MonoSpecs metadata or repositories. Reads the document, applies the given options and saves it.")).requiredOption("--id <id>","Project id.").option("--version <value>","MonoSpecs configuration version.").option("--repo-directory <dir>","Repository directory relative to the project root.").option("--commit-when-archive <true|false>","Whether archiving commits the MonoSpecs changes.").option("--add-repository <path>","Configured repository path to add. Repeatable.",pn,[]).option("--remove-repository <path>","Configured repository path to remove. Repeatable.",pn,[]).option("--url <url>","Clone URL of the single added repository.").option("--name <name>","Name of the single added repository. Defaults to the last path segment.").option("--display-name <name>","Display name of the single added repository.").option("--type <type>","Type of the single added repository.").option("--clone","Clone the added repositories after saving. Requires at least one --add-repository.").action(async function(o){const a=o.addRepository.map(Qe),r=o.removeRepository.map(Qe);if(!(o.version!==void 0||o.repoDirectory!==void 0||o.commitWhenArchive!==void 0)&&a.length===0&&r.length===0)throw new w(`Provide at least one change: ${Xh}.`);if(o.clone&&a.length===0)throw new w("--clone requires at least one --add-repository.");const i=[o.url!==void 0?"--url":void 0,o.name!==void 0?"--name":void 0,o.displayName!==void 0?"--display-name":void 0,o.type!==void 0?"--type":void 0].filter(Boolean);if(i.length>0&&a.length!==1)throw new w(`${i.join(", ")} apply to a single --add-repository only.`);let s;if(o.commitWhenArchive!==void 0){if(o.commitWhenArchive!=="true"&&o.commitWhenArchive!=="false")throw new w("--commit-when-archive must be true or false.");s=o.commitWhenArchive==="true"}const l=Y(this,t),c=F(o.id,"--id"),m=await l.api.getMonoSpecsManagement(c),p=(m.repositories??[]).map(Yh);for(const V of r){const C=p.findIndex(J=>Qe(J.path??"")===V);if(C<0)throw new w(`Repository path ${V} is not configured, so it cannot be removed.`);p.splice(C,1)}for(const V of a){if(p.some(C=>Qe(C.path??"")===V))throw new w(`Repository path ${V} is already configured.`);p.push({name:o.name??Ih(V),code:null,path:V,url:o.url??null,displayName:o.displayName??null,type:o.type??null,icon:null,optional:!1,tags:[],metadata:[]})}const f=await l.api.saveMonoSpecsManagement(c,{version:o.version??m.version,repoDirectory:o.repoDirectory??m.repoDirectory,commitWhenArchive:s??m.commitWhenArchive,repositories:p,metadata:m.metadata??[]});if(!o.clone){tn(l,f);return}let Z;try{Z=(await l.api.cloneMonoSpecsRepositories(c,{paths:a,includeOptional:!1})).results??[]}catch(V){throw tn(l,f),V}tn(l,f,{results:Z});const N=Z.filter(V=>V.status==="failed");if(N.length>0)throw new mt(`The configuration was saved, but ${N.length} repository clone(s) failed. See the clone results above.`)})}function Ch(e,t){X(e.command("show").description("Show the MonoSpecs management document of a project, with local Git state per repository.")).requiredOption("--id <id>","Project id.").option("--yaml","Also print the YAML preview in human-readable mode.").action(async function(o){const a=Y(this,t);$n(a,await a.api.getMonoSpecsManagement(F(o.id,"--id")),{yaml:o.yaml===!0})})}function Bh(e,t){X(e.command("validate").description("Validate the MonoSpecs configuration of a project. Exits with code 30 when it is invalid.")).requiredOption("--id <id>","Project id.").action(async function(o){const a=Y(this,t),r=F(o.id,"--id"),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i?.path)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Rh(await a.api.validateMonoSpecs({projectPath:i.path}));if(a.outputJson?a.io.stdout(I(s)):a.io.stdout(Eh(s)),!s.isValid)throw new mt("MonoSpecs configuration is invalid. See the errors above.")})}function Fh(e,t){const n=e.command("monospecs").description("Manage the MonoSpecs configuration and the local repository checkouts of a project.");Ch(n,t),Wh(n,t),yh(n,t),Bh(n,t),Sh(n,t),Vh(n,t),vh(n,t)}function wh(e,t){X(e.command("repositories").description("List the repositories of one project from the aggregation snapshot.")).requiredOption("--id <id>","Project id whose repositories to list.").action(async function(o){const a=Y(this,t),r=o.id.trim(),i=((await a.api.listProjects()).projects??[]).find(l=>l.id===r);if(!i)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=hh(i);if(a.outputJson){a.io.stdout(I(s));return}a.io.stdout(bh(s))})}function Uh(e,t){X(e.command("update").description("Update a project by merging provided fields into the aggregation snapshot.")).requiredOption("--id <id>","Project id to update.").option("--name <name>","Updated project name.").option("--path <path>","Updated project path.").option("--description <text>","Updated project description.").option("--clear-description","Clear the stored description.").action(async function(o){if(!o.name&&!o.path&&!o.description&&!o.clearDescription)throw new w("Provide at least one field to update: --name, --path, --description, or --clear-description.");if(o.description&&o.clearDescription)throw new w("Use either --description or --clear-description, not both.");const a=Y(this,t),r=o.id.trim(),i=ii((await a.api.listProjects()).projects).projects.find(l=>l.id===r);if(!i)throw new xe(404,`Project ${r} was not found in the aggregation snapshot.`);const s=Pn(await a.api.updateProject(r,{name:B(o.name)??i.name,path:B(o.path)??i.path,description:o.clearDescription?null:B(o.description)??i.description??null}));if(a.outputJson){a.io.stdout(I({project:s}));return}a.io.stdout(`Project updated
|
|
121
|
+
${si(s)}`)})}function Jh(e,t){const n=e.command("project").description("Manage Hagi projects through generated project and aggregation APIs.");Ah(n,t),wh(n,t),gh(n,t),Uh(n,t),ph(n,t),Fh(n,t)}function kh(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new w("Annotation input must be a JSON object.");const n=t;if(!Array.isArray(n.files))throw new w("Annotation input must include a files array.");const o=typeof n.totalAnnotations=="number"?n.totalAnnotations:n.files.length,a=typeof n.submittedAt=="string"&&n.submittedAt.trim()?n.submittedAt:new Date().toISOString();return{...n,sessionId:e,totalAnnotations:o,submittedAt:a,files:n.files}}function Kh(e,t){X(e.command("annotate").description("Submit proposal annotations from structured JSON input.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=kh(r,await jt(o.input)),s=await a.api.submitAnnotations(r,i);if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,annotationCount:s.annotationCount??i.totalAnnotations,fileCount:s.fileCount??i.files.length}));return}a.io.stdout(`Proposal annotations submitted
|
|
122
|
+
sessionId ${r}
|
|
123
|
+
message ${s.message}
|
|
124
|
+
annotationCount ${s.annotationCount??i.totalAnnotations}
|
|
125
|
+
fileCount ${s.fileCount??i.files.length}
|
|
126
|
+
`)})}function xh(e,t){X(e.command("archive").description("Archive a proposal session through the explicit archive endpoint.")).requiredOption("--session-id <id>","Proposal session id to archive.").option("--hero-id <id>","Optional hero override for archiving.").action(async function(o){const a=Y(this,t),r=Be(await a.api.archiveProposal(o.sessionId.trim(),{heroId:B(o.heroId)}));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal archive started
|
|
127
|
+
${ze(r)}`)})}function zh(e,t){X(e.command("complete").description("Mark a proposal session as completed through the dedicated completion endpoint.")).requiredOption("--session-id <id>","Proposal session id to complete.").action(async function(o){const a=Y(this,t),r=Be(await a.api.completeProposal(o.sessionId.trim()));if(a.outputJson){a.io.stdout(I({session:r}));return}a.io.stdout(`Proposal completed
|
|
128
|
+
${ze(r)}`)})}function Lh(e){return Be(e)}function jh(e){return $r(e)}function Th(e){return qr("Proposal sessions",e)}function Hh(e,t=[]){return ze(e,t)}var hi="New Proposal";function Qh(e){const t=B(e.title);if(t)return t;if(e.defaultTitle)return hi;throw new w("Provide --title or pass --default-title to use the placeholder proposal title.")}function Mh(e,t){X(e.command("create").description("Create a proposal session only. This command does not trigger later lifecycle APIs.")).requiredOption("--project-id <id>","Project id that owns the new proposal session.").requiredOption("--chief-complaint <text>","Proposal chief complaint to store on the new session.").option("--original-chief-complaint <text>","Optional raw chief complaint text to keep alongside the stitched content.").option("--title <title>","Explicit proposal session title.").option("--default-title",`Mark the title as the placeholder title (${hi}).`).option("--enable-independent-workspace","Request an independent workspace for the proposal session.").option("--base-branch <branch>","Optional base branch for the independent workspace.").action(async function(o){const a=Y(this,t),r=Qh(o),i=Lh(await a.api.createProposalSession({title:r,chiefComplaint:o.chiefComplaint.trim(),originalChiefComplaint:B(o.originalChiefComplaint),type:Dn.PROPOSAL,projectId:o.projectId.trim(),enableIndependentWorkspace:o.enableIndependentWorkspace?!0:void 0,baseBranch:B(o.baseBranch),isDefaultTitle:!!o.defaultTitle})),s=`hagi proposal optimize-description --session-id ${i.sessionId} --description "<description>"`;if(a.outputJson){a.io.stdout(I({session:i,nextCommand:s}));return}a.io.stdout(`Proposal session created
|
|
129
|
+
${Hh(i,[["next",s]])}`)})}function Oh(e,t){X(e.command("execute").description("Start proposal execution only. This command maps to the execute-proposal backend action.")).requiredOption("--session-id <id>","Proposal session id to execute.").option("--hero-id <id>","Optional hero override for the execute stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=B(o.heroId),s=await a.api.executeProposal(r,{heroId:i});if(a.outputJson){a.io.stdout(I({sessionId:r,message:s.message,requested:{heroId:i}}));return}a.io.stdout(`Proposal execution started
|
|
130
|
+
sessionId ${r}
|
|
131
|
+
message ${s.message}
|
|
132
|
+
`)})}var An=["zh-CN","zh-Hant","en-US","ja-JP","ko-KR","de-DE","fr-FR","es-ES","pt-BR","ru-RU"];function Dh(e){if(e.enableExploreMode&&e.disableExploreMode)throw new w("Use either --enable-explore-mode or --disable-explore-mode, not both.");if(e.enableExploreMode)return!0;if(e.disableExploreMode)return!1}function _h(e){const t=e.trim();if(!An.includes(t))throw new w(`--proposal-content-language must be one of: ${An.join(", ")}.`);return t}function Ph(e,t){X(e.command("generate").description("Start proposal generation only. This command does not execute the proposal.")).requiredOption("--session-id <id>","Proposal session id to generate.").requiredOption("--proposal-content-language <language>",`Language of the generated proposal content (${An.join(", ")}).`).option("--enable-explore-mode","Explicitly enable explore mode for proposal generation.").option("--disable-explore-mode","Explicitly disable explore mode for proposal generation.").option("--hero-id <id>","Optional hero override for the generate stage.").action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=Dh(o),s=_h(o.proposalContentLanguage),l=await a.api.generateProposal(r,{enableExploreMode:i,heroId:B(o.heroId),proposalContentLanguage:s}),c=`hagi proposal execute --session-id ${r}`;if(a.outputJson){a.io.stdout(I({sessionId:r,message:l.message,requested:{enableExploreMode:i,heroId:B(o.heroId),proposalContentLanguage:s},nextCommand:c}));return}a.io.stdout(`Proposal generation started
|
|
133
|
+
sessionId ${r}
|
|
134
|
+
message ${l.message}
|
|
135
|
+
next Wait for the session to reach Reviewing, then run ${c}
|
|
136
|
+
`)})}function $h(e,t){X(e.command("list").description("List proposal sessions from the backend Sessions API.")).option("--project-id <id>","Filter proposal sessions by a single project id.").option("--project-ids <ids...>","Filter proposal sessions by multiple project ids.").option("--active-only","Only return non-archived proposal sessions.").option("--include-archived","Include archived proposal sessions in the result set.").action(async function(o){if(o.projectId&&o.projectIds?.length)throw new w("Use either --project-id or --project-ids, not both.");const a=Y(this,t),r=jh(await a.api.listSessions({type:Dn.PROPOSAL,projectId:B(o.projectId),projectIds:o.projectIds?.map(B).filter(Boolean),activeOnly:o.activeOnly?!0:void 0,includeArchived:o.includeArchived?!0:void 0}));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Th(r.sessions))})}function qh(e,t){const n=t.summary,o=t.result,a=o?.validation?.isValid===!0,r=n?.appliedTitle||o?.optimizedTitle||"",i=n?.appliedProposalName||o?.optimizedProposalName||"",s=o?.validation?.diagnostics??[],l=[a?"Proposal optimized":"Proposal optimization returned diagnostics",`sessionId ${e}`,`title ${r}`,`proposalName ${i}`,`valid ${a?"yes":"no"}`];for(const c of s)l.push(`diagnostic ${c.code??"UNKNOWN"}: ${c.message??""}`.trimEnd());return a&&l.push(`next hagi proposal generate --session-id ${e}`),`${l.join(`
|
|
137
|
+
`)}
|
|
138
|
+
`}function eb(e,t){X(e.command("optimize-description").description("Optimize the proposal description, title, and name in one backend step.")).requiredOption("--session-id <id>","Proposal session id to optimize.").requiredOption("--description <text>","Description text to optimize.").option("--title <title>","Current title snapshot. The session title is used when omitted.").option("--default-title","Treat the current title as the placeholder title.").option("--optimization-direction <text>","Optional optimization direction for AI guidance.").option("--original-chief-complaint <text>","Optional original chief complaint to keep as context.").action(async function(o){const a=Y(this,t),r=F(o.sessionId,"--session-id"),i=await a.api.optimizeProposal(r,{description:F(o.description,"--description"),title:B(o.title),isDefaultTitle:o.defaultTitle?!0:void 0,optimizationDirection:B(o.optimizationDirection),originalChiefComplaint:B(o.originalChiefComplaint)});if(a.outputJson){a.io.stdout(I({sessionId:r,...i}));return}a.io.stdout(qh(r,i))})}function tb(e,t){X(e.command("send").description("Send a follow-up message to a proposal session.")).requiredOption("--session-id <id>","Proposal session id.").requiredOption("--content <text>","Message content.").addOption(new Ye("--mode <mode>","Message mode override.").choices(Object.values(_n))).addOption(new Ye("--executor-type <type>","Executor override for this message.").choices(Object.values(Lt))).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.sendMessage(r,{content:F(o.content,"--content"),mode:o.mode,executorType:o.executorType});if(a.outputJson){a.io.stdout(I({sessionId:r,message:i.message,requested:{mode:o.mode,executorType:o.executorType}}));return}a.io.stdout(On("Proposal message sent",r,i,[["mode",o.mode],["executorType",o.executorType]]))})}function nb(e,t){X(e.command("status").description("Update proposal session status through read-before-write merging.")).requiredOption("--session-id <id>","Proposal session id.").addOption(new Ye("--status <status>","Target session status.").choices(Object.values(_r)).makeOptionMandatory()).action(async function(o){const a=Y(this,t),r=o.sessionId.trim(),i=await a.api.getSession(r);await a.api.updateSession(r,{title:i.title,description:i.description,status:o.status,metadata:i.metadata});const s=Be({...i,status:o.status});if(a.outputJson){a.io.stdout(I({session:s}));return}a.io.stdout(`Proposal status updated
|
|
139
|
+
${ze(s)}`)})}function ob(e,t){const n=e.command("proposal").description("Manage proposal sessions through backend session APIs.");$h(n,t),Mh(n,t),eb(n,t),Ph(n,t),Kh(n,t),Oh(n,t),xh(n,t),nb(n,t),zh(n,t),tb(n,t)}function Je(e){return e?"yes":"no"}function ab(e){return e&&e.length>0?e.join(", "):"-"}function bi(e){return e.origin??"user"}function gi(e){return bi(e)==="built-in"}function rb(e){return gi(e)?Je(e.builtIn?.enabled):"-"}function ib(e){return(gi(e)?e.builtIn?.version:e.managedInstallMetadata?.version)??"-"}function sb(e){const t=e.items??[];return t.length===0?`No local skills installed.
|
|
140
|
+
`:`Local skills (${t.length})
|
|
141
|
+
${ne([{header:"Name",value:n=>n.name??"-"},{header:"Origin",value:bi},{header:"Enabled",value:rb},{header:"Version",value:ib},{header:"Scope",value:n=>n.scope??"-"},{header:"Agents",value:n=>ab(n.agents)},{header:"Path",value:n=>n.path??"-"}],t)}
|
|
142
|
+
`}function lb(e){return _([["skillName",e.skillName??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function cb(e){return _([["skillName",e.slug??void 0],["enabled",Je(e.enabled)],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0]])}function ub(e){const t=e.items??[];return t.length===0?`No gallery skills found.
|
|
143
|
+
`:`Gallery skills (${t.length})
|
|
144
|
+
${ne([{header:"ID",value:n=>n.id??"-"},{header:"Source",value:n=>n.source??"-"},{header:"Installs",value:n=>String(n.installs??0)},{header:"Trusted",value:n=>Je(n.isTrustedSource)}],t)}
|
|
145
|
+
`}function db(e){const t=e.trustedProvider;return _([["id",e.id??void 0],["source",e.source??void 0],["skillSlug",e.skillSlug??void 0],["installable",Je(e.isInstallable)],["description",e.description??void 0],["repository",e.repositoryFullName??e.repositoryName??void 0],["repositoryUrl",e.repositoryUrl??void 0],["defaultBranch",e.repositoryDefaultBranch??void 0],["trustedSource",Je(e.isTrustedSource)],["trustedProvider",t?`${t.displayName??t.providerId??"-"}`:void 0],["installReference",e.installReference??void 0],["installCommand",e.installCommandPreview??void 0],["installVersion",e.installVersion??void 0],["installHint",e.installHint??void 0]])}function mb(e){return _([["installReference",e.installReference??void 0],["normalizedSkillKey",e.normalizedSkillKey??void 0],["version",e.version??void 0],["status",e.status??void 0],["message",e.userMessage??void 0],["diagnostic",e.diagnosticMessage??void 0],["commandPreview",e.commandPreview??void 0]])}function Rt(e){const t=e.items??[];return t.length===0?`No trusted providers (directory version ${e.version??0}).
|
|
146
|
+
`:`Trusted providers (${t.length}, directory version ${e.version??0})
|
|
147
|
+
${ne([{header:"Provider ID",value:n=>n.providerId??"-"},{header:"Name",value:n=>n.displayName??"-"},{header:"Enabled",value:n=>Je(n.isEnabled)},{header:"Preset",value:n=>Je(n.isPreset)},{header:"Rules",value:n=>String(n.ruleCount??0)}],t)}
|
|
148
|
+
`}function hb(e,t){const n=e.command("gallery").description("Search the skill gallery, read skill details, and start managed installs.");X(n.command("search").description("Search the skill gallery by keyword.")).option("--query <query>","Keyword to search for. Omit to list the gallery.").action(async function(a){const r=Y(this,t),i=await r.api.searchSkillGallery(B(a.query));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(ub(i))}),X(n.command("detail").description("Show one gallery skill with installability, trust, and repository details.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").action(async function(a){const r=Y(this,t),i=await r.api.getSkillGalleryDetail(F(a.id,"--id"),F(a.source,"--source"));if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(db(i))}),X(n.command("install").description("Start a managed install of one gallery skill.")).requiredOption("--id <id>","Gallery skill id.").requiredOption("--source <source>","Gallery skill source.").requiredOption("--skill-slug <slug>","Skill slug inside the source repository.").option("--version <version>","Optional version token to install.").action(async function(a){const r=Y(this,t),i=await r.api.installGallerySkill({id:F(a.id,"--id"),source:F(a.source,"--source"),skillSlug:F(a.skillSlug,"--skill-slug"),version:B(a.version)});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(mb(i))})}var bb="The change applies to agent runs that start afterwards; a run already in progress keeps its skills.";function Za(e,t,n){const o=n?"enable":"disable";X(e.command(o).description(`${n?"Turn on":"Turn off"} one built-in skill by name. ${bb}`)).requiredOption("--skill-name <name>",`Built-in skill name to ${o}.`).action(async function(r){const i=Y(this,t),s=await i.api.setBuiltInSkillAvailability({slug:F(r.skillName,"--skill-name"),enabled:n});if(i.outputJson?i.io.stdout(I(s)):i.io.stdout(cb(s)),!s.succeeded)throw new mt(s.userMessage??`The built-in skill availability was not changed for ${s.slug??r.skillName}.`)})}function gb(e,t){const n=e.command("local").description("List, enable or disable built-in skills, and uninstall user-installed local skills.");X(n.command("list").description("List installed local skills with their managed install metadata.")).action(async function(){const a=Y(this,t),r=await a.api.listLocalSkills();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(sb(r))}),Za(n,t,!0),Za(n,t,!1),X(n.command("uninstall").description("Uninstall one user-installed local skill by name. Built-in skills cannot be uninstalled; use `skills local disable --skill-name <name>` to stop one from loading.")).requiredOption("--skill-name <name>","Local skill name to uninstall.").action(async function(a){const r=Y(this,t),i=await r.api.uninstallLocalSkill({skillName:F(a.skillName,"--skill-name")});if(r.outputJson){r.io.stdout(I(i));return}r.io.stdout(lb(i))})}async function pb(e,t){const n=await jt(e);if(!n||typeof n!="object"||Array.isArray(n))throw new w(`${t} must be a JSON object.`);return n}function Ab(e,t){const n=e.command("trusted").description("Manage the trusted skill provider directory.");X(n.command("list").description("List trusted skill providers.")).action(async function(){const a=Y(this,t),r=await a.api.listTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Rt(r))}),X(n.command("upsert").description("Create or update a trusted provider from a JSON document.")).requiredOption("--input <file>","JSON file path, or - to read from stdin.").action(async function(a){const r=Y(this,t),i=await pb(F(a.input,"--input"),"Trusted provider input"),s=await r.api.upsertTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(s));return}r.io.stdout(Rt(s))}),X(n.command("delete").description("Delete one trusted provider by id.")).requiredOption("--provider-id <id>","Trusted provider id to delete.").action(async function(a){const r=Y(this,t),i={providerId:F(a.providerId,"--provider-id")},s=await r.api.deleteTrustedSkillProvider(i);if(r.outputJson){r.io.stdout(I(s));return}r.io.stdout(Rt(s))}),X(n.command("reset").description("Reset trusted providers to the backend defaults.")).action(async function(){const a=Y(this,t),r=await a.api.resetTrustedSkillProviders();if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Rt(r))})}function Zb(e,t){const n=e.command("skills").description("Manage local skills, the skill gallery, and trusted providers.");gb(n,t),hb(n,t),Ab(n,t)}function x(e){const t=e?.trim();return t||void 0}function fb(e){return{severity:x(e.severity)??"",code:x(e.code)??"",message:x(e.message)??"",relativePath:x(e.relativePath)}}function qn(e){return{id:x(e.id)??"",name:x(e.name)??"",type:x(e.type)??"",physicalPath:x(e.physicalPath)??"",gitUrl:x(e.gitUrl),createdAtUtc:x(e.createdAtUtc),updatedAtUtc:x(e.updatedAtUtc),bootstrapDiagnostics:(e.bootstrapDiagnostics??[]).map(fb)}}function pi(e){return{generatedAtUtc:x(e.generatedAtUtc),vaults:(e.items??[]).map(qn)}}function Rb(e){return e.length===0?`No vaults found.
|
|
149
|
+
`:`Vaults (${e.length})
|
|
150
|
+
${ne([{header:"Vault ID",value:t=>t.id},{header:"Type",value:t=>t.type},{header:"Name",value:t=>t.name},{header:"Path",value:t=>t.physicalPath}],e)}
|
|
151
|
+
`}function Ai(e,t=[]){return _([["id",e.id],["name",e.name],["type",e.type],["physicalPath",e.physicalPath],["gitUrl",e.gitUrl],["createdAtUtc",e.createdAtUtc],["updatedAtUtc",e.updatedAtUtc],["bootstrapDiagnostics",String(e.bootstrapDiagnostics.length)],...t])}function Eb(e){return{relativePath:x(e.relativePath)??"",fileName:x(e.fileName)??"",isDirectory:e.isDirectory===!0,extension:x(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:x(e.lastModifiedUtc),previewSupported:e.previewSupported===!0}}function Nb(e){return{vaultId:x(e.id)??"",deleted:e.deleted===!0,deleteLocalFilesRequested:e.deleteLocalFilesRequested===!0,localFilesDeletionStatus:x(e.localFilesDeletionStatus),localFilesDeleted:e.localFilesDeleted===!0}}function Gb(e){return`Vault deleted
|
|
152
|
+
${_([["vaultId",e.vaultId],["deleted",String(e.deleted)],["deleteLocalFilesRequested",String(e.deleteLocalFilesRequested)],["localFilesDeletionStatus",e.localFilesDeletionStatus],["localFilesDeleted",String(e.localFilesDeleted)]])}`}function Vb(e){return{vaultId:x(e.vaultId)??"",vaultName:x(e.vaultName)??"",physicalPath:x(e.physicalPath)??"",status:x(e.status)??"",errorCode:x(e.errorCode),message:x(e.message),isTruncated:e.isTruncated===!0,totalFileCount:typeof e.totalFileCount=="number"?e.totalFileCount:0,items:(e.items??[]).map(Eb)}}function Wb(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["status",e.status],["errorCode",e.errorCode],["message",e.message],["isTruncated",String(e.isTruncated)],["totalFileCount",String(e.totalFileCount)]]);return e.items.length===0?`Vault files
|
|
153
|
+
${t}No files found.
|
|
154
|
+
`:`Vault files
|
|
155
|
+
${t}${ne([{header:"Relative Path",value:n=>n.relativePath},{header:"Directory",value:n=>n.isDirectory?"yes":"no"},{header:"Extension",value:n=>n.extension},{header:"Size",value:n=>String(n.sizeBytes)},{header:"Preview",value:n=>n.previewSupported?"yes":"no"}],e.items)}
|
|
156
|
+
`}function Sb(e){return{vaultId:x(e.vaultId)??"",vaultName:x(e.vaultName)??"",physicalPath:x(e.physicalPath)??"",relativePath:x(e.relativePath)??"",fileName:x(e.fileName)??"",extension:x(e.extension)??"",sizeBytes:typeof e.sizeBytes=="number"?e.sizeBytes:0,lastModifiedUtc:x(e.lastModifiedUtc),status:x(e.status)??"",errorCode:x(e.errorCode),message:x(e.message),previewSupported:e.previewSupported===!0,contentTruncated:e.contentTruncated===!0,content:x(e.content)}}function vb(e){const t=_([["vaultId",e.vaultId],["vaultName",e.vaultName],["physicalPath",e.physicalPath],["relativePath",e.relativePath],["fileName",e.fileName],["extension",e.extension],["sizeBytes",String(e.sizeBytes)],["lastModifiedUtc",e.lastModifiedUtc],["status",e.status],["errorCode",e.errorCode],["message",e.message],["previewSupported",String(e.previewSupported)],["contentTruncated",String(e.contentTruncated)]]);if(!e.content)return`Vault file preview
|
|
157
|
+
${t}`;const n=e.content.endsWith(`
|
|
158
|
+
`)?"":`
|
|
159
|
+
`;return`Vault file preview
|
|
160
|
+
${t}content
|
|
161
|
+
-------
|
|
162
|
+
${e.content}${n}`}function Xb(e,t){X(e.command("create").description("Create a vault through the generated vault client.")).requiredOption("--name <name>","Vault display name.").requiredOption("--type <type>","Vault type, such as folder, obsidian, or coderef.").requiredOption("--physical-path <path>","Vault physical path.").option("--git-url <url>","Optional git remote URL for git-backed vaults.").action(async function(o){const a=Y(this,t),r=qn(await a.api.createVault({name:F(o.name,"--name"),type:F(o.type,"--type"),physicalPath:F(o.physicalPath,"--physical-path"),gitUrl:B(o.gitUrl)}));if(a.outputJson){a.io.stdout(I({vault:r}));return}a.io.stdout(`Vault created
|
|
163
|
+
${Ai(r)}`)})}function Yb(e,t){X(e.command("delete").description("Delete a vault by id and optionally request local file cleanup.")).requiredOption("--id <id>","Vault id to delete.").option("--delete-local-files","Request backend deletion of local vault files.").action(async function(o){const a=Y(this,t),r=Nb(await a.api.deleteVault(F(o.id,"--id"),o.deleteLocalFiles===!0));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Gb(r))})}function Ib(e,t){X(e.command("list").description("List files under a registered vault path.")).requiredOption("--id <id>","Vault id to browse.").option("--path <path>","Optional relative path under the vault root.").action(async function(o){const a=Y(this,t),r=Vb(await a.api.listVaultFiles(F(o.id,"--id"),B(o.path)));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(Wb(r))})}function yb(e,t){X(e.command("preview").description("Preview supported file content from a registered vault.")).requiredOption("--id <id>","Vault id to browse.").requiredOption("--path <path>","Relative file path to preview.").action(async function(o){const a=Y(this,t),r=Sb(await a.api.previewVaultFile(F(o.id,"--id"),F(o.path,"--path")));if(a.outputJson){a.io.stdout(I(r));return}a.io.stdout(vb(r))})}function Cb(e,t){X(e.command("list").description("List registered vaults through the generated vault client.")).action(async function(){const o=Y(this,t),a=pi(await o.api.listVaults());if(o.outputJson){o.io.stdout(I(a));return}o.io.stdout(Rb(a.vaults))})}function Bb(e,t){X(e.command("update").description("Update a vault by merging provided fields into the current vault snapshot.")).requiredOption("--id <id>","Vault id to update.").option("--name <name>","Updated vault display name.").option("--type <type>","Updated vault type.").option("--physical-path <path>","Updated vault physical path.").option("--git-url <url>","Updated git remote URL.").action(async function(o){const a=B(o.name),r=B(o.type),i=B(o.physicalPath),s=B(o.gitUrl);if(!a&&!r&&!i&&!s)throw new w("Provide at least one field to update: --name, --type, --physical-path, or --git-url.");const l=Y(this,t),c=F(o.id,"--id"),m=pi(await l.api.listVaults()).vaults.find(f=>f.id===c);if(!m)throw new xe(404,`Vault ${c} was not found in the latest vault snapshot.`);const p=qn(await l.api.updateVault(c,{name:a??m.name,type:r??m.type,physicalPath:i??m.physicalPath,gitUrl:s??m.gitUrl??null}));if(l.outputJson){l.io.stdout(I({vault:p}));return}l.io.stdout(`Vault updated
|
|
164
|
+
${Ai(p)}`)})}function Fb(e,t){const n=e.command("vault").description("Manage Hagi vaults and vault file browsing through generated backend APIs.");Cb(n,t),Xb(n,t),Bb(n,t),Yb(n,t);const o=n.command("files").description("Browse registered vault files and preview supported content.");Ib(o,t),yb(o,t)}function wb(e){return e.includes("--json")}function Zi(e=Dr(),t=!1){const n=new Fi;return n.name("hagi").description("HagiCode CLI for project, proposal, vault, chat, HagiTask, and scheduled plan management.").showHelpAfterError().exitOverride(),n.configureOutput({writeOut:o=>{e.io.stdout(o)},writeErr:o=>{t||e.io.stderr(o)},getOutHelpWidth:()=>100,getErrHelpWidth:()=>100}),Wm(n),Jh(n,e),ob(n,e),Fb(n,e),ym(n,e),Om(n,e),dh(n,e),Zb(n,e),n}function Ub(e,t,n){return e.exitCode===0||e.code==="commander.helpDisplayed"||e.code==="commander.version"?0:(n&&t.io.stderr(Kr({exitCode:P.USAGE,message:e.message},{json:!0})),P.USAGE)}async function Jb(e=process.argv,t=Dr()){const n=wb(e),o=Zi(t,n);try{return await o.parseAsync([...e]),0}catch(a){if(a instanceof Bi)return Ub(a,t,n);const r=kr(a,{baseUrl:Au()});return t.io.stderr(Kr(r,{json:n})),r.exitCode}}Object.defineProperty(exports,"EXIT_CODES",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"createCliApp",{enumerable:!0,get:function(){return Zi}});Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return Jb}});
|