@taquito/michelson-encoder 16.0.1 → 16.1.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-michelson-encoder.es6.js","sources":["../src/michelson-map.ts","../src/tokens/token.ts","../src/tokens/bigmap.ts","../src/tokens/or.ts","../src/tokens/pair.ts","../src/tokens/comparable/nat.ts","../src/tokens/comparable/string.ts","../src/tokens/comparable/address.ts","../src/tokens/map.ts","../src/tokens/comparable/bool.ts","../src/tokens/comparable/tx_rollup_l2_address.ts","../src/tokens/contract.ts","../src/tokens/list.ts","../src/tokens/comparable/mutez.ts","../src/tokens/comparable/bytes.ts","../src/tokens/option.ts","../src/tokens/comparable/timestamp.ts","../src/tokens/comparable/int.ts","../src/tokens/unit.ts","../src/tokens/key.ts","../src/tokens/comparable/key_hash.ts","../src/tokens/signature.ts","../src/tokens/lambda.ts","../src/tokens/operation.ts","../src/tokens/set.ts","../src/tokens/chain-id.ts","../src/tokens/ticket.ts","../src/tokens/ticket-deprecated.ts","../src/tokens/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.ts","../src/tokens/sapling-transaction-deprecated.ts","../src/tokens/bls12-381-fr.ts","../src/tokens/bls12-381-g1.ts","../src/tokens/bls12-381-g2.ts","../src/tokens/chest.ts","../src/tokens/chest-key.ts","../src/tokens/constant.ts","../src/tokens/tokens.ts","../src/tokens/createToken.ts","../src/schema/error.ts","../src/schema/storage.ts","../src/schema/parameter.ts","../src/schema/view-schema.ts","../src/version.ts","../src/taquito-michelson-encoder.ts"],"sourcesContent":["import { MichelsonV1Expression } from '@taquito/rpc';\nimport { Schema } from './schema/storage';\nimport stringify from 'fast-json-stable-stringify';\n\n/**\n * @category Error\n * @description Error that indicates an invalid map type being passed or used\n */\nexport class InvalidMapTypeError extends Error {\n public name = 'InvalidMapTypeError';\n constructor(public mapType: string) {\n super(`The map type '${mapType}' is invalid`);\n }\n}\n\n// Retrieve a unique symbol associated with the key from the environment\n// Used in order to identify all object that are of type MichelsonMap even if they come from different module\nconst michelsonMapTypeSymbol = Symbol.for('taquito-michelson-map-type-symbol');\n\nexport type MichelsonMapKey = Array<any> | object | string | boolean | number;\n\nconst isMapType = (\n value: MichelsonV1Expression\n): value is { prim: 'map' | 'big_map'; args: [MichelsonV1Expression, MichelsonV1Expression] } => {\n return 'args' in value && Array.isArray(value.args) && value.args.length === 2;\n};\n\n/**\n * @category Error\n * @description Error that indicates a map type mismatch, where an attempt to set a key or value in a Map doesn't match the defined type of the Map\n */\nexport class MapTypecheckError extends Error {\n name = 'MapTypecheckError';\n\n constructor(public readonly value: any, public readonly type: any, errorType: 'key' | 'value') {\n super(`${errorType} not compliant with underlying michelson type`);\n }\n}\n\n/**\n * @description Michelson Map is an abstraction over the michelson native map. It supports complex Pair as key\n */\nexport class MichelsonMap<K extends MichelsonMapKey, T> {\n private valueMap = new Map<string, T>();\n private keyMap = new Map<string, K>();\n\n public [michelsonMapTypeSymbol] = true;\n\n // Used to check if an object is a michelson map.\n // Using instanceof was not working for project that had multiple instance of taquito dependencies\n // as the class constructor is different\n static isMichelsonMap(obj: any): obj is MichelsonMap<any, any> {\n return obj && obj[michelsonMapTypeSymbol] === true;\n }\n\n private keySchema?: Schema;\n private valueSchema?: Schema;\n\n /**\n * @param mapType If specified key and value will be type-checked before being added to the map\n *\n * @example new MichelsonMap({ prim: \"map\", args: [{prim: \"string\"}, {prim: \"int\"}]})\n */\n constructor(mapType?: MichelsonV1Expression) {\n if (mapType) {\n this.setType(mapType);\n }\n }\n\n setType(mapType: MichelsonV1Expression) {\n if (!isMapType(mapType)) {\n throw new InvalidMapTypeError(mapType.toString());\n }\n\n this.keySchema = new Schema(mapType.args[0]);\n this.valueSchema = new Schema(mapType.args[1]);\n }\n\n removeType() {\n this.keySchema = undefined;\n this.valueSchema = undefined;\n }\n\n static fromLiteral(obj: { [key: string]: any }, mapType?: MichelsonV1Expression) {\n const map = new MichelsonMap(mapType);\n Object.keys(obj).forEach((key) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n\n private typecheckKey(key: K) {\n if (this.keySchema) {\n return this.keySchema.Typecheck(key);\n }\n\n return true;\n }\n\n private typecheckValue(value: T) {\n if (this.valueSchema) {\n return this.valueSchema.Typecheck(value);\n }\n\n return true;\n }\n\n private assertTypecheckValue(value: T) {\n if (!this.typecheckValue(value)) {\n throw new MapTypecheckError(value, this.valueSchema, 'value');\n }\n }\n\n private assertTypecheckKey(key: K) {\n if (!this.typecheckKey(key)) {\n throw new MapTypecheckError(key, this.keySchema, 'key');\n }\n }\n\n private serializeDeterministically(key: K): string {\n return stringify(key);\n }\n\n *keys(): Generator<K> {\n for (const [key] of this.entries()) {\n yield key;\n }\n }\n\n *values(): Generator<T> {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n\n *entries(): Generator<[K, T]> {\n for (const key of this.valueMap.keys()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this.keyMap.get(key)!, this.valueMap.get(key)!];\n }\n }\n\n get(key: K): T | undefined {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.valueMap.get(strKey);\n }\n\n /**\n *\n * @description Set a key and a value in the MichelsonMap. If the key already exists, override the current value.\n *\n * @example map.set(\"myKey\", \"myValue\") // Using a string as key\n *\n * @example map.set({0: \"test\", 1: \"test1\"}, \"myValue\") // Using a pair as key\n *\n * @warn The same key can be represented in multiple ways, depending on the type of the key. This duplicate key situation will cause a runtime error (duplicate key) when sending the map data to the Tezos RPC node.\n *\n * For example, consider a contract with a map whose key is of type boolean. If you set the following values in MichelsonMap: map.set(false, \"myValue\") and map.set(null, \"myValue\").\n *\n * You will get two unique entries in the MichelsonMap. These values will both be evaluated as falsy by the MichelsonEncoder and ultimately rejected by the Tezos RPC.\n */\n set(key: K, value: T) {\n this.assertTypecheckKey(key);\n this.assertTypecheckValue(value);\n\n const strKey = this.serializeDeterministically(key);\n this.keyMap.set(strKey, key);\n this.valueMap.set(strKey, value);\n }\n\n delete(key: K) {\n this.assertTypecheckKey(key);\n\n this.keyMap.delete(this.serializeDeterministically(key));\n this.valueMap.delete(this.serializeDeterministically(key));\n }\n\n has(key: K) {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.keyMap.has(strKey) && this.valueMap.has(strKey);\n }\n\n clear(): void {\n this.keyMap.clear();\n this.valueMap.clear();\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n forEach(cb: (value: T, key: K, map: MichelsonMap<K, T>) => void) {\n for (const [key, value] of this.entries()) {\n cb(value, key, this);\n }\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding invalid or incorrect data (e.g. if an address is expected but a number is received)\n */\nexport abstract class TokenValidationError extends Error {\n name = 'ValidationError';\n\n constructor(public value: any, public token: Token, baseMessage: string) {\n super();\n const annot = this.token.annot();\n const annotText = annot ? `[${annot}] ` : '';\n this.message = `${annotText}${baseMessage}`;\n }\n}\n\nexport type TokenFactory = (val: any, idx: number) => Token;\n\nexport interface Semantic {\n [key: string]: (value: MichelsonV1Expression, schema: MichelsonV1Expression) => any;\n}\n\nexport interface SemanticEncoding {\n [key: string]: (value: any, type?: MichelsonV1Expression) => MichelsonV1Expression;\n}\n\nexport abstract class Token {\n constructor(\n protected val: MichelsonV1ExpressionExtended,\n protected idx: number,\n protected fac: TokenFactory\n ) {}\n\n protected typeWithoutAnnotations() {\n const handleMichelsonExpression = (val: MichelsonV1Expression): MichelsonV1Expression => {\n if (typeof val === 'object') {\n if (Array.isArray(val)) {\n const array = val as MichelsonV1Expression[];\n return array.map((item) => handleMichelsonExpression(item));\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.args) {\n return {\n prim: extended.prim,\n args: extended.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: extended.prim,\n };\n }\n }\n return val;\n };\n\n const handleMichelsonExtended = (\n val: MichelsonV1ExpressionExtended\n ): Omit<MichelsonV1ExpressionExtended, 'annots'> => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return handleMichelsonExtended(this.val);\n }\n\n annot() {\n return (\n Array.isArray(this.val.annots) && this.val.annots.length > 0\n ? this.val.annots[0]\n : String(this.idx)\n ).replace(/(%|:)(_Liq_entry_)?/, '');\n }\n\n hasAnnotations() {\n return Array.isArray(this.val.annots) && this.val.annots.length;\n }\n\n get tokenVal() {\n return this.val;\n }\n\n public createToken = this.fac;\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public abstract ExtractSchema(): any;\n\n abstract generateSchema(): TokenSchema;\n\n public abstract Execute(val: any, semantics?: Semantic): any;\n\n public abstract Encode(_args: any[]): any;\n\n public abstract EncodeObject(args: any, semantics?: SemanticEncoding): any;\n\n public ExtractSignature() {\n return [[this.ExtractSchema()]];\n }\n\n abstract findAndReturnTokens(tokenToFind: string, tokens: Array<Token>): Array<Token>;\n}\n\nexport type BigMapKeyType = string | number | object;\n\nexport abstract class ComparableToken extends Token {\n abstract ToBigMapKey(val: BigMapKeyType): {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n };\n abstract ToKey(val: string | MichelsonV1Expression): any;\n\n compare(o1: string, o2: string): number {\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { BigMapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Big Map types\n */\nexport class BigMapValidationError extends TokenValidationError {\n name = 'BigMapValidationError';\n constructor(public value: any, public token: BigMapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BigMapToken extends Token {\n static prim: 'big_map' = 'big_map' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as unknown as ComparableToken;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): BigMapTokenSchema {\n return {\n __michelsonType: BigMapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n private isValid(value: any): BigMapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new BigMapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val, this.val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public Execute(val: any[] | { int: string }, semantic?: Semantic) {\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val as any, this.val);\n }\n\n if (Array.isArray(val)) {\n // Athens is returning an empty array for big map in storage\n // Internal: In taquito v5 it is still used to decode big map diff (as if they were a regular map)\n const map = new MichelsonMap(this.val);\n val.forEach((current) => {\n map.set(this.KeySchema.ToKey(current.args[0]), this.ValueSchema.Execute(current.args[1]));\n });\n return map;\n } else if ('int' in val) {\n // Babylon is returning an int with the big map id in contract storage\n return val.int;\n } else {\n throw new BigMapValidationError(\n val,\n this,\n `Big map is expecting either an array (Athens) or an object with an int property (Babylon). Got ${JSON.stringify(\n val\n )}`\n );\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BigMapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { OrTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when decoding OR Token methods\n */\nexport class OrTokenDecodingError extends Error {\n public name = 'OrTokenDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class OrToken extends ComparableToken {\n static prim: 'or' = 'or' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n const label = args[args.length - 1];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Left', args: [leftToken.Encode(args)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Right', args: [rightToken.Encode(args)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.Encode(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public ExtractSignature(): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n const newSig = [];\n\n if (leftToken instanceof OrToken) {\n newSig.push(...leftToken.ExtractSignature());\n } else {\n for (const sig of leftToken.ExtractSignature()) {\n newSig.push([leftToken.annot(), ...sig]);\n }\n }\n\n if (rightToken instanceof OrToken) {\n newSig.push(...rightToken.ExtractSignature());\n } else {\n for (const sig of rightToken.ExtractSignature()) {\n newSig.push([rightToken.annot(), ...sig]);\n }\n }\n\n return newSig;\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const label = Object.keys(args)[0];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n return { prim: 'Left', args: [leftToken.EncodeObject(args[label], semantic)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label], semantic)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public Execute(val: any, semantics?: Semantic): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (val.prim === 'Right') {\n if (rightToken instanceof OrToken) {\n return rightToken.Execute(val.args[0], semantics);\n } else {\n return {\n [rightToken.annot()]: rightToken.Execute(val.args[0], semantics),\n };\n }\n } else if (val.prim === 'Left') {\n if (leftToken instanceof OrToken) {\n return leftToken.Execute(val.args[0], semantics);\n }\n return {\n [leftToken.annot()]: leftToken.Execute(val.args[0], semantics),\n };\n } else {\n throw new OrTokenDecodingError(`Was expecting Left or Right prim but got: ${val.prim}`);\n }\n }\n\n private traversal(\n getLeftValue: (token: Token) => any,\n getRightValue: (token: Token) => any,\n concat: (left: any, right: any) => any\n ) {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof OrToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof OrToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = concat(leftValue, rightValue);\n\n return res;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema(),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n }\n\n generateSchema(): OrTokenSchema {\n return {\n __michelsonType: OrToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof OrToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof OrToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n },\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n ),\n };\n }\n\n private findToken(label: any): Token | null {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (\n String(leftToken.annot()) === String(label) &&\n !(leftToken instanceof OrToken) &&\n leftToken instanceof ComparableToken\n ) {\n return leftToken;\n } else if (\n String(rightToken.annot()) === String(label) &&\n !(rightToken instanceof OrToken) &&\n rightToken instanceof ComparableToken\n ) {\n return rightToken;\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n return null;\n }\n }\n\n compare(val1: any, val2: any): any {\n const labelVal1 = Object.keys(val1)[0];\n const labelVal2 = Object.keys(val2)[0];\n\n if (labelVal1 === labelVal2) {\n const token = this.findToken(labelVal1);\n if (token instanceof ComparableToken) {\n return token.compare(val1[labelVal1], val2[labelVal1]);\n }\n } else {\n const encoded1 = JSON.stringify(this.EncodeObject(val1));\n const encoded2 = JSON.stringify(this.EncodeObject(val2));\n return encoded1 < encoded2 ? -1 : 1;\n }\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OrToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.traversal(\n (leftToken) => leftToken.findAndReturnTokens(tokenToFind, tokens),\n (rightToken) => rightToken.findAndReturnTokens(tokenToFind, tokens),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n return tokens;\n }\n}\n","import { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\nimport { OrToken } from './or';\nimport { PairTokenSchema } from '../schema/types';\nimport { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\n\n/**\n * @category Error\n * @description Error that indicates in invalid token argument being passed\n */\nexport class TokenArgumentValidationError extends Error {\n public name = 'TokenArgumentValidationError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure occurring when doing a comparison of tokens\n */\nexport class TokenComparisonError extends Error {\n public name = 'TokenComparisonError';\n constructor(public val1: string, public val2: string) {\n super(`Tokens ${val1} and ${val2} are not comparable`);\n }\n}\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n if (val.args === undefined) {\n throw new TokenArgumentValidationError(\n 'Encountered an invalid PairToken with no arguments, a pair must have two or more arguments'\n );\n }\n if (val.args.length > 2) {\n return [\n val.args[0],\n {\n prim: prim,\n args: val.args.slice(1),\n },\n ];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim: 'pair' = 'pair' as const;\n\n constructor(val: MichelsonV1Expression, idx: number, fac: TokenFactory) {\n super(\n Array.isArray(val)\n ? {\n prim: PairToken.prim,\n args: val,\n }\n : (val as MichelsonV1ExpressionExtended).prim\n ? (val as MichelsonV1ExpressionExtended)\n : ({\n prim: PairToken.prim,\n args: val,\n } as MichelsonV1ExpressionExtended),\n idx,\n fac\n );\n }\n\n private args(): [any, any] {\n // collapse comb pair\n return collapse(this.val);\n }\n\n private tokens(): [Token, Token] {\n let cnt = 0;\n return this.args().map((a) => {\n const tok = this.createToken(a, this.idx + cnt);\n if (tok instanceof PairToken) {\n cnt += Object.keys(tok.ExtractSchema()).length;\n } else {\n cnt++;\n }\n return tok;\n }) as [Token, Token];\n }\n\n public Encode(args: any[]): any {\n return {\n prim: 'Pair',\n args: this.tokens().map((t) => t.Encode(args)),\n };\n }\n\n public ExtractSignature(): any {\n const args = this.args();\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n\n const newSig = [];\n\n for (const leftSig of leftToken.ExtractSignature()) {\n for (const rightSig of rightToken.ExtractSignature()) {\n newSig.push([...leftSig, ...rightSig]);\n }\n }\n\n return newSig;\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const [leftToken, rightToken] = this.tokens();\n\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = args;\n } else {\n leftValue = args[leftToken.annot()];\n }\n\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = args;\n } else {\n rightValue = args[rightToken.annot()];\n }\n\n return {\n prim: 'Pair',\n args: [\n leftToken.EncodeObject(leftValue, semantic),\n rightToken.EncodeObject(rightValue, semantic),\n ],\n };\n }\n\n private traversal(getLeftValue: (token: Token) => any, getRightValue: (token: Token) => any) {\n const args = this.args();\n\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof PairToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = {\n ...leftValue,\n ...rightValue,\n };\n\n return res;\n }\n\n public Execute(val: any, semantics?: Semantic): { [key: string]: any } {\n const args = collapse(val, 'Pair');\n return this.traversal(\n (leftToken) => leftToken.Execute(args[0], semantics),\n (rightToken) => rightToken.Execute(args[1], semantics)\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema()\n );\n }\n\n generateSchema(): PairTokenSchema {\n return {\n __michelsonType: PairToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n }\n ),\n };\n }\n\n public compare(val1: any, val2: any) {\n const [leftToken, rightToken] = this.tokens();\n\n const getValue = (token: Token, args: any) => {\n if (token instanceof PairToken && !token.hasAnnotations()) {\n return args;\n } else {\n return args[token.annot()];\n }\n };\n\n if (leftToken instanceof ComparableToken && rightToken instanceof ComparableToken) {\n const result: number = leftToken.compare(\n getValue(leftToken, val1),\n getValue(leftToken, val2)\n );\n\n if (result === 0) {\n return rightToken.compare(getValue(rightToken, val1), getValue(rightToken, val2));\n }\n\n return result;\n }\n\n throw new TokenComparisonError(val1, val2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (PairToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.tokens().map((t) => t.findAndReturnTokens(tokenToFind, tokens));\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class NatValidationError extends TokenValidationError {\n name = 'NatValidationError';\n constructor(public value: any, public token: NatToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NatToken extends ComparableToken {\n static prim: 'nat' = 'nat' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n private isValid(val: any): NatValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new NatValidationError(val, this, `Value is not a number: ${val}`);\n } else if (bigNumber.isNegative()) {\n return new NatValidationError(val, this, `Value cannot be negative: ${val}`);\n } else {\n return null;\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[NatToken.prim]) {\n return semantic[NatToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NatToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NatToken.prim,\n schema: NatToken.prim,\n };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: NatToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return new BigNumber(int);\n }\n\n compare(nat1: string | number, nat2: string | number) {\n const o1 = Number(nat1);\n const o2 = Number(nat2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NatToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim: 'string' = 'string' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return StringToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: StringToken.prim,\n schema: StringToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[StringToken.prim]) {\n return semantic[StringToken.prim](val);\n }\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: StringToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (StringToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class AddressValidationError extends TokenValidationError {\n name = 'AddressValidationError';\n constructor(public value: any, public token: AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class AddressToken extends ComparableToken {\n static prim: 'address' = 'address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decode(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n private isValid(value: any): AddressValidationError | null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new AddressValidationError(value, this, `Address is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[AddressToken.prim]) {\n return semantic[AddressToken.prim](val);\n }\n\n return { string: val };\n }\n\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new AddressValidationError(\n val,\n this,\n `cannot be missing both string and bytes: ${val}`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: AddressToken.prim,\n schema: AddressToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new AddressValidationError(\n { bytes, string },\n this,\n `cannot be missing both string and bytes ${{ string, bytes }}`\n );\n }\n\n return encodePubKey(bytes);\n }\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n const implicit1 = isImplicit(address1);\n const implicit2 = isImplicit(address2);\n\n if (implicit1 && !implicit2) {\n return -1;\n } else if (implicit2 && !implicit1) {\n return 1;\n }\n return super.compare(address1, address2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { MapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\nexport class MapValidationError extends TokenValidationError {\n name = 'MapValidationError';\n constructor(public value: any, public token: MapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MapToken extends Token {\n static prim: 'map' = 'map' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n private isValid(value: any): MapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new MapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n public Execute(val: any[], semantics?: Semantic): { [key: string]: any } {\n const map = new MichelsonMap(this.val);\n\n val.forEach((current) => {\n map.set(\n this.KeySchema.ToKey(current.args[0]),\n this.ValueSchema.Execute(current.args[1], semantics)\n );\n });\n return map;\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[MapToken.prim]) {\n return semantic[MapToken.prim](val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): MapTokenSchema {\n return {\n __michelsonType: MapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim: 'bool' = 'bool' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): boolean {\n return String(val.prim).toLowerCase() === 'true' ? true : false;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { prim: val ? 'True' : 'False' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding) {\n if (semantic && semantic[BoolToken.prim]) {\n return semantic[BoolToken.prim](val);\n }\n return { prim: val ? 'True' : 'False' };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BoolToken.prim,\n schema: BoolToken.prim,\n };\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val) as any,\n type: { prim: BoolToken.prim },\n };\n }\n\n ToKey(val: string) {\n return this.EncodeObject(val);\n }\n\n compare(val1: any, val2: any) {\n if ((val1 && val2) || (!val1 && !val2)) {\n return 0;\n } else if (val1) {\n return 1;\n } else {\n return -1;\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BoolToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n b58decodeL2Address,\n encodeL2Address,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\nimport {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from '../token';\n\nexport class TxRollupL2AddressValidationError extends TokenValidationError {\n name = 'TxRollupL2AddressValidationError';\n constructor(public value: unknown, public token: TxRollupL2AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class TxRollupL2AddressToken extends ComparableToken {\n static prim: 'tx_rollup_l2_address' = 'tx_rollup_l2_address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decodeL2Address(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n private isValid(value: any): null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new TxRollupL2AddressValidationError(\n value,\n this,\n `tx_rollup_l2_address is not valid: ${value}`\n );\n }\n return null;\n }\n\n public Encode(args: string[]): any {\n const val = args.pop();\n if (!val) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `arg missing to encode: this -> \"${val}\"`\n );\n }\n // no need to test since method throws\n this.isValid(val);\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n // no need to test since method throws\n this.isValid(val);\n\n if (semantic && semantic[TxRollupL2AddressToken.prim]) {\n return semantic[TxRollupL2AddressToken.prim](val);\n }\n return { string: val };\n }\n\n public Execute(val: { bytes?: string; string?: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `value cannot be missing string and byte value. must have one ${JSON.stringify(val)}`\n );\n }\n return encodeL2Address(val.bytes);\n }\n public ExtractSchema() {\n return TxRollupL2AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TxRollupL2AddressToken.prim,\n schema: TxRollupL2AddressToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: { bytes?: string; string?: string }) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new TxRollupL2AddressValidationError(\n bytes,\n this,\n `value cannot be missing string and byte value. must have one: bytes = ${bytes}`\n );\n }\n return encodeL2Address(bytes);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]): Token[] {\n if (TxRollupL2AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TokenSchema } from './../schema/types';\nimport { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { ContractTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ContractValidationError extends TokenValidationError {\n name = 'ContractValidationError';\n constructor(public value: any, public token: ContractToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ContractToken extends Token {\n static prim: 'contract' = 'contract' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(value: any): ContractValidationError | null {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new ContractValidationError(value, this, 'Contract address is not valid');\n }\n\n return null;\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new ContractValidationError(val, this, 'must contain bytes or string');\n }\n\n return encodePubKey(val.bytes);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[ContractToken.prim]) {\n return semantic[ContractToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n generateSchema(): ContractTokenSchema {\n const valueSchema = this.createToken(this.val.args[0], 0);\n return {\n __michelsonType: ContractToken.prim,\n schema: {\n parameter: this.val.args[0] ? valueSchema.generateSchema() : ({} as TokenSchema),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ListTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, TokenValidationError, SemanticEncoding } from './token';\n\nexport class ListValidationError extends TokenValidationError {\n name = 'ListValidationError';\n constructor(public value: any, public token: ListToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ListToken extends Token {\n static prim: 'list' = 'list' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n private isValid(value: any): ListValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new ListValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ListToken.prim]) {\n return semantic[ListToken.prim](args);\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [ListToken.prim]: this.valueSchema.ExtractSchema(),\n };\n }\n\n generateSchema(): ListTokenSchema {\n return {\n __michelsonType: ListToken.prim,\n schema: this.valueSchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ListToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class MutezValidationError extends TokenValidationError {\n name = 'MutezValidationError';\n constructor(public value: any, public token: MutezToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MutezToken extends ComparableToken {\n static prim: 'mutez' = 'mutez' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any) {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return MutezToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: MutezToken.prim,\n schema: MutezToken.prim,\n };\n }\n\n private isValid(val: any): MutezValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new MutezValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: String(val).toString() };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[MutezToken.prim]) {\n return semantic[MutezToken.prim](val);\n }\n\n return { int: String(val).toString() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: MutezToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(mutez1: string | number, mutez2: string | number) {\n const o1 = Number(mutez1);\n const o2 = Number(mutez2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MutezToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n Token,\n SemanticEncoding,\n} from '../token';\nimport { stripHexPrefix } from '@taquito/utils';\n\nexport class BytesValidationError extends TokenValidationError {\n name = 'BytesValidationError';\n constructor(public value: any, public token: BytesToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BytesToken extends ComparableToken {\n static prim: 'bytes' = 'bytes' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { bytes: val },\n type: { prim: BytesToken.prim },\n };\n }\n\n private isValid(val: any): BytesValidationError | null {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n public Encode(args: any[]): any {\n let val = args.pop();\n val = stripHexPrefix(this.convertUint8ArrayToHexString(val));\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n\n if (typeof val === 'string') {\n val = stripHexPrefix(val);\n }\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[BytesToken.prim]) {\n return semantic[BytesToken.prim](val);\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BytesToken.prim,\n schema: BytesToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return bytes;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BytesToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { OptionTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim: 'option' = 'option' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public subToken(): Token {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n schema(): Token {\n return this.createToken(this.val.args[0], 0);\n }\n\n annot(): string {\n return Array.isArray(this.val.annots)\n ? super.annot()\n : this.createToken(this.val.args[0], this.idx).annot();\n }\n\n public Encode(args: any): any {\n const value = args;\n if (value === undefined || value === null) {\n return { prim: 'None' };\n } else if (\n Array.isArray(value) &&\n (value[value.length - 1] === undefined || value[value.length - 1] === null)\n ) {\n value.pop();\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().Encode(args)] };\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().EncodeObject(value, semantic)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n return this.schema().Execute(val.args[0], semantics);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return this.schema().ExtractSchema();\n }\n\n generateSchema(): OptionTokenSchema {\n return {\n __michelsonType: OptionToken.prim,\n schema: this.schema().generateSchema(),\n };\n }\n\n public ExtractSignature() {\n return [...this.schema().ExtractSignature(), []];\n }\n\n get KeySchema(): ComparableToken {\n return this.schema() as any;\n }\n\n compare(val1: any, val2: any) {\n if (!val1) {\n return -1;\n } else if (!val2) {\n return 1;\n }\n return this.KeySchema.compare(val1, val2);\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OptionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.subToken().findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim: 'timestamp' = 'timestamp' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { string?: string; int?: string }) {\n if (val.string && /^\\d+$/.test(val.string)) {\n return new Date(Number(val.string) * 1000).toISOString();\n } else if (val.string) {\n return new Date(val.string).toISOString();\n } else if (val.int) {\n return new Date(Number(val.int) * 1000).toISOString();\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TimestampToken.prim]) {\n return semantic[TimestampToken.prim](val);\n }\n\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TimestampToken.prim,\n schema: TimestampToken.prim,\n };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: TimestampToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TimestampToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class IntValidationError extends TokenValidationError {\n name = 'IntValidationError';\n constructor(public value: any, public token: IntToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class IntToken extends ComparableToken {\n static prim: 'int' = 'int' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return IntToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n };\n }\n\n private isValid(val: any): IntValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new IntValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[IntToken.prim]) {\n return semantic[IntToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: IntToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(int1: string | number, int2: string | number) {\n const o1 = Number(int1);\n const o2 = Number(int2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (IntToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ComparableToken, SemanticEncoding, Token, TokenFactory } from './token';\nimport { BaseTokenSchema } from '../schema/types';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim: 'unit' = 'unit' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n args.pop();\n return { prim: 'Unit' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[UnitToken.prim]) {\n return semantic[UnitToken.prim](val);\n }\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return UnitToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: UnitToken.prim,\n schema: UnitToken.prim,\n };\n }\n\n compare(_val1: any, _val2: any) {\n return 0;\n }\n\n ToKey(_val: any) {\n return UnitValue;\n }\n\n ToBigMapKey(_val: any) {\n return {\n key: { prim: 'Unit' },\n type: { prim: UnitToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (UnitToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport {\n encodeKey,\n validatePublicKey,\n ValidationResult,\n Prefix,\n b58cdecode,\n prefix,\n} from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nconst publicKeyPrefixLength = 4;\n\nexport class KeyValidationError extends TokenValidationError {\n name = 'KeyValidationError';\n constructor(public value: any, public token: KeyToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyToken extends ComparableToken {\n static prim: 'key' = 'key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n private isValid(value: any): KeyValidationError | null {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n return new KeyValidationError(value, this, 'Key is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[KeyToken.prim]) {\n return semantic[KeyToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyToken.prim,\n schema: KeyToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyToken.prim },\n };\n }\n\n compare(key1: string, key2: string): number {\n const keyPrefix1 = this.getPrefix(key1);\n const keyPrefix2 = this.getPrefix(key2);\n\n if (keyPrefix1 === Prefix.EDPK && keyPrefix2 !== Prefix.EDPK) {\n return -1;\n } else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n } else if (keyPrefix1 === Prefix.P2PK) {\n if (keyPrefix2 !== Prefix.P2PK) {\n return 1;\n }\n\n const keyBytes1 = this.getP256PublicKeyComparableBytes(key1);\n const keyBytes2 = this.getP256PublicKeyComparableBytes(key2);\n return Buffer.compare(keyBytes1, keyBytes2);\n }\n\n return super.compare(key1, key2);\n }\n\n private getPrefix(val: string) {\n return val.substring(0, publicKeyPrefixLength);\n }\n\n private getP256PublicKeyComparableBytes(p2pk: string) {\n return b58cdecode(p2pk, prefix[Prefix.P2PK]).slice(1);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class KeyHashValidationError extends TokenValidationError {\n name = 'KeyHashValidationError';\n constructor(public value: any, public token: KeyHashToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyHashToken extends ComparableToken {\n static prim: 'key_hash' = 'key_hash' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n private isValid(value: any): KeyHashValidationError | null {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n return new KeyHashValidationError(value, this, `KeyHash is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[KeyHashToken.prim]) {\n return semantic[KeyHashToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyHashToken.prim,\n schema: KeyHashToken.prim,\n };\n }\n\n public ToKey({ string, bytes }: any) {\n if (string) {\n return string;\n }\n\n return encodeKeyHash(bytes);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyHashToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyHashToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nexport class SignatureValidationError extends TokenValidationError {\n name = 'SignatureValidationError';\n constructor(public value: any, public token: SignatureToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SignatureToken extends ComparableToken {\n static prim: 'signature' = 'signature' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): string {\n if (val.string) {\n return val.string;\n }\n // TODO decode the signature\n return val.bytes;\n }\n\n private isValid(value: any): SignatureValidationError | null {\n if (validateSignature(value) !== ValidationResult.VALID) {\n return new SignatureValidationError(value, this, 'Signature is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[SignatureToken.prim]) {\n return semantic[SignatureToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SignatureToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: SignatureToken.prim,\n schema: SignatureToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: SignatureToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SignatureToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { LambdaTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim: 'lambda' = 'lambda' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get paramSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n get returnSchema() {\n return this.createToken(this.val.args[1], this.idx + 1);\n }\n\n public Execute(val: any) {\n if (val.string) {\n return val.string;\n } else {\n return val;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return val;\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[LambdaToken.prim]) {\n return semantic[LambdaToken.prim](val);\n }\n return val;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [LambdaToken.prim]: {\n parameters: this.paramSchema.ExtractSchema(),\n returns: this.returnSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): LambdaTokenSchema {\n return {\n __michelsonType: LambdaToken.prim,\n schema: {\n parameters: this.paramSchema.generateSchema(),\n returns: this.returnSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (LambdaToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n this.createToken(this.val.args[1], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim: 'operation' = 'operation' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return val.string;\n }\n\n public Encode(...args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[OperationToken.prim]) {\n return semantic[OperationToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: OperationToken.prim,\n schema: OperationToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SetTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n TokenValidationError,\n ComparableToken,\n SemanticEncoding,\n} from './token';\n\nexport class SetValidationError extends TokenValidationError {\n name = 'SetValidationError';\n constructor(public value: any, public token: SetToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SetToken extends Token {\n static prim: 'set' = 'set' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n private isValid(value: any): SetValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new SetValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n return val.reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[SetToken.prim]) {\n return semantic[SetToken.prim](args);\n }\n\n return args\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SetToken.prim;\n }\n\n generateSchema(): SetTokenSchema {\n return {\n __michelsonType: SetToken.prim,\n schema: this.KeySchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SetToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nexport class ChainIDValidationError extends TokenValidationError {\n name = 'ChainIDValidationError';\n constructor(public value: any, public token: ChainIDToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ChainIDToken extends ComparableToken {\n static prim: 'chain_id' = 'chain_id' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(value: any): ChainIDValidationError | null {\n if (validateChain(value) !== ValidationResult.VALID) {\n return new ChainIDValidationError(value, this, 'ChainID is not valid');\n }\n\n return null;\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChainIDToken.prim,\n schema: ChainIDToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChainIDToken.prim]) {\n return semantic[ChainIDToken.prim](val);\n }\n\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: ChainIDToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChainIDToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TicketTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketError extends Error {\n name = 'TicketEncodeError';\n\n constructor() {\n super('Tickets cannot be sent to the blockchain; they are created on-chain');\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketToken extends Token {\n static prim: 'ticket' = 'ticket' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n public Encode(_args: any[]): any {\n throw new EncodeTicketError();\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketToken.prim]) {\n return semantic[TicketToken.prim](args, this.val);\n }\n throw new EncodeTicketError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketToken.prim]) {\n return semantics[TicketToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketTokenSchema {\n return {\n __michelsonType: TicketToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { TicketDeprecatedTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketDeprecatedError extends Error {\n name = 'TicketDeprecatedEncodeError';\n\n constructor() {\n super('Ticket_deprecated cannot be sent to the blockchain; they are created on-chain');\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketDeprecatedToken extends Token {\n static prim: 'ticket_deprecated' = 'ticket_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n public Encode(_args: any[]): any {\n throw new EncodeTicketDeprecatedError();\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketDeprecatedToken.prim]) {\n return semantic[TicketDeprecatedToken.prim](args, this.val);\n }\n throw new EncodeTicketDeprecatedError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketDeprecatedToken.prim]) {\n return semantics[TicketDeprecatedToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketDeprecatedTokenSchema {\n return {\n __michelsonType: TicketDeprecatedToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class NeverTokenError extends TokenValidationError {\n name = 'NeverTokenError';\n constructor(public value: any, public token: NeverToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NeverToken extends Token {\n static prim: 'never' = 'never' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[NeverToken.prim]) {\n return semantic[NeverToken.prim](val);\n }\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public Execute(val: any) {\n throw new NeverTokenError(val, this, 'There is no literal value for the type never.');\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NeverToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NeverToken.prim,\n schema: NeverToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NeverToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingStateTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingStateValidationError extends TokenValidationError {\n name = 'SaplingStateValidationError';\n constructor(public value: any, public token: SaplingStateToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingStateToken extends Token {\n static prim: 'sapling_state' = 'sapling_state' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any) {\n return typeof val === 'object' && Object.keys(val).length === 0;\n }\n\n Execute(val: { int: string }, semantic?: Semantic) {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val, this.val);\n }\n if ('int' in val) {\n return val.int;\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\n\n Encode(args: any[]): any {\n const val = args.pop();\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val);\n }\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingStateTokenSchema {\n return {\n __michelsonType: SaplingStateToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingStateToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name = 'SaplingTransactionValidationError';\n constructor(public value: any, public token: SaplingTransactionToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionToken extends Token {\n static prim: 'sapling_transaction' = 'sapling_transaction' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n Execute(_val: any) {\n throw new SaplingTransactionValidationError(\n _val,\n this,\n 'There is no literal value for the sapling_transaction type.'\n );\n }\n\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionToken.prim]) {\n return semantic[SaplingTransactionToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionTokenSchema {\n return {\n __michelsonType: SaplingTransactionToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionDeprecatedTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionDeprecatedValidationError extends TokenValidationError {\n name = 'SaplingTransactionDeprecatedValidationError';\n constructor(public value: any, public token: SaplingTransactionDeprecatedToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionDeprecatedToken extends Token {\n static prim: 'sapling_transaction_deprecated' = 'sapling_transaction_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n Execute(_val: any) {\n throw new SaplingTransactionDeprecatedValidationError(\n _val,\n this,\n 'There is no literal value for the sapling_transaction_deprecated type.'\n );\n }\n\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionDeprecatedValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionDeprecatedToken.prim]) {\n return semantic[SaplingTransactionDeprecatedToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionDeprecatedToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionDeprecatedTokenSchema {\n return {\n __michelsonType: SaplingTransactionDeprecatedToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381frValidationError extends TokenValidationError {\n name = 'Bls12381frValidationError';\n constructor(public value: any, public token: Bls12381frToken, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381frToken extends Token {\n // An element of the BLS12-381 scalar field Fr\n // see https://tezos.gitlab.io/michelson-reference/#type-bls12_381_fr\n static prim: 'bls12_381_fr' = 'bls12_381_fr' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381frValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381frValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n EncodeObject(val: string | Uint8Array | number, semantic?: SemanticEncoding) {\n if (semantic && semantic[Bls12381frToken.prim]) {\n return semantic[Bls12381frToken.prim](val);\n }\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381frToken.prim,\n schema: Bls12381frToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name = 'Bls12381g1ValidationError';\n constructor(public value: any, public token: Bls12381g1Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g1Token extends Token {\n // A point on the BLS12-381 curve G1\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g1\n static prim: 'bls12_381_g1' = 'bls12_381_g1' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381g1ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g1ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[Bls12381g1Token.prim]) {\n return semantic[Bls12381g1Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g1Token.prim,\n schema: Bls12381g1Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name = 'Bls12381g2ValidationError';\n constructor(public value: any, public token: Bls12381g2Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g2Token extends Token {\n // A point on the BLS12-381 curve G2\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g2\n static prim: 'bls12_381_g2' = 'bls12_381_g2' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381g2ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g2ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[Bls12381g2Token.prim]) {\n return semantic[Bls12381g2Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g2Token.prim,\n schema: Bls12381g2Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestValidationError extends TokenValidationError {\n name = 'ChestValidationError';\n constructor(public value: any, public token: ChestToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestToken extends Token {\n static prim: 'chest' = 'chest' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): ChestValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChestToken.prim]) {\n return semantic[ChestToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestToken.prim,\n schema: ChestToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestKeyValidationError extends TokenValidationError {\n name = 'ChestKeyValidationError';\n constructor(public value: any, public token: ChestKeyToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestKeyToken extends Token {\n static prim: 'chest_key' = 'chest_key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): ChestKeyValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestKeyValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChestKeyToken.prim]) {\n return semantic[ChestKeyToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestKeyToken.prim,\n schema: ChestKeyToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ConstantTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name = 'GlobalConstantDecodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantToken extends Token {\n static prim: 'constant' = 'constant' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(\n val,\n this,\n `Unable to decode a value represented by a global constants. Please provide an expanded script to the Michelson-Encoder or semantics for the decoding. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n }\n\n public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(\n args,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val);\n }\n throw new GlobalConstantEncodingError(\n val,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n generateSchema(): ConstantTokenSchema {\n return {\n __michelsonType: GlobalConstantToken.prim,\n schema: {\n hash: this.val.args[0]['string'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { PairToken } from './pair';\n\nimport { NatToken } from './comparable/nat';\n\nimport { StringToken } from './comparable/string';\n\nimport { BigMapToken } from './bigmap';\n\nimport { AddressToken } from './comparable/address';\n\nimport { MapToken } from './map';\n\nimport { BoolToken } from './comparable/bool';\n\nimport { TxRollupL2AddressToken } from './comparable/tx_rollup_l2_address';\n\nimport { OrToken } from './or';\n\nimport { ContractToken } from './contract';\n\nimport { ListToken } from './list';\nimport { MutezToken } from './comparable/mutez';\nimport { BytesToken } from './comparable/bytes';\nimport { OptionToken } from './option';\nimport { TimestampToken } from './comparable/timestamp';\nimport { IntToken } from './comparable/int';\nimport { UnitToken } from './unit';\nimport { KeyToken } from './key';\nimport { KeyHashToken } from './comparable/key_hash';\nimport { SignatureToken } from './signature';\nimport { LambdaToken } from './lambda';\nimport { OperationToken } from './operation';\nimport { SetToken } from './set';\nimport { ChainIDToken } from './chain-id';\nimport { TicketToken } from './ticket';\nimport { TicketDeprecatedToken } from './ticket-deprecated';\nimport { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\nimport { SaplingTransactionDeprecatedToken } from './sapling-transaction-deprecated';\nimport { Bls12381frToken } from './bls12-381-fr';\nimport { Bls12381g1Token } from './bls12-381-g1';\nimport { Bls12381g2Token } from './bls12-381-g2';\nimport { ChestToken } from './chest';\nimport { ChestKeyToken } from './chest-key';\nimport { GlobalConstantToken } from './constant';\n\nexport const tokens = [\n PairToken,\n NatToken,\n StringToken,\n BigMapToken,\n AddressToken,\n TxRollupL2AddressToken,\n MapToken,\n BoolToken,\n OrToken,\n ContractToken,\n ListToken,\n MutezToken,\n BytesToken,\n OptionToken,\n TimestampToken,\n IntToken,\n UnitToken,\n KeyToken,\n KeyHashToken,\n SignatureToken,\n LambdaToken,\n OperationToken,\n SetToken,\n ChainIDToken,\n TicketToken,\n TicketDeprecatedToken,\n NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\n SaplingTransactionDeprecatedToken,\n Bls12381frToken,\n Bls12381g1Token,\n Bls12381g2Token,\n ChestToken,\n ChestKeyToken,\n GlobalConstantToken,\n];\n","import { tokens } from './tokens';\nimport { Token } from './token';\nimport { PairToken } from './pair';\n\n/**\n * @category Error\n * @description Error that indicates a script having an invalid type or it being unsupported by the Michelson Encoder. Note some protocol changes might affect this, we encourage users to open an issue so we can look into implementing support for said types.\n */\nexport class InvalidTokenError extends Error {\n name = 'Invalid token error';\n constructor(public message: string, public data: any) {\n super(message);\n }\n}\n\nexport function createToken(val: any, idx: number): Token {\n if (Array.isArray(val)) {\n return new PairToken(val, idx, createToken);\n }\n\n const t = tokens.find((x) => x.prim === val.prim);\n if (!t) {\n throw new InvalidTokenError('Malformed data expected a value with a valid prim property', val);\n }\n return new t(val, idx, createToken);\n}\n","/**\n * @category Error\n * @description Error that indicates a failure when encoding (transforming JS parameter into JSON Michelson)the parameter of the view\n */\nexport class ViewEncodingError extends Error {\n name = 'ViewEncodingError';\n\n constructor(public smartContractViewName: string, public originalError: any) {\n super(`Unable to encode the parameter of the view: ${smartContractViewName}.`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid on-chain view found on the script\n */\nexport class InvalidScriptError extends Error {\n name = 'InvalidScriptError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid RPC response being passed or used\n */\nexport class InvalidRpcResponseError extends Error {\n public name = 'InvalidRpcResponseError';\n constructor(public script: any) {\n super(`Invalid RPC response passed as argument(s)`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure that occurred during encoding\n */\nexport class ParameterEncodingError extends Error {\n public name = 'ParameterEncodingError';\n constructor(public message: string, public args: any, public originalError: any) {\n super(`\n ${message}. Error encountered when trying to encode arguments: \\n\n [${args}]\n `);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map schema being passed or used\n */\nexport class InvalidBigMapSchema extends Error {\n public name = 'InvalidBigMapSchema';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map diff being passed or used\n */\nexport class InvalidBigMapDiff extends Error {\n public name = 'InvalidBigMapDiff';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode big maps\n */\nexport class BigMapEncodingError extends Error {\n public name = 'BigMapEncodingError';\n constructor(private obj: string, public details: any) {\n super(`Unable to encode ${obj}. ${details}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode storage\n */\nexport class StorageEncodingError extends Error {\n public name = 'StorageEncodingError';\n constructor(private obj: string, public details: any) {\n super(`Unable to encode ${obj}. ${details}`);\n }\n}\n\n/**\n * @category Error\n * @description General error that indicates a function not being passed a necessary argument\n */\nexport class MissingArgumentError extends Error {\n public name = 'MissingArgumentError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionBase,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { MapToken } from '../tokens/map';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { TicketToken } from '../tokens/ticket';\nimport { TicketDeprecatedToken } from '../tokens/ticket-deprecated';\nimport {\n BigMapKeyType,\n Semantic,\n SemanticEncoding,\n Token,\n TokenValidationError,\n} from '../tokens/token';\nimport {\n InvalidRpcResponseError,\n InvalidBigMapSchema,\n InvalidBigMapDiff,\n BigMapEncodingError,\n StorageEncodingError,\n MissingArgumentError,\n} from './error';\nimport { RpcTransaction } from './model';\nimport { Falsy, TokenSchema } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(\n val: Token['val'] | MichelsonV1Expression,\n prim: string = PairToken.prim\n): Token['val'] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.prim === prim && extended.args && extended.args.length > 2) {\n return {\n ...extended,\n args: [\n extended.args?.[0],\n {\n prim: prim,\n args: extended.args?.slice(1),\n },\n ],\n };\n }\n return extended;\n}\n\nfunction deepEqual(a: MichelsonV1Expression, b: MichelsonV1Expression): boolean {\n const ac = collapse(a);\n const bc = collapse(b);\n return (\n ac.prim === bc.prim &&\n ((ac.args === undefined && bc.args === undefined) ||\n (ac.args !== undefined &&\n bc.args !== undefined &&\n ac.args.length === bc.args.length &&\n ac.args.every((v, i) => deepEqual(v, bc.args?.[i] ?? {})))) &&\n ((ac.annots === undefined && bc.annots === undefined) ||\n (ac.annots !== undefined &&\n bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i])))\n );\n}\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: Schema): boolean {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const storage: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x) => {\n if (!Array.isArray(x)) {\n const checkExtended = x as MichelsonV1ExpressionExtended;\n if (checkExtended.prim) {\n return checkExtended.prim === 'storage';\n } else {\n return false;\n }\n } else {\n // storage passed along as original storage value\n this.fromRPCResponse({ script: { code: x, storage: val.script.storage } });\n }\n }) as MichelsonV1ExpressionExtended);\n\n if (!storage || !Array.isArray(storage.args)) {\n throw new InvalidRpcResponseError(val.script);\n }\n\n return new Schema(storage.args[0]);\n }\n\n private isExpressionExtended(\n val: any\n ): val is Required<Pick<MichelsonV1ExpressionExtended, 'prim' | 'args'>> {\n return 'prim' in val && Array.isArray(val.args);\n }\n\n constructor(readonly val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n\n if (this.root instanceof BigMapToken) {\n this.bigMap = this.root;\n } else if (this.isExpressionExtended(val) && val.prim === 'pair') {\n const exp = val.args[0];\n if (this.isExpressionExtended(exp) && exp.prim === 'big_map') {\n this.bigMap = new BigMapToken(exp, 0, createToken);\n }\n }\n }\n\n private removeTopLevelAnnotation(obj: any) {\n // PairToken and OrToken can have redundant top level annotation in their storage\n if (this.root instanceof PairToken || this.root instanceof OrToken) {\n if (this.root.hasAnnotations() && typeof obj === 'object' && Object.keys(obj).length === 1) {\n return obj[Object.keys(obj)[0]];\n }\n }\n\n return obj;\n }\n\n Execute(val: any, semantics?: Semantic) {\n const storage = this.root.Execute(val, semantics);\n\n return this.removeTopLevelAnnotation(storage);\n }\n\n Typecheck(val: any) {\n if (this.root instanceof BigMapToken && Number.isInteger(Number(val))) {\n return true;\n }\n if (this.root instanceof TicketToken && val.ticketer && val.value && val.amount) {\n return true;\n }\n if (this.root instanceof TicketDeprecatedToken && val.ticketer && val.value && val.amount) {\n return true;\n }\n if (this.root instanceof MapToken && this.root.ValueSchema instanceof BigMapToken) {\n return true;\n }\n try {\n this.root.EncodeObject(val);\n return true;\n } catch (ex) {\n return false;\n }\n }\n\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n if (!Array.isArray(diff)) {\n throw new InvalidBigMapDiff('Big map diff must be an array');\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('No big map schema');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new BigMapEncodingError('big map key', ex);\n }\n }\n\n Encode(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new StorageEncodingError('storage object', ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @description Produce a representation of the storage schema.\n * Note: Provide guidance on how to write the storage object for the origination operation with Taquito.\n */\n generateSchema(): TokenSchema {\n return this.removeTopLevelAnnotation(this.root.generateSchema());\n }\n\n /**\n * @deprecated\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n const bigMap = tx.reduce((prev, current) => {\n return {\n ...prev,\n ...this.ExecuteOnBigMapDiff(current.contents[0].metadata.operation_result.big_map_diff),\n };\n }, {});\n\n return {\n ...this.Execute(state),\n [this.bigMap.annot()]: bigMap,\n };\n }\n\n /**\n * @description Look up in top-level pairs of the storage to find a value matching the specified type\n *\n * @returns The first value found that match the type or `undefined` if no value is found\n *\n * @param storage storage to parse to find the value\n * @param valueType type of value to look for\n *\n */\n FindFirstInTopLevelPair<T extends MichelsonV1Expression>(storage: any, valueType: any) {\n return this.findValue(this.root['val'], storage, valueType) as T | undefined;\n }\n\n // TODO check these type casts\n private findValue(\n schema: MichelsonV1Expression,\n storage: any,\n valueToFind: any\n ): MichelsonV1ExpressionBase | undefined {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || (schema as MichelsonV1ExpressionExtended).prim === 'pair') {\n const sch = collapse(schema);\n const strg = collapse(storage, 'Pair');\n if (sch.args === undefined || strg.args === undefined) {\n throw new MissingArgumentError('Tokens have no arguments'); // unlikely\n }\n if (sch.args[0])\n return (\n // unsafe\n this.findValue(sch.args[0] as MichelsonV1ExpressionExtended, strg.args[0], valueToFind) ||\n this.findValue(sch.args[1] as MichelsonV1ExpressionExtended, strg.args[1], valueToFind)\n );\n }\n }\n /**\n * @description Look up the schema to find any occurrence of a particular token.\n *\n * @returns an array of tokens of the specified kind or an empty array if no token was found\n *\n * @param tokenToFind string representing the prim property of the token to find\n *\n * @example\n * ```\n * Useful to find all global constants in a script, an array of GlobalConstantToken is returned:\n *\n * const schema = new Schema(script);\n * const allGlobalConstantTokens = schema.findToken('constant');\n * ```\n *\n */\n findToken(tokenToFind: string): Array<Token> {\n const tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError, SemanticEncoding } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { Falsy, TokenSchema } from './types';\nimport { InvalidRpcResponseError, ParameterEncodingError } from './error';\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class ParameterSchema {\n private root: Token;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const parameter: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'parameter') as MichelsonV1ExpressionExtended);\n if (!parameter || !Array.isArray(parameter.args)) {\n throw new InvalidRpcResponseError(val.script);\n }\n\n return new ParameterSchema(parameter.args[0]);\n }\n\n get isMultipleEntryPoint() {\n return (\n this.root instanceof OrToken ||\n (this.root instanceof OptionToken && this.root.subToken() instanceof OrToken)\n );\n }\n\n get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\n\n Encode(...args: any[]) {\n try {\n return this.root.Encode(args.reverse());\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new ParameterEncodingError('Unable to encode parameter', args.toString(), ex);\n }\n }\n\n EncodeObject(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new ParameterEncodingError('Unable to encode parameter object', value, ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n /**\n * @description Produce a schema grouping together all the entry points of a contract.\n */\n generateSchema(): TokenSchema {\n return this.root.generateSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { createToken } from '../tokens/createToken';\nimport { Semantic, Token } from '../tokens/token';\nimport { InvalidScriptError, ViewEncodingError } from './error';\n\nexport class ViewSchema {\n readonly viewName: string;\n readonly viewArgsType: MichelsonV1ExpressionExtended;\n readonly viewReturnType: MichelsonV1ExpressionExtended;\n readonly instructions: MichelsonV1ExpressionExtended[];\n private rootArgsType: Token;\n private rootReturnType: Token;\n\n /**\n *\n * @description Create an instance of ViewSchema for each view in a script\n *\n * @param val contract script obtained from the RPC\n * @returns array of ViewSchema or empty array if there is no view in the contract\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const allViewSchema: ViewSchema[] = [];\n\n const views =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.filter((x: any) => x.prim === 'view') as MichelsonV1ExpressionExtended[]);\n\n if (views) {\n views.forEach((view) => {\n if (!view.args || view.args.length !== 4) {\n throw new InvalidScriptError(\n `Invalid on-chain view found in the script: ${JSON.stringify(view)}`\n );\n }\n allViewSchema.push(new ViewSchema(view.args));\n });\n }\n return allViewSchema;\n }\n\n constructor(val: MichelsonV1Expression[]) {\n if (val.length !== 4 || !('string' in val[0])) {\n throw new InvalidScriptError(`Invalid on-chain view: ${JSON.stringify(val)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.viewName = val[0]['string']!;\n this.viewArgsType = val[1] as MichelsonV1ExpressionExtended;\n this.viewReturnType = val[2] as MichelsonV1ExpressionExtended;\n this.instructions = val[3] as MichelsonV1ExpressionExtended[];\n\n this.rootArgsType = createToken(this.viewArgsType, 0);\n this.rootReturnType = createToken(this.viewReturnType, 0);\n }\n\n /**\n *\n * @description Transform the view parameter into Michelson\n *\n * @param args parameter of the view in js format\n * @returns parameter of the view in Michelson\n */\n encodeViewArgs(args: any) {\n try {\n return this.rootArgsType.EncodeObject(args);\n } catch (ex) {\n throw new ViewEncodingError(this.viewName, ex);\n }\n }\n\n /**\n *\n * @description Transform the view result from Michelson to readable data\n *\n * @param val result of the view in JSON Michelson\n * @param semantics optional semantics to override the default decoding behavior\n * @returns result of the view in a readable format\n */\n decodeViewResult(val: any, semantics?: Semantic) {\n return this.rootReturnType.Execute(val, semantics);\n }\n\n /**\n *\n * @description Return the signature of the view parameter\n */\n extractArgsSchema() {\n return this.rootArgsType.ExtractSchema();\n }\n\n /**\n *\n * @description Return the format of the view result\n */\n extractResultSchema() {\n return this.rootReturnType.ExtractSchema();\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"c050a62135022aa2e61ba6ef72a98f9c89f1682c\",\n \"version\": \"16.0.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport * from './schema/view-schema';\nexport * from './schema/error';\nexport * from './schema/types';\nexport { Semantic, SemanticEncoding, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\nexport { Token } from './tokens/token';\n"],"names":["_a","collapse","ticketerType","amountType"],"mappings":";;;;;AAIA;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AAE5C,IAAA,WAAA,CAAmB,OAAe,EAAA;AAChC,QAAA,KAAK,CAAC,CAAA,cAAA,EAAiB,OAAO,CAAA,YAAA,CAAc,CAAC,CAAC;QAD7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,qBAAqB,CAAC;KAGnC;AACF,CAAA;AAED;AACA;AACA,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAI/E,MAAM,SAAS,GAAG,CAChB,KAA4B,KACkE;IAC9F,OAAO,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AAG1C,IAAA,WAAA,CAA4B,KAAU,EAAkB,IAAS,EAAE,SAA0B,EAAA;AAC3F,QAAA,KAAK,CAAC,CAAA,EAAG,SAAS,CAAA,6CAAA,CAA+C,CAAC,CAAC;QADzC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAkB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;QAFjE,IAAI,CAAA,IAAA,GAAG,mBAAmB,CAAC;KAI1B;AACF,CAAA;AAED;;AAEG;MACU,YAAY,CAAA;AAgBvB;;;;AAIG;AACH,IAAA,WAAA,CAAY,OAA+B,EAAA;AApBnC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAa,CAAC;AAChC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,GAAG,EAAa,CAAC;QAE/B,IAAwB,CAAAA,IAAA,CAAA,GAAG,IAAI,CAAC;AAkBrC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvB,SAAA;KACF;;;;IAhBD,OAAO,cAAc,CAAC,GAAQ,EAAA;QAC5B,OAAO,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC;KACpD;AAgBD,IAAA,OAAO,CAAC,OAA8B,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvB,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;KAC9B;AAED,IAAA,OAAO,WAAW,CAAC,GAA2B,EAAE,OAA+B,EAAA;AAC7E,QAAA,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,YAAY,CAAC,GAAM,EAAA;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACtC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,cAAc,CAAC,KAAQ,EAAA;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,oBAAoB,CAAC,KAAQ,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC/D,SAAA;KACF;AAEO,IAAA,kBAAkB,CAAC,GAAM,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACzD,SAAA;KACF;AAEO,IAAA,0BAA0B,CAAC,GAAM,EAAA;AACvC,QAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;KACvB;AAED,IAAA,CAAC,IAAI,GAAA;QACH,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClC,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;KACF;AAED,IAAA,CAAC,MAAM,GAAA;QACL,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AACtC,YAAA,MAAM,KAAK,CAAC;AACb,SAAA;KACF;AAED,IAAA,CAAC,OAAO,GAAA;QACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;;AAEtC,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,GAAG,CAAC,GAAM,EAAA;AACR,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAClC;AAED;;;;;;;;;;;;;AAaG;IACH,GAAG,CAAC,GAAM,EAAE,KAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,MAAM,CAAC,GAAM,EAAA;AACX,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,GAAG,CAAC,GAAM,EAAA;AACR,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC7D;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;KACvB;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;KACzB;AAED,IAAA,OAAO,CAAC,EAAuD,EAAA;QAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AACzC,YAAA,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACtB,SAAA;KACF;AACF,CAAA;OA1JS,sBAAsB;;AC3ChC;;;AAGG;AACG,MAAgB,oBAAqB,SAAQ,KAAK,CAAA;AAGtD,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAY,EAAE,WAAmB,EAAA;AACrE,QAAA,KAAK,EAAE,CAAC;QADS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAFlD,IAAI,CAAA,IAAA,GAAG,iBAAiB,CAAC;QAIvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACjC,QAAA,MAAM,SAAS,GAAG,KAAK,GAAG,CAAI,CAAA,EAAA,KAAK,CAAI,EAAA,CAAA,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,SAAS,CAAG,EAAA,WAAW,EAAE,CAAC;KAC7C;AACF,CAAA;MAYqB,KAAK,CAAA;AACzB,IAAA,WAAA,CACY,GAAkC,EAClC,GAAW,EACX,GAAiB,EAAA;QAFjB,IAAG,CAAA,GAAA,GAAH,GAAG,CAA+B;QAClC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;AA2DtB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;KA1D1B;IAEM,sBAAsB,GAAA;AAC9B,QAAA,MAAM,yBAAyB,GAAG,CAAC,GAA0B,KAA2B;AACtF,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACtB,MAAM,KAAK,GAAG,GAA8B,CAAC;AAC7C,oBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,iBAAA;gBACD,MAAM,QAAQ,GAAG,GAAoC,CAAC;gBACtD,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACjB,OAAO;wBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;AACnB,wBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC;qBAC7D,CAAC;AACH,iBAAA;AAAM,qBAAA;oBACL,OAAO;wBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;qBACpB,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAG,CAC9B,GAAkC,KACe;YACjD,IAAI,GAAG,CAAC,IAAI,EAAE;gBACZ,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI;AACd,oBAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC;iBACxD,CAAC;AACH,aAAA;AAAM,iBAAA;gBACL,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAC;AACH,aAAA;AACH,SAAC,CAAC;AAEF,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1C;IAED,KAAK,GAAA;QACH,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;cACxD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,cAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EACpB,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;KACtC;IAED,cAAc,GAAA;AACZ,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;KACjE;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;IAkBM,gBAAgB,GAAA;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KACjC;AAGF,CAAA;AAIK,MAAgB,eAAgB,SAAQ,KAAK,CAAA;IAOjD,OAAO,CAAC,EAAU,EAAE,EAAU,EAAA;QAC5B,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;AACF;;ACvHD;;;AAGG;AACG,MAAO,qBAAsB,SAAQ,oBAAoB,CAAA;AAE7D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAkB,EAAE,OAAe,EAAA;AACvE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAa;QADxD,IAAI,CAAA,IAAA,GAAG,uBAAuB,CAAC;KAG9B;AACF,CAAA;AAEK,MAAO,WAAY,SAAQ,KAAK,CAAA;AAEpC,IAAA,WAAA,CACY,GAAkD,EAClD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA+C;QAClD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9C;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAA+B,CAAC;KAC5E;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;AACL,YAAA,OAAO,EAAE;AACP,gBAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AACnC,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACxC,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,IAAI;AACjC,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AACpC,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACzC,aAAA;SACF,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;KAC/E;AAEO,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QACnC,IAAI,GAAG,YAAY,YAAY;AAAE,YAAA,OAAO,GAAG,CAAC;AAC5C,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,OAAO,IAAI,YAAY,EAAE,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,MAAM,GAAG,GAA2B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,GAAG,CAAC,CAAC,GAAG,KAAI;YACX,OAAO;AACL,gBAAA,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,GAAG,GAA2B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,SAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,GAAG,CAAC,CAAC,GAAG,KAAI;YACX,OAAO;AACL,gBAAA,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;IAEM,OAAO,CAAC,GAA4B,EAAE,QAAmB,EAAA;QAC9D,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;;YAGtB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvC,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACtB,gBAAA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE;;YAEvB,OAAO,GAAG,CAAC,GAAG,CAAC;AAChB,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EACH,IAAI,EACJ,CAAA,+FAAA,EAAkG,IAAI,CAAC,SAAS,CAC9G,GAAG,CACJ,CAAA,CAAE,CACJ,CAAC;AACH,SAAA;KACF;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1D,QAAA,OAAO,MAAM,CAAC;KACf;;AAtIM,WAAI,CAAA,IAAA,GAAc,SAAkB;;ACpB7C;;;AAGG;AACG,MAAO,oBAAqB,SAAQ,KAAK,CAAA;AAE7C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAGpC;AACF,CAAA;AAEK,MAAO,OAAQ,SAAQ,eAAe,CAAA;AAG1C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEpC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAE3E,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,YAAY,OAAO,CAAC,EAAE;YAClF,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACzD,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,YAAY,OAAO,CAAC,EAAE;YAC3F,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC3D,SAAA;AAAM,aAAA;YACL,IAAI,SAAS,YAAY,OAAO,EAAE;gBAChC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,gBAAA,IAAI,GAAG,EAAE;oBACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACtC,iBAAA;AACF,aAAA;YAED,IAAI,UAAU,YAAY,OAAO,EAAE;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,gBAAA,IAAI,GAAG,EAAE;oBACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAEM,gBAAgB,GAAA;AACrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,SAAS,YAAY,OAAO,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,gBAAgB,EAAE,EAAE;AAC9C,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1C,aAAA;AACF,SAAA;QAED,IAAI,UAAU,YAAY,OAAO,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,gBAAgB,EAAE,EAAE;AAC/C,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3C,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAE3E,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,YAAY,OAAO,CAAC,EAAE;YAClF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;AAChF,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,YAAY,OAAO,CAAC,EAAE;YAC3F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;AAClF,SAAA;AAAM,aAAA;YACL,IAAI,SAAS,YAAY,OAAO,EAAE;gBAChC,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACnD,gBAAA,IAAI,GAAG,EAAE;oBACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACtC,iBAAA;AACF,aAAA;YAED,IAAI,UAAU,YAAY,OAAO,EAAE;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpD,gBAAA,IAAI,GAAG,EAAE;oBACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAE3E,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;YACxB,IAAI,UAAU,YAAY,OAAO,EAAE;AACjC,gBAAA,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnD,aAAA;AAAM,iBAAA;gBACL,OAAO;AACL,oBAAA,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;iBACjE,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,gBAAA,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAClD,aAAA;YACD,OAAO;AACL,gBAAA,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;aAC/D,CAAC;AACH,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,oBAAoB,CAAC,CAAA,0CAAA,EAA6C,GAAG,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;AACzF,SAAA;KACF;AAEO,IAAA,SAAS,CACf,YAAmC,EACnC,aAAoC,EACpC,MAAsC,EAAA;AAEtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,QAAA,IAAI,SAAS,CAAC;QACd,IAAI,SAAS,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;AAC/D,YAAA,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AACpC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;AAC9D,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAC3E,QAAA,IAAI,UAAU,CAAC;QACf,IAAI,UAAU,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;AACjE,YAAA,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;AAClE,SAAA;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAE1C,QAAA,OAAO,GAAG,CAAC;KACZ;AAED;;;AAGG;IACI,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,CACnB,CAAC,SAAS,KAAK,SAAS,CAAC,aAAa,EAAE,EACxC,CAAC,UAAU,KAAK,UAAU,CAAC,aAAa,EAAE,EAC1C,CAAC,SAAS,EAAE,UAAU,MACjB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,GACT,UAAU,CAAA,CACb,CACH,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,OAAO,CAAC,IAAI;YAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CACpB,CAAC,SAAS,KAAI;gBACZ,IAAI,SAAS,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;AAC/D,oBAAA,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AAC1C,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC;AACnC,iBAAA;AACH,aAAC,EACD,CAAC,UAAU,KAAI;gBACb,IAAI,UAAU,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;AACjE,oBAAA,OAAO,UAAU,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,UAAU,CAAC,cAAc,EAAE,CAAC;AACpC,iBAAA;AACH,aAAC,EACD,CAAC,SAAS,EAAE,UAAU,MACjB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,CACT,EAAA,UAAU,EACb,CACH;SACF,CAAC;KACH;AAEO,IAAA,SAAS,CAAC,KAAU,EAAA;AAC1B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAE3E,IACE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC;AAC3C,YAAA,EAAE,SAAS,YAAY,OAAO,CAAC;YAC/B,SAAS,YAAY,eAAe,EACpC;AACA,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;aAAM,IACL,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC;AAC5C,YAAA,EAAE,UAAU,YAAY,OAAO,CAAC;YAChC,UAAU,YAAY,eAAe,EACrC;AACA,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AAAM,aAAA;YACL,IAAI,SAAS,YAAY,OAAO,EAAE;gBAChC,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AACF,aAAA;YAED,IAAI,UAAU,YAAY,OAAO,EAAE;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxC,gBAAA,IAAI,GAAG,EAAE;AACP,oBAAA,OAAO,GAAG,CAAC;AACZ,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAED,OAAO,CAAC,IAAS,EAAE,IAAS,EAAA;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,KAAK,YAAY,eAAe,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,YAAA,OAAO,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;KACF;AAEM,IAAA,KAAK,CAAC,GAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAA;QACzB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE;SACpC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;AAChC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,SAAS,CACZ,CAAC,SAAS,KAAK,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,EACjE,CAAC,UAAU,KAAK,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,EACnE,CAAC,SAAS,EAAE,UAAU,MACjB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,GACT,UAAU,CAAA,CACb,CACH,CAAC;AACF,QAAA,OAAO,MAAM,CAAC;KACf;;AA5RM,OAAI,CAAA,IAAA,GAAS,IAAa;;ACVnC;;;AAGG;AACG,MAAO,4BAA6B,SAAQ,KAAK,CAAA;AAErD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,8BAA8B,CAAC;KAG5C;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,oBAAqB,SAAQ,KAAK,CAAA;IAE7C,WAAmB,CAAA,IAAY,EAAS,IAAY,EAAA;AAClD,QAAA,KAAK,CAAC,CAAU,OAAA,EAAA,IAAI,QAAQ,IAAI,CAAA,mBAAA,CAAqB,CAAC,CAAC;QADtC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAS,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAD7C,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAGpC;AACF,CAAA;AAED;AACA,SAASC,UAAQ,CAAC,GAAyB,EAAE,IAAe,GAAA,SAAS,CAAC,IAAI,EAAA;AACxE,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAA,OAAOA,UAAQ,CACb;AACE,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,IAAI,EAAE,GAAG;SACV,EACD,IAAI,CACL,CAAC;AACH,KAAA;AACD,IAAA,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;AAC1B,QAAA,MAAM,IAAI,4BAA4B,CACpC,4FAA4F,CAC7F,CAAC;AACH,KAAA;AACD,IAAA,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACX,YAAA;AACE,gBAAA,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,aAAA;SACF,CAAC;AACH,KAAA;AACD,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AACK,MAAO,SAAU,SAAQ,eAAe,CAAA;AAG5C,IAAA,WAAA,CAAY,GAA0B,EAAE,GAAW,EAAE,GAAiB,EAAA;AACpE,QAAA,KAAK,CACH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAChB,cAAE;gBACE,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,gBAAA,IAAI,EAAE,GAAG;AACV,aAAA;cACA,GAAqC,CAAC,IAAI;AAC7C,kBAAG,GAAqC;AACxC,kBAAG;oBACC,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,oBAAA,IAAI,EAAE,GAAG;AACwB,iBAAA,EACvC,GAAG,EACH,GAAG,CACJ,CAAC;KACH;IAEO,IAAI,GAAA;;AAEV,QAAA,OAAOA,UAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3B;IAEO,MAAM,GAAA;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAChD,IAAI,GAAG,YAAY,SAAS,EAAE;AAC5B,gBAAA,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAChD,aAAA;AAAM,iBAAA;AACL,gBAAA,GAAG,EAAE,CAAC;AACP,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAmB,CAAC;KACtB;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,OAAO;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC/C,CAAC;KACH;IAEM,gBAAgB,GAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,YAAY,OAAO,EAAE;AAChC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,QAAA,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,gBAAgB,EAAE,EAAE;AAClD,YAAA,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAA;QACzB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE;SACpC,CAAC;KACH;AAEM,IAAA,KAAK,CAAC,GAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE9C,QAAA,IAAI,SAAS,CAAC;QACd,IAAI,SAAS,YAAY,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;YACjE,SAAS,GAAG,IAAI,CAAC;AAClB,SAAA;AAAM,aAAA;YACL,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,IAAI,UAAU,CAAC;QACf,IAAI,UAAU,YAAY,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;YACnE,UAAU,GAAG,IAAI,CAAC;AACnB,SAAA;AAAM,aAAA;YACL,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AACvC,SAAA;QAED,OAAO;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC3C,gBAAA,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC9C,aAAA;SACF,CAAC;KACH;IAEO,SAAS,CAAC,YAAmC,EAAE,aAAoC,EAAA;AACzF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAEzB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,QAAA,IAAI,SAAS,CAAC;QACd,IAAI,SAAS,YAAY,SAAS,EAAE;AAClC,YAAA,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1D,SAAA;QACD,IAAI,SAAS,YAAY,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;AACjE,YAAA,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;AAC9D,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAClE,QAAA,IAAI,UAAU,CAAC;QACf,IAAI,UAAU,YAAY,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;AACnE,YAAA,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;AAClE,SAAA;AAED,QAAA,MAAM,GAAG,GACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,CACT,EAAA,UAAU,CACd,CAAC;AAEF,QAAA,OAAO,GAAG,CAAC;KACZ;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;QAC3C,MAAM,IAAI,GAAGA,UAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,SAAS,CACnB,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EACpD,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CACvD,CAAC;KACH;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,IAAI,CAAC,SAAS,CACnB,CAAC,SAAS,KAAK,SAAS,CAAC,aAAa,EAAE,EACxC,CAAC,UAAU,KAAK,UAAU,CAAC,aAAa,EAAE,CAC3C,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,SAAS,CAAC,IAAI;YAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,CACpB,CAAC,SAAS,KAAI;gBACZ,IAAI,SAAS,YAAY,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;AACjE,oBAAA,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AAC1C,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC;AACnC,iBAAA;AACH,aAAC,EACD,CAAC,UAAU,KAAI;gBACb,IAAI,UAAU,YAAY,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE;AACnE,oBAAA,OAAO,UAAU,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;AAC3C,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,UAAU,CAAC,cAAc,EAAE,CAAC;AACpC,iBAAA;AACH,aAAC,CACF;SACF,CAAC;KACH;IAEM,OAAO,CAAC,IAAS,EAAE,IAAS,EAAA;QACjC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE9C,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,IAAS,KAAI;YAC3C,IAAI,KAAK,YAAY,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE;AACzD,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,SAAS,YAAY,eAAe,IAAI,UAAU,YAAY,eAAe,EAAE;YACjF,MAAM,MAAM,GAAW,SAAS,CAAC,OAAO,CACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,EACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAC1B,CAAC;YAEF,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,gBAAA,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACnF,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AAED,QAAA,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5C;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,MAAM,CAAC;KACf;;AAhNM,SAAI,CAAA,IAAA,GAAW,MAAe;;AC7CjC,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAe,EAAE,OAAe,EAAA;AACpE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;QADrD,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAEK,MAAO,QAAS,SAAQ,eAAe,CAAA;AAG3C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KAC9C;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,CAA0B,uBAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE;YACjC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,CAA6B,0BAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC9E,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KAC9C;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,IAAI;YAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC;KACH;AAEM,IAAA,WAAW,CAAC,GAAoB,EAAA;QACrC,OAAO;YACL,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC9B,CAAC;KACH;IAEM,KAAK,CAAC,EAAE,GAAG,EAAO,EAAA;AACvB,QAAA,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC3B;IAED,OAAO,CAAC,IAAqB,EAAE,IAAqB,EAAA;AAClD,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA1FM,QAAI,CAAA,IAAA,GAAU,KAAc;;ACf/B,MAAO,WAAY,SAAQ,eAAe,CAAA;AAG9C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjC;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,WAAW,CAAC,IAAI,CAAC;KACzB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,IAAI;YACjC,MAAM,EAAE,WAAW,CAAC,IAAI;SACzB,CAAC;KACH;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,KAAK,CAAC,EAAE,MAAM,EAAO,EAAA;AAC1B,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;QAC5B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;SACjC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAzDM,WAAI,CAAA,IAAA,GAAa,QAAiB;;ACMrC,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;AAE9D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAmB,EAAE,OAAe,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QADzD,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAG/B;AACF,CAAA;AAEK,MAAO,YAAa,SAAQ,eAAe,CAAA;AAG/C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACvB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACrD,OAAO,IAAI,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAyB,sBAAA,EAAA,KAAK,CAAE,CAAA,CAAC,CAAC;AAClF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAEM,IAAA,OAAO,CAAC,GAAsC,EAAA;QACnD,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,sBAAsB,CAC9B,GAAG,EACH,IAAI,EACJ,CAA4C,yCAAA,EAAA,GAAG,CAAE,CAAA,CAClD,CAAC;AACH,SAAA;AAED,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAChC;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC;KAC1B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,YAAY,CAAC,IAAI;YAClC,MAAM,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAC;KACH;AAEM,IAAA,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAO,EAAA;AACjC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;QACD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,sBAAsB,CAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,IAAI,EACJ,CAAA,wCAAA,EAA2C,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA,CAAE,CAC/D,CAAC;AACH,SAAA;AAED,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,CAAC,QAAgB,EAAE,QAAgB,EAAA;AACxC,QAAA,MAAM,UAAU,GAAG,CAAC,OAAe,KAAI;AACrC,YAAA,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,SAAC,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAEvC,QAAA,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE;YAC3B,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;AAAM,aAAA,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC1C;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAlHM,YAAI,CAAA,IAAA,GAAc,SAAkB;;ACPvC,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAe,EAAE,OAAe,EAAA;AACpE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;QADrD,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAEK,MAAO,QAAS,SAAQ,KAAK,CAAA;AAGjC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9C;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAQ,CAAC;KACrD;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;KAC5E;IAEM,OAAO,CAAC,GAAU,EAAE,SAAoB,EAAA;QAC7C,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvC,QAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACtB,YAAA,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACrC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CACrD,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,oBAAoB,CAAC,GAAQ,EAAA;QACnC,IAAI,GAAG,YAAY,YAAY;AAAE,YAAA,OAAO,GAAG,CAAC;AAC5C,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,OAAO,IAAI,YAAY,EAAE,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,MAAM,GAAG,GAA2B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,GAAG,CAAC,CAAC,GAAG,KAAI;YACX,OAAO;AACL,gBAAA,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,GAAG,GAA2B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,GAAG,CAAC,CAAC,GAAG,KAAI;YACX,OAAO;AACL,gBAAA,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACtF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE;AACH,gBAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AACnC,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACxC,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,IAAI;AAC9B,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AACpC,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACzC,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1D,QAAA,OAAO,MAAM,CAAC;KACf;;AAxHM,QAAI,CAAA,IAAA,GAAU,KAAc;;AChB/B,MAAO,SAAU,SAAQ,eAAe,CAAA;AAG5C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;KACjE;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;KACzC;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;KACzC;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,SAAS,CAAC,IAAI,CAAC;KACvB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,SAAS,CAAC,IAAI;YAC/B,MAAM,EAAE,SAAS,CAAC,IAAI;SACvB,CAAC;KACH;AAED,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAQ;AAClC,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;SAC/B,CAAC;KACH;AAED,IAAA,KAAK,CAAC,GAAW,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED,OAAO,CAAC,IAAS,EAAE,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACtC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAAM,aAAA,IAAI,IAAI,EAAE;AACf,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAAM,aAAA;YACL,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;KACF;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAnEM,SAAI,CAAA,IAAA,GAAW,MAAe;;ACWjC,MAAO,gCAAiC,SAAQ,oBAAoB,CAAA;AAExE,IAAA,WAAA,CAAmB,KAAc,EAAS,KAA6B,EAAE,OAAe,EAAA;AACtF,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAwB;QADvE,IAAI,CAAA,IAAA,GAAG,kCAAkC,CAAC;KAGzC;AACF,CAAA;AAEK,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AAGzD,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACvB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACrD,MAAM,IAAI,gCAAgC,CACxC,KAAK,EACL,IAAI,EACJ,CAAsC,mCAAA,EAAA,KAAK,CAAE,CAAA,CAC9C,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,IAAc,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,gCAAgC,CACxC,GAAG,EACH,IAAI,EACJ,CAAmC,gCAAA,EAAA,GAAG,CAAG,CAAA,CAAA,CAC1C,CAAC;AACH,SAAA;;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;;AAEvD,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAElB,IAAI,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;YACrD,OAAO,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAEM,IAAA,OAAO,CAAC,GAAwC,EAAA;QACrD,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,IAAI,gCAAgC,CACxC,GAAG,EACH,IAAI,EACJ,CAAA,6DAAA,EAAgE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAE,CACtF,CAAC;AACH,SAAA;AACD,QAAA,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACnC;IACM,aAAa,GAAA;QAClB,OAAO,sBAAsB,CAAC,IAAI,CAAC;KACpC;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,sBAAsB,CAAC,IAAI;YAC5C,MAAM,EAAE,sBAAsB,CAAC,IAAI;SACpC,CAAC;KACH;AAEM,IAAA,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAuC,EAAA;AACjE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;QACD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,gCAAgC,CACxC,KAAK,EACL,IAAI,EACJ,CAAyE,sEAAA,EAAA,KAAK,CAAE,CAAA,CACjF,CAAC;AACH,SAAA;AACD,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,sBAAsB,CAAC,IAAI,KAAK,WAAW,EAAE;AAC/C,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAjGM,sBAAI,CAAA,IAAA,GAA2B,sBAA+B;;AClBjE,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AAE/D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAoB,EAAE,OAAe,EAAA;AACzE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAe;QAD1D,IAAI,CAAA,IAAA,GAAG,yBAAyB,CAAC;KAGhC;AACF,CAAA;AAEK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAGtC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;;QAExB,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACrD,OAAO,IAAI,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;AAClF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,OAAO,CAAC,GAAsC,EAAA;QACnD,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAChC;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACD,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC;KAC3B;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,eAAe,EAAE,aAAa,CAAC,IAAI;AACnC,YAAA,MAAM,EAAE;AACN,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,cAAc,EAAE,GAAI,EAAkB;AACjF,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE;AACtC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAzEM,aAAI,CAAA,IAAA,GAAe,UAAmB;;ACVzC,MAAO,mBAAoB,SAAQ,oBAAoB,CAAA;AAE3D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAgB,EAAE,OAAe,EAAA;AACrE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAW;QADtD,IAAI,CAAA,IAAA,GAAG,qBAAqB,CAAC;KAG5B;AACF,CAAA;AAEK,MAAO,SAAU,SAAQ,KAAK,CAAA;AAGlC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;KACvE;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;YAC5C,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SAChD,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;AAC5C,YAAA,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SACtD,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;AACxD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,SAAA;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;YAC7C,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SAChD,EAAE,EAAE,CAAC,CAAC;KACR;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;YACL,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;SACnD,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,SAAS,CAAC,IAAI;AAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;SAC1C,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtF,QAAA,OAAO,MAAM,CAAC;KACf;;AAzFM,SAAI,CAAA,IAAA,GAAW,MAAe;;ACDjC,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;AAE5D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAiB,EAAE,OAAe,EAAA;AACtE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QADvD,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAG7B;AACF,CAAA;AAEK,MAAO,UAAW,SAAQ,eAAe,CAAA;AAG7C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,IAAI;YAChC,MAAM,EAAE,UAAU,CAAC,IAAI;SACxB,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,CAA0B,uBAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC7E,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KACxC;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KACxC;AAEM,IAAA,WAAW,CAAC,GAAoB,EAAA;QACrC,OAAO;YACL,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;SAChC,CAAC;KACH;IAEM,KAAK,CAAC,EAAE,GAAG,EAAO,EAAA;AACvB,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,CAAC,MAAuB,EAAE,MAAuB,EAAA;AACtD,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAxFM,UAAI,CAAA,IAAA,GAAY,OAAgB;;ACRnC,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;AAE5D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAiB,EAAE,OAAe,EAAA;AACtE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QADvD,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAG7B;AACF,CAAA;AAEK,MAAO,UAAW,SAAQ,eAAe,CAAA;AAG7C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;QAC5B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AACnB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;SAChC,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACjF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACrE,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;IAEM,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AACvE,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;AAE7C,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;QACrB,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,IAAI;YAChC,MAAM,EAAE,UAAU,CAAC,IAAI;SACxB,CAAC;KACH;AAEM,IAAA,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAO,EAAA;AACjC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA5FM,UAAI,CAAA,IAAA,GAAY,OAAgB;;ACfnC,MAAO,WAAY,SAAQ,eAAe,CAAA;AAG9C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;IAEM,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9C;IAED,KAAK,GAAA;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,cAAE,KAAK,CAAC,KAAK,EAAE;cACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;KAC1D;AAEM,IAAA,MAAM,CAAC,IAAS,EAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,SAAA;AAAM,aAAA,IACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;aACnB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAC3E;YACA,KAAK,CAAC,GAAG,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,SAAA;AAED,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;KAC7D;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,SAAA;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;KAC9E;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;AAC3C,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KACtD;AAED;;;AAGG;IACI,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;KACtC;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,IAAI;AACjC,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE;SACvC,CAAC;KACH;IAEM,gBAAgB,GAAA;AACrB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,EAAS,CAAC;KAC7B;IAED,OAAO,CAAC,IAAS,EAAE,IAAS,EAAA;QAC1B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;aAAM,IAAI,CAAC,IAAI,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC3C;AAEM,IAAA,KAAK,CAAC,GAAQ,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAA;QACzB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE;SACpC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,QAAA,OAAO,MAAM,CAAC;KACf;;AA1GM,WAAI,CAAA,IAAA,GAAa,QAAiB;;ACDrC,MAAO,cAAe,SAAQ,eAAe,CAAA;AAGjD,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAsC,EAAA;AACnD,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,SAAA;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE;YACrB,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3C,SAAA;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE;AAClB,YAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACvD,SAAA;KACF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxB,SAAA;KACF;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7C,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,SAAA;AAED,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxB,SAAA;KACF;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,cAAc,CAAC,IAAI;YACpC,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B,CAAC;KACH;IAEM,KAAK,CAAC,EAAE,MAAM,EAAO,EAAA;AAC1B,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;QAC5B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;SACpC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAxEM,cAAI,CAAA,IAAA,GAAgB,WAAoB;;ACM3C,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAe,EAAE,OAAe,EAAA;AACpE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;QADrD,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAEK,MAAO,QAAS,SAAQ,eAAe,CAAA;AAG3C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAA8B,EAAA;AAC3C,QAAA,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,IAAI;YAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC;KACH;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,CAA0B,uBAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KAC9C;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;KAC9C;AAEM,IAAA,WAAW,CAAC,GAAoB,EAAA;QACrC,OAAO;YACL,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC9B,CAAC;KACH;IAEM,KAAK,CAAC,EAAE,GAAG,EAAO,EAAA;AACvB,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,CAAC,IAAqB,EAAE,IAAqB,EAAA;AAClD,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,EAAE,KAAK,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAxFM,QAAI,CAAA,IAAA,GAAU,KAAc;;ACd/B,MAAO,SAAU,SAAQ,eAAe,CAAA;AAG5C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACzB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACzB;AAEM,IAAA,OAAO,CAAC,IAAsB,EAAA;AACnC,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,SAAS,CAAC,IAAI,CAAC;KACvB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,SAAS,CAAC,IAAI;YAC/B,MAAM,EAAE,SAAS,CAAC,IAAI;SACvB,CAAC;KACH;IAED,OAAO,CAAC,KAAU,EAAE,KAAU,EAAA;AAC5B,QAAA,OAAO,CAAC,CAAC;KACV;AAED,IAAA,KAAK,CAAC,IAAS,EAAA;AACb,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,WAAW,CAAC,IAAS,EAAA;QACnB,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AACrB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;SAC/B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA7DM,SAAI,CAAA,IAAA,GAAW,MAAe;;ACYvC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAE1B,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAe,EAAE,OAAe,EAAA;AACpE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;QADrD,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAEK,MAAO,QAAS,SAAQ,eAAe,CAAA;AAG3C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAsC,EAAA;QACnD,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC7B;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACvD,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAChE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,IAAI;YAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC;KACH;AAED,IAAA,KAAK,CAAC,GAAQ,EAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC9B,CAAC;KACH;IAED,OAAO,CAAC,IAAY,EAAE,IAAY,EAAA;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE;YAC5D,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;aAAM,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE;AACnE,YAAA,OAAO,UAAU,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,SAAA;AAAM,aAAA,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE;AACrC,YAAA,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE;AAC9B,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7C,SAAA;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAClC;AAEO,IAAA,SAAS,CAAC,GAAW,EAAA;QAC3B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;KAChD;AAEO,IAAA,+BAA+B,CAAC,IAAY,EAAA;AAClD,QAAA,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACvD;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA9GM,QAAI,CAAA,IAAA,GAAU,KAAc;;ACjB/B,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;AAE9D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAmB,EAAE,OAAe,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QADzD,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAG/B;AACF,CAAA;AAEK,MAAO,YAAa,SAAQ,eAAe,CAAA;AAG/C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAsC,EAAA;QACnD,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACjC;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACrD,OAAO,IAAI,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAyB,sBAAA,EAAA,KAAK,CAAE,CAAA,CAAC,CAAC;AAClF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC;KAC1B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,YAAY,CAAC,IAAI;YAClC,MAAM,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAC;KACH;AAEM,IAAA,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAO,EAAA;AACjC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AAED,QAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;QAC5B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;SAClC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AArFM,YAAI,CAAA,IAAA,GAAe,UAAmB;;ACRzC,MAAO,wBAAyB,SAAQ,oBAAoB,CAAA;AAEhE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAqB,EAAE,OAAe,EAAA;AAC1E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAD3D,IAAI,CAAA,IAAA,GAAG,0BAA0B,CAAC;KAGjC;AACF,CAAA;AAEK,MAAO,cAAe,SAAQ,eAAe,CAAA;AAGjD,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAA8B,EAAA;QAC3C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;;QAED,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACvD,OAAO,IAAI,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;AAC5E,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7C,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,cAAc,CAAC,IAAI;YACpC,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B,CAAC;KACH;AAED,IAAA,KAAK,CAAC,GAAQ,EAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;SACpC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAjFM,cAAI,CAAA,IAAA,GAAgB,WAAoB;;ACf3C,MAAO,WAAY,SAAQ,KAAK,CAAA;AAGpC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KACzD;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;QACrB,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC;AACnB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;KACF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,GAAG,CAAC;KACZ;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;AACL,YAAA,CAAC,WAAW,CAAC,IAAI,GAAG;AAClB,gBAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAC5C,gBAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;AAC3C,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,IAAI;AACjC,YAAA,MAAM,EAAE;AACN,gBAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AAC7C,gBAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AAC5C,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtF,QAAA,OAAO,MAAM,CAAC;KACf;;AApEM,WAAI,CAAA,IAAA,GAAa,QAAiB;;ACDrC,MAAO,cAAe,SAAQ,KAAK,CAAA;AAGvC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;QACrB,OAAO,GAAG,CAAC,MAAM,CAAC;KACnB;IAEM,MAAM,CAAC,GAAG,IAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7C,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,SAAA;AACD,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,cAAc,CAAC,IAAI,CAAC;KAC5B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,cAAc,CAAC,IAAI;YACpC,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA9CM,cAAI,CAAA,IAAA,GAAgB,WAAoB;;ACM3C,MAAO,kBAAmB,SAAQ,oBAAoB,CAAA;AAE1D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAe,EAAE,OAAe,EAAA;AACpE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;QADrD,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAEK,MAAO,QAAS,SAAQ,KAAK,CAAA;AAGjC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAQ,CAAC;KACrD;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;KACtE;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,GAAG;AACP,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;AAClC,YAAA,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SACxD,EAAE,EAAE,CAAC,CAAC;KACV;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;QAC3C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;AAC5C,YAAA,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SAC9D,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;AAED,QAAA,OAAO,IAAI;AACR,aAAA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,aAAA,MAAM,CAAC,CAAC,IAAS,EAAE,OAAY,KAAI;AAClC,YAAA,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SACxD,EAAE,EAAE,CAAC,CAAC;KACV;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,IAAI;AAC9B,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;SACxC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACxD,QAAA,OAAO,MAAM,CAAC;KACf;;AAjFM,QAAI,CAAA,IAAA,GAAU,KAAc;;ACR/B,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;AAE9D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAmB,EAAE,OAAe,EAAA;AACxE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QADzD,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAG/B;AACF,CAAA;AAEK,MAAO,YAAa,SAAQ,eAAe,CAAA;AAG/C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;QACxB,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE;YACnD,OAAO,IAAI,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACxE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,OAAO,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjC;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC;KAC1B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,YAAY,CAAC,IAAI;YAClC,MAAM,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAC;KACH;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;KACxB;IAEM,KAAK,CAAC,EAAE,MAAM,EAAO,EAAA;AAC1B,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;QAC5B,OAAO;AACL,YAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACpB,YAAA,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;SAClC,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA7EM,YAAI,CAAA,IAAA,GAAe,UAAmB;;ACb/C;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AAG1C,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAH/E,IAAI,CAAA,IAAA,GAAG,mBAAmB,CAAC;KAI1B;AACF,CAAA;AAED,MAAMC,cAAY,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1C,MAAMC,YAAU,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAE7B,MAAO,WAAY,SAAQ,KAAK,CAAA;AAGpC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;AAEM,IAAA,MAAM,CAAC,KAAY,EAAA;QACxB,MAAM,IAAI,iBAAiB,EAAE,CAAC;KAC/B;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,SAAA;QACD,MAAM,IAAI,iBAAiB,EAAE,CAAC;KAC/B;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;QAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAA,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAACD,cAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAACC,YAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD,QAAA,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC/D,OAAO;AACL,gBAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAClD,gBAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AACpD,gBAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;aACvD,CAAC;AACH,SAAA;QAED,OAAO;AACL,YAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAClD,YAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC5C,YAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;SAC/C,CAAC;KACH;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5B,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACtC,MAAM,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,IAAI;AACjC,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AACvC,gBAAA,QAAQ,EAAE;oBACR,eAAe,EAAE,aAAa,CAAC,IAAI;oBACnC,MAAM,EAAE,aAAa,CAAC,IAAI;AAC3B,iBAAA;AACD,gBAAA,MAAM,EAAE;oBACN,eAAe,EAAE,QAAQ,CAAC,IAAI;oBAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI;AACtB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,QAAA,OAAO,MAAM,CAAC;KACf;;AAnFM,WAAI,CAAA,IAAA,GAAa,QAAiB;;AChB3C;;;AAGG;AACG,MAAO,2BAA4B,SAAQ,KAAK,CAAA;AAGpD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAHzF,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;KAIpC;AACF,CAAA;AAED,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC1C,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAE7B,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAG9C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACrD;AAEM,IAAA,MAAM,CAAC,KAAY,EAAA;QACxB,MAAM,IAAI,2BAA2B,EAAE,CAAC;KACzC;IAEM,YAAY,CAAC,IAAS,EAAE,QAA2B,EAAA;QACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AACpD,YAAA,OAAO,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,SAAA;QACD,MAAM,IAAI,2BAA2B,EAAE,CAAC;KACzC;IAEM,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;QAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AACtD,YAAA,OAAO,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD,QAAA,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC/D,OAAO;AACL,gBAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAClD,gBAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AACpD,gBAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;aACvD,CAAC;AACH,SAAA;QAED,OAAO;AACL,YAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAClD,YAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AAC5C,YAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;SAC/C,CAAC;KACH;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5B,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YACtC,MAAM,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,qBAAqB,CAAC,IAAI;AAC3C,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AACvC,gBAAA,QAAQ,EAAE;oBACR,eAAe,EAAE,aAAa,CAAC,IAAI;oBACnC,MAAM,EAAE,aAAa,CAAC,IAAI;AAC3B,iBAAA;AACD,gBAAA,MAAM,EAAE;oBACN,eAAe,EAAE,QAAQ,CAAC,IAAI;oBAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI;AACtB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,qBAAqB,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9C,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;QACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,QAAA,OAAO,MAAM,CAAC;KACf;;AAnFM,qBAAI,CAAA,IAAA,GAAwB,mBAA4B;;AClB3D,MAAO,eAAgB,SAAQ,oBAAoB,CAAA;AAEvD,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAiB,EAAE,OAAe,EAAA;AACtE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QADvD,IAAI,CAAA,IAAA,GAAG,iBAAiB,CAAC;KAGxB;AACF,CAAA;AAEK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAEnC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AACM,IAAA,MAAM,CAAC,IAAW,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,mDAAmD,CAAC,CAAC;KAC3F;IACM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;QACD,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,mDAAmD,CAAC,CAAC;KAC3F;AACM,IAAA,OAAO,CAAC,GAAQ,EAAA;QACrB,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,+CAA+C,CAAC,CAAC;KACvF;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,IAAI;YAChC,MAAM,EAAE,UAAU,CAAC,IAAI;SACxB,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA1CM,UAAI,CAAA,IAAA,GAAY,OAAgB;;ACRnC,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;AAEnE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAwB,EAAE,OAAe,EAAA;AAC7E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QAD9D,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;KAGpC;AACF,CAAA;AAEK,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AAG1C,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KACjE;IAED,OAAO,CAAC,GAAoB,EAAE,QAAmB,EAAA;QAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAChD,YAAA,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,SAAA;QACD,IAAI,KAAK,IAAI,GAAG,EAAE;YAChB,OAAO,GAAG,CAAC,GAAG,CAAC;AAChB,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,IAAI,EACJ,CAAA,+DAAA,EAAkE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAE,CACxF,CAAC;AACH,SAAA;KACF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,IAAI,EACJ,CAAoC,iCAAA,EAAA,GAAG,CAAsB,oBAAA,CAAA,CAC9D,CAAC;AACH,SAAA;KACF;IAED,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAChD,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,IAAI,EACJ,CAAoC,iCAAA,EAAA,GAAG,CAAsB,oBAAA,CAAA,CAC9D,CAAC;AACH,SAAA;KACF;AAED;;;AAGG;IACH,aAAa,GAAA;QACX,OAAO;AACL,YAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG;AACxB,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,iBAAiB,CAAC,IAAI;AACvC,YAAA,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,iBAAiB,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1C,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAnFM,iBAAI,CAAA,IAAA,GAAoB,eAAwB;;ACRnD,MAAO,iCAAkC,SAAQ,oBAAoB,CAAA;AAEzE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAA8B,EAAE,OAAe,EAAA;AACnF,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAyB;QADpE,IAAI,CAAA,IAAA,GAAG,mCAAmC,CAAC;KAG1C;AACF,CAAA;AAEK,MAAO,uBAAwB,SAAQ,KAAK,CAAA;AAGhD,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,OAAO,CAAC,IAAS,EAAA;QACf,MAAM,IAAI,iCAAiC,CACzC,IAAI,EACJ,IAAI,EACJ,6DAA6D,CAC9D,CAAC;KACH;AAEO,IAAA,aAAa,CAAC,GAAQ,EAAA;QAC5B,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACjF,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAwB,EAAA;QAC3D,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE;YACtD,OAAO,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,SAAA;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;AAED;;;AAGG;IACH,aAAa,GAAA;QACX,OAAO;AACL,YAAA,CAAC,uBAAuB,CAAC,IAAI,GAAG;AAC9B,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,uBAAuB,CAAC,IAAI;AAC7C,YAAA,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,uBAAuB,CAAC,IAAI,KAAK,WAAW,EAAE;AAChD,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAvEM,uBAAI,CAAA,IAAA,GAA0B,qBAA8B;;ACR/D,MAAO,2CAA4C,SAAQ,oBAAoB,CAAA;AAEnF,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAwC,EAAE,OAAe,EAAA;AAC7F,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmC;QAD9E,IAAI,CAAA,IAAA,GAAG,6CAA6C,CAAC;KAGpD;AACF,CAAA;AAEK,MAAO,iCAAkC,SAAQ,KAAK,CAAA;AAG1D,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAED,IAAA,OAAO,CAAC,IAAS,EAAA;QACf,MAAM,IAAI,2CAA2C,CACnD,IAAI,EACJ,IAAI,EACJ,wEAAwE,CACzE,CAAC;KACH;AAEO,IAAA,aAAa,CAAC,GAAQ,EAAA;QAC5B,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,2CAA2C,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC3F,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAwB,EAAA;QAC3D,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,EAAE;YAChE,OAAO,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9D,SAAA;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1C;AAED;;;AAGG;IACH,aAAa,GAAA;QACX,OAAO;AACL,YAAA,CAAC,iCAAiC,CAAC,IAAI,GAAG;AACxC,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,aAAA;SACF,CAAC;KACH;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,iCAAiC,CAAC,IAAI;AACvD,YAAA,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,iCAAiC,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1D,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAvEM,iCAAI,CAAA,IAAA,GAAqC,gCAAyC;;ACRrF,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;AAEjE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAsB,EAAE,OAAe,EAAA;AAC3E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QAD5D,IAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC;KAGlC;AACF,CAAA;AACK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAKxC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC1E,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,MAAM,GAAG,CAAC;AACX,aAAA;AACD,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvB,SAAA;KACF;IAED,YAAY,CAAC,GAAiC,EAAE,QAA2B,EAAA;QACzE,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC9C,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,MAAM,GAAG,CAAC;AACX,aAAA;AACD,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvB,SAAA;KACF;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,eAAe,CAAC,IAAI,CAAC;KAC7B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,eAAe,CAAC,IAAI;YACrC,MAAM,EAAE,eAAe,CAAC,IAAI;SAC7B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,EAAE;AACxC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA9ED;AACA;AACO,eAAI,CAAA,IAAA,GAAmB,cAAuB;;ACTjD,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;AAEjE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAsB,EAAE,OAAe,EAAA;AAC3E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QAD5D,IAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC;KAGlC;AACF,CAAA;AACK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAKxC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC1E,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC9C,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,eAAe,CAAC,IAAI,CAAC;KAC7B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,eAAe,CAAC,IAAI;YACrC,MAAM,EAAE,eAAe,CAAC,IAAI;SAC7B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,EAAE;AACxC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAtED;AACA;AACO,eAAI,CAAA,IAAA,GAAmB,cAAuB;;ACTjD,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;AAEjE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAsB,EAAE,OAAe,EAAA;AAC3E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;QAD5D,IAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC;KAGlC;AACF,CAAA;AACK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAKxC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AAC1E,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC9C,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,eAAe,CAAC,IAAI,CAAC;KAC7B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,eAAe,CAAC,IAAI;YACrC,MAAM,EAAE,eAAe,CAAC,IAAI;SAC7B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW,EAAE;AACxC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAtED;AACA;AACO,eAAI,CAAA,IAAA,GAAmB,cAAuB;;ACTjD,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;AAE5D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAiB,EAAE,OAAe,EAAA;AACtE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QADvD,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAG7B;AACF,CAAA;AACK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAGnC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACrE,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;AAED,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC;KACxB;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,IAAI;YAChC,MAAM,EAAE,UAAU,CAAC,IAAI;SACxB,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAtEM,UAAI,CAAA,IAAA,GAAY,OAAgB;;ACPnC,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AAE/D,IAAA,WAAA,CAAmB,KAAU,EAAS,KAAoB,EAAE,OAAe,EAAA;AACzE,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAe;QAD1D,IAAI,CAAA,IAAA,GAAG,yBAAyB,CAAC;KAGhC;AACF,CAAA;AACK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAGtC,IAAA,WAAA,CACY,GAAiD,EACjD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8C;QACjD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;AAEO,IAAA,OAAO,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAkB,eAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACxE,SAAA;KACF;AAEO,IAAA,4BAA4B,CAAC,GAAQ,EAAA;QAC3C,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;KAChF;AAED,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;AACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;IAED,YAAY,CAAC,GAAwB,EAAE,QAA2B,EAAA;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,CAAC;AACX,SAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;QACd,OAAO,GAAG,CAAC,KAAK,CAAC;KAClB;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC;KAC3B;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,aAAa,CAAC,IAAI;YACnC,MAAM,EAAE,aAAa,CAAC,IAAI;SAC3B,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE;AACtC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AAtEM,aAAI,CAAA,IAAA,GAAgB,WAAoB;;ACP3C,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;AAEnE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAA0B,EAAE,OAAe,EAAA;AAC/E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAqB;QADhE,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;KAGpC;AACF,CAAA;AAEK,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;AAEnE,IAAA,WAAA,CAAmB,KAAU,EAAS,KAA0B,EAAE,OAAe,EAAA;AAC/E,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QADZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAAS,IAAK,CAAA,KAAA,GAAL,KAAK,CAAqB;QADhE,IAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;KAGpC;AACF,CAAA;AAEK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AAG5C,IAAA,WAAA,CACY,GAAkD,EAClD,GAAW,EACX,GAAiB,EAAA;AAE3B,QAAA,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAJX,IAAG,CAAA,GAAA,GAAH,GAAG,CAA+C;QAClD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACX,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;KAG5B;IAEM,OAAO,CAAC,GAAQ,EAAE,QAAmB,EAAA;QAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;AAClD,YAAA,OAAO,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,SAAA;AAAM,aAAA;YACL,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,IAAI,EACJ,6MAA6M,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAG,CAAA,CAAA,CAC3O,CAAC;AACH,SAAA;KACF;AAEM,IAAA,MAAM,CAAC,IAAW,EAAA;QACvB,MAAM,IAAI,2BAA2B,CACnC,IAAI,EACJ,IAAI,EACJ,0KAA0K,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAG,CAAA,CAAA,CACxM,CAAC;KACH;IAEM,YAAY,CAAC,GAAQ,EAAE,QAA2B,EAAA;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAClD,OAAO,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,SAAA;QACD,MAAM,IAAI,2BAA2B,CACnC,GAAG,EACH,IAAI,EACJ,0KAA0K,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAG,CAAA,CAAA,CACxM,CAAC;KACH;AAED;;;AAGG;IACI,aAAa,GAAA;QAClB,OAAO,mBAAmB,CAAC,IAAI,CAAC;KACjC;IAED,cAAc,GAAA;QACZ,OAAO;YACL,eAAe,EAAE,mBAAmB,CAAC,IAAI;AACzC,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjC,aAAA;SACF,CAAC;KACH;IAED,mBAAmB,CAAC,WAAmB,EAAE,MAAe,EAAA;AACtD,QAAA,IAAI,mBAAmB,CAAC,IAAI,KAAK,WAAW,EAAE;AAC5C,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;;AA/DM,mBAAI,CAAA,IAAA,GAAe,UAAmB;;AC6BxC,MAAM,MAAM,GAAG;IACpB,SAAS;IACT,QAAQ;IACR,WAAW;IACX,WAAW;IACX,YAAY;IACZ,sBAAsB;IACtB,QAAQ;IACR,SAAS;IACT,OAAO;IACP,aAAa;IACb,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,cAAc;IACd,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,WAAW;IACX,cAAc;IACd,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,qBAAqB;IACrB,UAAU;IACV,iBAAiB;IACjB,uBAAuB;IACvB,iCAAiC;IACjC,eAAe;IACf,eAAe;IACf,eAAe;IACf,UAAU;IACV,aAAa;IACb,mBAAmB;CACpB;;AChFD;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;IAE1C,WAAmB,CAAA,OAAe,EAAS,IAAS,EAAA;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAAS,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;QADpD,IAAI,CAAA,IAAA,GAAG,qBAAqB,CAAC;KAG5B;AACF,CAAA;AAEe,SAAA,WAAW,CAAC,GAAQ,EAAE,GAAW,EAAA;AAC/C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7C,KAAA;AAED,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,EAAE;AACN,QAAA,MAAM,IAAI,iBAAiB,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;AAChG,KAAA;IACD,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACtC;;ACzBA;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;IAG1C,WAAmB,CAAA,qBAA6B,EAAS,aAAkB,EAAA;AACzE,QAAA,KAAK,CAAC,CAAA,4CAAA,EAA+C,qBAAqB,CAAA,CAAA,CAAG,CAAC,CAAC;QAD9D,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAQ;QAAS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAK;QAF3E,IAAI,CAAA,IAAA,GAAG,mBAAmB,CAAC;KAI1B;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAE3C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QADlC,IAAI,CAAA,IAAA,GAAG,oBAAoB,CAAC;KAG3B;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,uBAAwB,SAAQ,KAAK,CAAA;AAEhD,IAAA,WAAA,CAAmB,MAAW,EAAA;QAC5B,KAAK,CAAC,CAA4C,0CAAA,CAAA,CAAC,CAAC;QADnC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAK;QADvB,IAAI,CAAA,IAAA,GAAG,yBAAyB,CAAC;KAGvC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AAE/C,IAAA,WAAA,CAAmB,OAAe,EAAS,IAAS,EAAS,aAAkB,EAAA;AAC7E,QAAA,KAAK,CAAC,CAAA;QACF,OAAO,CAAA;SACN,IAAI,CAAA;AACR,IAAA,CAAA,CAAC,CAAC;QAJc,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAAS,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;QAAS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAK;QADxE,IAAI,CAAA,IAAA,GAAG,wBAAwB,CAAC;KAMtC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AAE5C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,qBAAqB,CAAC;KAGnC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AAE1C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,mBAAmB,CAAC;KAGjC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,KAAK,CAAA;IAE5C,WAAoB,CAAA,GAAW,EAAS,OAAY,EAAA;AAClD,QAAA,KAAK,CAAC,CAAoB,iBAAA,EAAA,GAAG,KAAK,OAAO,CAAA,CAAE,CAAC,CAAC;QAD3B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QAAS,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;QAD7C,IAAI,CAAA,IAAA,GAAG,qBAAqB,CAAC;KAGnC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,oBAAqB,SAAQ,KAAK,CAAA;IAE7C,WAAoB,CAAA,GAAW,EAAS,OAAY,EAAA;AAClD,QAAA,KAAK,CAAC,CAAoB,iBAAA,EAAA,GAAG,KAAK,OAAO,CAAA,CAAE,CAAC,CAAC;QAD3B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QAAS,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;QAD7C,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAGpC;AACF,CAAA;AAED;;;AAGG;AACG,MAAO,oBAAqB,SAAQ,KAAK,CAAA;AAE7C,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAD3B,IAAI,CAAA,IAAA,GAAG,sBAAsB,CAAC;KAGpC;AACF;;;ACtED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAElE;AACA,SAAS,QAAQ,CACf,GAAyC,EACzC,IAAe,GAAA,SAAS,CAAC,IAAI,EAAA;;AAE7B,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAA,OAAO,QAAQ,CACb;AACE,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,IAAI,EAAE,GAAG;SACV,EACD,IAAI,CACL,CAAC;AACH,KAAA;IACD,MAAM,QAAQ,GAAG,GAAoC,CAAC;AACtD,IAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,IAAI,EAAE;sBACJ,QAAQ,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAA;AACjB,gBAAA;AACE,oBAAA,IAAI,EAAE,IAAI;oBACV,IAAI,EAAA,CAAA,EAAA,GAAE,QAAQ,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,CAAC;AAC9B,iBAAA;aACF,EACD,CAAA,CAAA;AACH,KAAA;AACD,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,CAAwB,EAAE,CAAwB,EAAA;AACnE,IAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,IAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,IAAA,QACE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;AACnB,SAAC,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;AAC9C,aAAC,EAAE,CAAC,IAAI,KAAK,SAAS;gBACpB,EAAE,CAAC,IAAI,KAAK,SAAS;gBACrB,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM;AACjC,gBAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,CAAC,OAAA,SAAS,CAAC,CAAC,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,EAAE,CAAC,IAAI,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;AAC/D,SAAC,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;AAClD,aAAC,EAAE,CAAC,MAAM,KAAK,SAAS;gBACtB,EAAE,CAAC,MAAM,KAAK,SAAS;gBACvB,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM;gBACrC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,MAAA,CAAA,EAAA,GAAK,EAAE,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAA,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC,EACrD;AACJ,CAAC;AAED;;AAEG;MACU,MAAM,CAAA;AA4CjB,IAAA,WAAA,CAAqB,GAA0B,EAAA;QAA1B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAuB;QAzCxC,IAAkB,CAAA,EAAA,CAAA,GAAG,IAAI,CAAC;QA0C/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEhC,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAChE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,YAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5D,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;AACpD,aAAA;AACF,SAAA;KACF;IAlDM,OAAO,QAAQ,CAAC,GAAW,EAAA;QAChC,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;KAC9C;IAKD,OAAO,eAAe,CAAC,GAA+B,EAAA;QACpD,MAAM,OAAO,GACX,GAAG;AACH,YAAA,GAAG,CAAC,MAAM;YACV,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACrB,MAAM,aAAa,GAAG,CAAkC,CAAC;oBACzD,IAAI,aAAa,CAAC,IAAI,EAAE;AACtB,wBAAA,OAAO,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC;AACzC,qBAAA;AAAM,yBAAA;AACL,wBAAA,OAAO,KAAK,CAAC;AACd,qBAAA;AACF,iBAAA;AAAM,qBAAA;;oBAEL,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC5E,iBAAA;AACH,aAAC,CAAmC,CAAC;AAEvC,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAA,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C,SAAA;QAED,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;AAEO,IAAA,oBAAoB,CAC1B,GAAQ,EAAA;AAER,QAAA,OAAO,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACjD;AAeO,IAAA,wBAAwB,CAAC,GAAQ,EAAA;;QAEvC,IAAI,IAAI,CAAC,IAAI,YAAY,SAAS,IAAI,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE;YAClE,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1F,gBAAA,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAElD,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;KAC/C;AAED,IAAA,SAAS,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACrE,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;AAC/E,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,qBAAqB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;AACzF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,YAAY,WAAW,EAAE;AACjF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACD,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IAED,mBAAmB,CAAC,IAAW,EAAE,SAAoB,EAAA;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;AAC9D,SAAA;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KAClD;IAED,oBAAoB,CAAC,GAAQ,EAAE,SAAoB,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KACxD;AAED,IAAA,eAAe,CAAC,GAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AAC9D,SAAA;QAED,IAAI;YACF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/C,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;AACX,YAAA,MAAM,IAAI,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAClD,SAAA;KACF;IAED,MAAM,CAAC,KAAW,EAAE,SAA4B,EAAA;QAC9C,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACjD,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY,oBAAoB,EAAE;AACtC,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;AAED,YAAA,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACtD,SAAA;KACF;AAED;;;AAGG;IACH,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACjE;AAED;;;AAGG;IACH,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;KAClE;AAED;;AAEG;IACH,YAAY,CAAC,EAAoB,EAAE,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;AAC9D,SAAA;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAI;AACzC,YAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CACJ,EAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CACvF,CAAA;SACH,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,EAAA,EAAA,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,EAC7B,CAAA,CAAA;KACH;AAED;;;;;;;;AAQG;IACH,uBAAuB,CAAkC,OAAY,EAAE,SAAc,EAAA;AACnF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,CAAkB,CAAC;KAC9E;;AAGO,IAAA,SAAS,CACf,MAA6B,EAC7B,OAAY,EACZ,WAAgB,EAAA;AAEhB,QAAA,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;AAClC,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAK,MAAwC,CAAC,IAAI,KAAK,MAAM,EAAE;AACtF,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACrD,gBAAA,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AAC5D,aAAA;AACD,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACb;;AAEE,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;oBACvF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EACvF;AACL,SAAA;KACF;AACD;;;;;;;;;;;;;;;AAeG;AACH,IAAA,SAAS,CAAC,WAAmB,EAAA;QAC3B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAC3D;AACF,CAAA;KAvOS,gBAAgB;;AC/E1B;;AAEG;MACU,eAAe,CAAA;AA+B1B,IAAA,WAAA,CAAY,GAA0B,EAAA;QACpC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACjC;IA9BD,OAAO,eAAe,CAAC,GAA+B,EAAA;QACpD,MAAM,SAAS,GACb,GAAG;AACH,YAAA,GAAG,CAAC,MAAM;YACV,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,CAAmC,CAAC;AAC9F,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C,SAAA;QAED,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,QACE,IAAI,CAAC,IAAI,YAAY,OAAO;AAC5B,aAAC,IAAI,CAAC,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,OAAO,CAAC,EAC7E;KACH;AAED,IAAA,IAAI,aAAa,GAAA;QACf,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;KACF;IAMD,OAAO,CAAC,GAAQ,EAAE,SAAoB,EAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KAC1C;IAED,MAAM,CAAC,GAAG,IAAW,EAAA;QACnB,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACzC,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY,oBAAoB,EAAE;AACtC,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;AAED,YAAA,MAAM,IAAI,sBAAsB,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACrF,SAAA;KACF;IAED,YAAY,CAAC,KAAW,EAAE,SAA4B,EAAA;QACpD,IAAI;YACF,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACjD,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY,oBAAoB,EAAE;AACtC,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;YAED,MAAM,IAAI,sBAAsB,CAAC,mCAAmC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAClF,SAAA;KACF;AAED;;;AAGG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KAClC;AAED;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;KACnC;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACrC;AACF;;MCvFY,UAAU,CAAA;AAqCrB,IAAA,WAAA,CAAY,GAA4B,EAAA;AACtC,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,YAAA,MAAM,IAAI,kBAAkB,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,CAAA,CAAC,CAAC;AAC/E,SAAA;;QAED,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAkC,CAAC;AAC5D,QAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAkC,CAAC;AAC9D,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAoC,CAAC;QAE9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;KAC3D;AAzCD;;;;;;AAMG;IACH,OAAO,eAAe,CAAC,GAA+B,EAAA;QACpD,MAAM,aAAa,GAAiB,EAAE,CAAC;QAEvC,MAAM,KAAK,GACT,GAAG;AACH,YAAA,GAAG,CAAC,MAAM;YACV,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,YAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAqC,CAAC;AAE7F,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,oBAAA,MAAM,IAAI,kBAAkB,CAC1B,CAAA,2CAAA,EAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAE,CAAA,CACrE,CAAC;AACH,iBAAA;gBACD,aAAa,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,aAAa,CAAC;KACtB;AAgBD;;;;;;AAMG;AACH,IAAA,cAAc,CAAC,IAAS,EAAA;QACtB,IAAI;YACF,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC7C,SAAA;AAAC,QAAA,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAChD,SAAA;KACF;AAED;;;;;;;AAOG;IACH,gBAAgB,CAAC,GAAQ,EAAE,SAAoB,EAAA;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KACpD;AAED;;;AAGG;IACH,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;KAC1C;AAED;;;AAGG;IACH,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KAC5C;AACF;;ACjGD;AACa,MAAA,OAAO,GAAG;AACnB,IAAA,YAAY,EAAE,0CAA0C;AACxD,IAAA,SAAS,EAAE,QAAQ;;;ACJvB;;;AAGG;AAUU,MAAA,SAAS,GAAG,MAAM,GAAG;AAC3B,MAAM,iBAAiB,GAAG;;;;"}
|
|
1
|
+
{"version":3,"file":"taquito-michelson-encoder.es6.js","sources":["../src/michelson-map.ts","../src/tokens/token.ts","../src/tokens/bigmap.ts","../src/tokens/or.ts","../src/tokens/pair.ts","../src/tokens/comparable/nat.ts","../src/tokens/comparable/string.ts","../src/tokens/comparable/address.ts","../src/tokens/map.ts","../src/tokens/comparable/bool.ts","../src/tokens/comparable/tx_rollup_l2_address.ts","../src/tokens/contract.ts","../src/tokens/list.ts","../src/tokens/comparable/mutez.ts","../src/tokens/comparable/bytes.ts","../src/tokens/option.ts","../src/tokens/comparable/timestamp.ts","../src/tokens/comparable/int.ts","../src/tokens/unit.ts","../src/tokens/key.ts","../src/tokens/comparable/key_hash.ts","../src/tokens/signature.ts","../src/tokens/lambda.ts","../src/tokens/operation.ts","../src/tokens/set.ts","../src/tokens/chain-id.ts","../src/tokens/ticket.ts","../src/tokens/ticket-deprecated.ts","../src/tokens/never.ts","../src/tokens/sapling-state.ts","../src/tokens/sapling-transaction.ts","../src/tokens/sapling-transaction-deprecated.ts","../src/tokens/bls12-381-fr.ts","../src/tokens/bls12-381-g1.ts","../src/tokens/bls12-381-g2.ts","../src/tokens/chest.ts","../src/tokens/chest-key.ts","../src/tokens/constant.ts","../src/tokens/tokens.ts","../src/tokens/createToken.ts","../src/schema/error.ts","../src/schema/storage.ts","../src/schema/parameter.ts","../src/schema/view-schema.ts","../src/version.ts","../src/taquito-michelson-encoder.ts"],"sourcesContent":["import { MichelsonV1Expression } from '@taquito/rpc';\nimport { Schema } from './schema/storage';\nimport stringify from 'fast-json-stable-stringify';\n\n/**\n * @category Error\n * @description Error that indicates an invalid map type being passed or used\n */\nexport class InvalidMapTypeError extends Error {\n public name = 'InvalidMapTypeError';\n constructor(public mapType: string) {\n super(`The map type '${mapType}' is invalid`);\n }\n}\n\n// Retrieve a unique symbol associated with the key from the environment\n// Used in order to identify all object that are of type MichelsonMap even if they come from different module\nconst michelsonMapTypeSymbol = Symbol.for('taquito-michelson-map-type-symbol');\n\nexport type MichelsonMapKey = Array<any> | object | string | boolean | number;\n\nconst isMapType = (\n value: MichelsonV1Expression\n): value is { prim: 'map' | 'big_map'; args: [MichelsonV1Expression, MichelsonV1Expression] } => {\n return 'args' in value && Array.isArray(value.args) && value.args.length === 2;\n};\n\n/**\n * @category Error\n * @description Error that indicates a map type mismatch, where an attempt to set a key or value in a Map doesn't match the defined type of the Map\n */\nexport class MapTypecheckError extends Error {\n name = 'MapTypecheckError';\n\n constructor(public readonly value: any, public readonly type: any, errorType: 'key' | 'value') {\n super(`${errorType} not compliant with underlying michelson type`);\n }\n}\n\n/**\n * @description Michelson Map is an abstraction over the michelson native map. It supports complex Pair as key\n */\nexport class MichelsonMap<K extends MichelsonMapKey, T> {\n private valueMap = new Map<string, T>();\n private keyMap = new Map<string, K>();\n\n public [michelsonMapTypeSymbol] = true;\n\n // Used to check if an object is a michelson map.\n // Using instanceof was not working for project that had multiple instance of taquito dependencies\n // as the class constructor is different\n static isMichelsonMap(obj: any): obj is MichelsonMap<any, any> {\n return obj && obj[michelsonMapTypeSymbol] === true;\n }\n\n private keySchema?: Schema;\n private valueSchema?: Schema;\n\n /**\n * @param mapType If specified key and value will be type-checked before being added to the map\n *\n * @example new MichelsonMap({ prim: \"map\", args: [{prim: \"string\"}, {prim: \"int\"}]})\n */\n constructor(mapType?: MichelsonV1Expression) {\n if (mapType) {\n this.setType(mapType);\n }\n }\n\n setType(mapType: MichelsonV1Expression) {\n if (!isMapType(mapType)) {\n throw new InvalidMapTypeError(mapType.toString());\n }\n\n this.keySchema = new Schema(mapType.args[0]);\n this.valueSchema = new Schema(mapType.args[1]);\n }\n\n removeType() {\n this.keySchema = undefined;\n this.valueSchema = undefined;\n }\n\n static fromLiteral(obj: { [key: string]: any }, mapType?: MichelsonV1Expression) {\n const map = new MichelsonMap(mapType);\n Object.keys(obj).forEach((key) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n\n private typecheckKey(key: K) {\n if (this.keySchema) {\n return this.keySchema.Typecheck(key);\n }\n\n return true;\n }\n\n private typecheckValue(value: T) {\n if (this.valueSchema) {\n return this.valueSchema.Typecheck(value);\n }\n\n return true;\n }\n\n private assertTypecheckValue(value: T) {\n if (!this.typecheckValue(value)) {\n throw new MapTypecheckError(value, this.valueSchema, 'value');\n }\n }\n\n private assertTypecheckKey(key: K) {\n if (!this.typecheckKey(key)) {\n throw new MapTypecheckError(key, this.keySchema, 'key');\n }\n }\n\n private serializeDeterministically(key: K): string {\n return stringify(key);\n }\n\n *keys(): Generator<K> {\n for (const [key] of this.entries()) {\n yield key;\n }\n }\n\n *values(): Generator<T> {\n for (const [, value] of this.entries()) {\n yield value;\n }\n }\n\n *entries(): Generator<[K, T]> {\n for (const key of this.valueMap.keys()) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this.keyMap.get(key)!, this.valueMap.get(key)!];\n }\n }\n\n get(key: K): T | undefined {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.valueMap.get(strKey);\n }\n\n /**\n *\n * @description Set a key and a value in the MichelsonMap. If the key already exists, override the current value.\n *\n * @example map.set(\"myKey\", \"myValue\") // Using a string as key\n *\n * @example map.set({0: \"test\", 1: \"test1\"}, \"myValue\") // Using a pair as key\n *\n * @warn The same key can be represented in multiple ways, depending on the type of the key. This duplicate key situation will cause a runtime error (duplicate key) when sending the map data to the Tezos RPC node.\n *\n * For example, consider a contract with a map whose key is of type boolean. If you set the following values in MichelsonMap: map.set(false, \"myValue\") and map.set(null, \"myValue\").\n *\n * You will get two unique entries in the MichelsonMap. These values will both be evaluated as falsy by the MichelsonEncoder and ultimately rejected by the Tezos RPC.\n */\n set(key: K, value: T) {\n this.assertTypecheckKey(key);\n this.assertTypecheckValue(value);\n\n const strKey = this.serializeDeterministically(key);\n this.keyMap.set(strKey, key);\n this.valueMap.set(strKey, value);\n }\n\n delete(key: K) {\n this.assertTypecheckKey(key);\n\n this.keyMap.delete(this.serializeDeterministically(key));\n this.valueMap.delete(this.serializeDeterministically(key));\n }\n\n has(key: K) {\n this.assertTypecheckKey(key);\n\n const strKey = this.serializeDeterministically(key);\n return this.keyMap.has(strKey) && this.valueMap.has(strKey);\n }\n\n clear(): void {\n this.keyMap.clear();\n this.valueMap.clear();\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n forEach(cb: (value: T, key: K, map: MichelsonMap<K, T>) => void) {\n for (const [key, value] of this.entries()) {\n cb(value, key, this);\n }\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\nimport { TokenSchema } from '../schema/types';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding invalid or incorrect data (e.g. if an address is expected but a number is received)\n */\nexport abstract class TokenValidationError extends Error {\n name = 'ValidationError';\n\n constructor(public value: any, public token: Token, baseMessage: string) {\n super();\n const annot = this.token.annot();\n const annotText = annot ? `[${annot}] ` : '';\n this.message = `${annotText}${baseMessage}`;\n }\n}\n\nexport type TokenFactory = (val: any, idx: number) => Token;\n\nexport interface Semantic {\n [key: string]: (value: MichelsonV1Expression, schema: MichelsonV1Expression) => any;\n}\n\nexport interface SemanticEncoding {\n [key: string]: (value: any, type?: MichelsonV1Expression) => MichelsonV1Expression;\n}\n\nexport abstract class Token {\n constructor(\n protected val: MichelsonV1ExpressionExtended,\n protected idx: number,\n protected fac: TokenFactory\n ) {}\n\n protected typeWithoutAnnotations() {\n const handleMichelsonExpression = (val: MichelsonV1Expression): MichelsonV1Expression => {\n if (typeof val === 'object') {\n if (Array.isArray(val)) {\n const array = val as MichelsonV1Expression[];\n return array.map((item) => handleMichelsonExpression(item));\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.args) {\n return {\n prim: extended.prim,\n args: extended.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: extended.prim,\n };\n }\n }\n return val;\n };\n\n const handleMichelsonExtended = (\n val: MichelsonV1ExpressionExtended\n ): Omit<MichelsonV1ExpressionExtended, 'annots'> => {\n if (val.args) {\n return {\n prim: val.prim,\n args: val.args.map((x) => handleMichelsonExpression(x)),\n };\n } else {\n return {\n prim: val.prim,\n };\n }\n };\n\n return handleMichelsonExtended(this.val);\n }\n\n annot() {\n return (\n Array.isArray(this.val.annots) && this.val.annots.length > 0\n ? this.val.annots[0]\n : String(this.idx)\n ).replace(/(%|:)(_Liq_entry_)?/, '');\n }\n\n hasAnnotations() {\n return Array.isArray(this.val.annots) && this.val.annots.length;\n }\n\n get tokenVal() {\n return this.val;\n }\n\n public createToken = this.fac;\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public abstract ExtractSchema(): any;\n\n abstract generateSchema(): TokenSchema;\n\n public abstract Execute(val: any, semantics?: Semantic): any;\n\n public abstract Encode(_args: any[]): any;\n\n public abstract EncodeObject(args: any, semantics?: SemanticEncoding): any;\n\n public ExtractSignature() {\n return [[this.ExtractSchema()]];\n }\n\n abstract findAndReturnTokens(tokenToFind: string, tokens: Array<Token>): Array<Token>;\n}\n\nexport type BigMapKeyType = string | number | object;\n\nexport abstract class ComparableToken extends Token {\n abstract ToBigMapKey(val: BigMapKeyType): {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n };\n abstract ToKey(val: string | MichelsonV1Expression): any;\n\n compare(o1: string, o2: string): number {\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { BigMapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure happening when parsing encoding/executing Big Map types\n */\nexport class BigMapValidationError extends TokenValidationError {\n name = 'BigMapValidationError';\n constructor(public value: any, public token: BigMapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BigMapToken extends Token {\n static prim: 'big_map' = 'big_map' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as unknown as ComparableToken;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n big_map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): BigMapTokenSchema {\n return {\n __michelsonType: BigMapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n private isValid(value: any): BigMapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new BigMapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val, this.val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public Execute(val: any[] | { int: string }, semantic?: Semantic) {\n if (semantic && semantic[BigMapToken.prim]) {\n return semantic[BigMapToken.prim](val as any, this.val);\n }\n\n if (Array.isArray(val)) {\n // Athens is returning an empty array for big map in storage\n // Internal: In taquito v5 it is still used to decode big map diff (as if they were a regular map)\n const map = new MichelsonMap(this.val);\n val.forEach((current) => {\n map.set(this.KeySchema.ToKey(current.args[0]), this.ValueSchema.Execute(current.args[1]));\n });\n return map;\n } else if ('int' in val) {\n // Babylon is returning an int with the big map id in contract storage\n return val.int;\n } else {\n throw new BigMapValidationError(\n val,\n this,\n `Big map is expecting either an array (Athens) or an object with an int property (Babylon). Got ${JSON.stringify(\n val\n )}`\n );\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BigMapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { OrTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when decoding OR Token methods\n */\nexport class OrTokenDecodingError extends Error {\n public name = 'OrTokenDecodingError';\n constructor(public message: string) {\n super(message);\n }\n}\n\nexport class OrToken extends ComparableToken {\n static prim: 'or' = 'or' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n const label = args[args.length - 1];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Left', args: [leftToken.Encode(args)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n args.pop();\n return { prim: 'Right', args: [rightToken.Encode(args)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.Encode(args);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.Encode(args);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public ExtractSignature(): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n const newSig = [];\n\n if (leftToken instanceof OrToken) {\n newSig.push(...leftToken.ExtractSignature());\n } else {\n for (const sig of leftToken.ExtractSignature()) {\n newSig.push([leftToken.annot(), ...sig]);\n }\n }\n\n if (rightToken instanceof OrToken) {\n newSig.push(...rightToken.ExtractSignature());\n } else {\n for (const sig of rightToken.ExtractSignature()) {\n newSig.push([rightToken.annot(), ...sig]);\n }\n }\n\n return newSig;\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const label = Object.keys(args)[0];\n\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (String(leftToken.annot()) === String(label) && !(leftToken instanceof OrToken)) {\n return { prim: 'Left', args: [leftToken.EncodeObject(args[label], semantic)] };\n } else if (String(rightToken.annot()) === String(label) && !(rightToken instanceof OrToken)) {\n return { prim: 'Right', args: [rightToken.EncodeObject(args[label], semantic)] };\n } else {\n if (leftToken instanceof OrToken) {\n const val = leftToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Left', args: [val] };\n }\n }\n\n if (rightToken instanceof OrToken) {\n const val = rightToken.EncodeObject(args, semantic);\n if (val) {\n return { prim: 'Right', args: [val] };\n }\n }\n return null;\n }\n }\n\n public Execute(val: any, semantics?: Semantic): any {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (val.prim === 'Right') {\n if (rightToken instanceof OrToken) {\n return rightToken.Execute(val.args[0], semantics);\n } else {\n return {\n [rightToken.annot()]: rightToken.Execute(val.args[0], semantics),\n };\n }\n } else if (val.prim === 'Left') {\n if (leftToken instanceof OrToken) {\n return leftToken.Execute(val.args[0], semantics);\n }\n return {\n [leftToken.annot()]: leftToken.Execute(val.args[0], semantics),\n };\n } else {\n throw new OrTokenDecodingError(`Was expecting Left or Right prim but got: ${val.prim}`);\n }\n }\n\n private traversal(\n getLeftValue: (token: Token) => any,\n getRightValue: (token: Token) => any,\n concat: (left: any, right: any) => any\n ) {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof OrToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof OrToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = concat(leftValue, rightValue);\n\n return res;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema(),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n }\n\n generateSchema(): OrTokenSchema {\n return {\n __michelsonType: OrToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof OrToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof OrToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n },\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n ),\n };\n }\n\n private findToken(label: any): Token | null {\n const leftToken = this.createToken(this.val.args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(this.val.args[1], this.idx + keyCount);\n\n if (\n String(leftToken.annot()) === String(label) &&\n !(leftToken instanceof OrToken) &&\n leftToken instanceof ComparableToken\n ) {\n return leftToken;\n } else if (\n String(rightToken.annot()) === String(label) &&\n !(rightToken instanceof OrToken) &&\n rightToken instanceof ComparableToken\n ) {\n return rightToken;\n } else {\n if (leftToken instanceof OrToken) {\n const tok = leftToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n\n if (rightToken instanceof OrToken) {\n const tok = rightToken.findToken(label);\n if (tok) {\n return tok;\n }\n }\n return null;\n }\n }\n\n compare(val1: any, val2: any): any {\n const labelVal1 = Object.keys(val1)[0];\n const labelVal2 = Object.keys(val2)[0];\n\n if (labelVal1 === labelVal2) {\n const token = this.findToken(labelVal1);\n if (token instanceof ComparableToken) {\n return token.compare(val1[labelVal1], val2[labelVal1]);\n }\n } else {\n const encoded1 = JSON.stringify(this.EncodeObject(val1));\n const encoded2 = JSON.stringify(this.EncodeObject(val2));\n return encoded1 < encoded2 ? -1 : 1;\n }\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OrToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.traversal(\n (leftToken) => leftToken.findAndReturnTokens(tokenToFind, tokens),\n (rightToken) => rightToken.findAndReturnTokens(tokenToFind, tokens),\n (leftValue, rightValue) => ({\n ...leftValue,\n ...rightValue,\n })\n );\n return tokens;\n }\n}\n","import { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\nimport { OrToken } from './or';\nimport { PairTokenSchema } from '../schema/types';\nimport { MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc';\n\n/**\n * @category Error\n * @description Error that indicates in invalid token argument being passed\n */\nexport class TokenArgumentValidationError extends Error {\n public name = 'TokenArgumentValidationError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure occurring when doing a comparison of tokens\n */\nexport class TokenComparisonError extends Error {\n public name = 'TokenComparisonError';\n constructor(public val1: string, public val2: string) {\n super(`Tokens ${val1} and ${val2} are not comparable`);\n }\n}\n\n// collapse comb pair\nfunction collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n if (val.args === undefined) {\n throw new TokenArgumentValidationError(\n 'Encountered an invalid PairToken with no arguments, a pair must have two or more arguments'\n );\n }\n if (val.args.length > 2) {\n return [\n val.args[0],\n {\n prim: prim,\n args: val.args.slice(1),\n },\n ];\n }\n return [val.args[0], val.args[1]];\n}\nexport class PairToken extends ComparableToken {\n static prim: 'pair' = 'pair' as const;\n\n constructor(val: MichelsonV1Expression, idx: number, fac: TokenFactory) {\n super(\n Array.isArray(val)\n ? {\n prim: PairToken.prim,\n args: val,\n }\n : (val as MichelsonV1ExpressionExtended).prim\n ? (val as MichelsonV1ExpressionExtended)\n : ({\n prim: PairToken.prim,\n args: val,\n } as MichelsonV1ExpressionExtended),\n idx,\n fac\n );\n }\n\n private args(): [any, any] {\n // collapse comb pair\n return collapse(this.val);\n }\n\n private tokens(): [Token, Token] {\n let cnt = 0;\n return this.args().map((a) => {\n const tok = this.createToken(a, this.idx + cnt);\n if (tok instanceof PairToken) {\n cnt += Object.keys(tok.ExtractSchema()).length;\n } else {\n cnt++;\n }\n return tok;\n }) as [Token, Token];\n }\n\n public Encode(args: any[]): any {\n return {\n prim: 'Pair',\n args: this.tokens().map((t) => t.Encode(args)),\n };\n }\n\n public ExtractSignature(): any {\n const args = this.args();\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n if (leftToken instanceof OrToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n\n const newSig = [];\n\n for (const leftSig of leftToken.ExtractSignature()) {\n for (const rightSig of rightToken.ExtractSignature()) {\n newSig.push([...leftSig, ...rightSig]);\n }\n }\n\n return newSig;\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const [leftToken, rightToken] = this.tokens();\n\n let leftValue;\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = args;\n } else {\n leftValue = args[leftToken.annot()];\n }\n\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = args;\n } else {\n rightValue = args[rightToken.annot()];\n }\n\n return {\n prim: 'Pair',\n args: [\n leftToken.EncodeObject(leftValue, semantic),\n rightToken.EncodeObject(rightValue, semantic),\n ],\n };\n }\n\n private traversal(getLeftValue: (token: Token) => any, getRightValue: (token: Token) => any) {\n const args = this.args();\n\n const leftToken = this.createToken(args[0], this.idx);\n let keyCount = 1;\n let leftValue;\n if (leftToken instanceof PairToken) {\n keyCount = Object.keys(leftToken.ExtractSchema()).length;\n }\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n leftValue = getLeftValue(leftToken);\n } else {\n leftValue = { [leftToken.annot()]: getLeftValue(leftToken) };\n }\n\n const rightToken = this.createToken(args[1], this.idx + keyCount);\n let rightValue;\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n rightValue = getRightValue(rightToken);\n } else {\n rightValue = { [rightToken.annot()]: getRightValue(rightToken) };\n }\n\n const res = {\n ...leftValue,\n ...rightValue,\n };\n\n return res;\n }\n\n public Execute(val: any, semantics?: Semantic): { [key: string]: any } {\n const args = collapse(val, 'Pair');\n return this.traversal(\n (leftToken) => leftToken.Execute(args[0], semantics),\n (rightToken) => rightToken.Execute(args[1], semantics)\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema(): any {\n return this.traversal(\n (leftToken) => leftToken.ExtractSchema(),\n (rightToken) => rightToken.ExtractSchema()\n );\n }\n\n generateSchema(): PairTokenSchema {\n return {\n __michelsonType: PairToken.prim,\n schema: this.traversal(\n (leftToken) => {\n if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) {\n return leftToken.generateSchema().schema;\n } else {\n return leftToken.generateSchema();\n }\n },\n (rightToken) => {\n if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) {\n return rightToken.generateSchema().schema;\n } else {\n return rightToken.generateSchema();\n }\n }\n ),\n };\n }\n\n public compare(val1: any, val2: any) {\n const [leftToken, rightToken] = this.tokens();\n\n const getValue = (token: Token, args: any) => {\n if (token instanceof PairToken && !token.hasAnnotations()) {\n return args;\n } else {\n return args[token.annot()];\n }\n };\n\n if (leftToken instanceof ComparableToken && rightToken instanceof ComparableToken) {\n const result: number = leftToken.compare(\n getValue(leftToken, val1),\n getValue(leftToken, val2)\n );\n\n if (result === 0) {\n return rightToken.compare(getValue(rightToken, val1), getValue(rightToken, val2));\n }\n\n return result;\n }\n\n throw new TokenComparisonError(val1, val2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (PairToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.tokens().map((t) => t.findAndReturnTokens(tokenToFind, tokens));\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class NatValidationError extends TokenValidationError {\n name = 'NatValidationError';\n constructor(public value: any, public token: NatToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NatToken extends ComparableToken {\n static prim: 'nat' = 'nat' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n private isValid(val: any): NatValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new NatValidationError(val, this, `Value is not a number: ${val}`);\n } else if (bigNumber.isNegative()) {\n return new NatValidationError(val, this, `Value cannot be negative: ${val}`);\n } else {\n return null;\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[NatToken.prim]) {\n return semantic[NatToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NatToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NatToken.prim,\n schema: NatToken.prim,\n };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: NatToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return new BigNumber(int);\n }\n\n compare(nat1: string | number, nat2: string | number) {\n const o1 = Number(nat1);\n const o2 = Number(nat2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NatToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class StringToken extends ComparableToken {\n static prim: 'string' = 'string' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return StringToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: StringToken.prim,\n schema: StringToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[StringToken.prim]) {\n return semantic[StringToken.prim](val);\n }\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: StringToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (StringToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { b58decode, encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class AddressValidationError extends TokenValidationError {\n name = 'AddressValidationError';\n constructor(public value: any, public token: AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class AddressToken extends ComparableToken {\n static prim: 'address' = 'address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decode(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n private isValid(value: any): AddressValidationError | null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new AddressValidationError(value, this, `Address is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[AddressToken.prim]) {\n return semantic[AddressToken.prim](val);\n }\n\n return { string: val };\n }\n\n public Execute(val: { bytes: string; string: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new AddressValidationError(\n val,\n this,\n `cannot be missing both string and bytes: ${val}`\n );\n }\n\n return encodePubKey(val.bytes);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: AddressToken.prim,\n schema: AddressToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new AddressValidationError(\n { bytes, string },\n this,\n `cannot be missing both string and bytes ${{ string, bytes }}`\n );\n }\n\n return encodePubKey(bytes);\n }\n compare(address1: string, address2: string) {\n const isImplicit = (address: string) => {\n return address.startsWith('tz');\n };\n const implicit1 = isImplicit(address1);\n const implicit2 = isImplicit(address2);\n\n if (implicit1 && !implicit2) {\n return -1;\n } else if (implicit2 && !implicit1) {\n return 1;\n }\n return super.compare(address1, address2);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { MichelsonMap } from '../michelson-map';\nimport { MapTokenSchema } from '../schema/types';\nimport {\n ComparableToken,\n Semantic,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\n\nexport class MapValidationError extends TokenValidationError {\n name = 'MapValidationError';\n constructor(public value: any, public token: MapToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MapToken extends Token {\n static prim: 'map' = 'map' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get ValueSchema() {\n return this.createToken(this.val.args[1], 0);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n private isValid(value: any): MapValidationError | null {\n if (MichelsonMap.isMichelsonMap(value)) {\n return null;\n }\n\n return new MapValidationError(value, this, 'Value must be a MichelsonMap');\n }\n\n public Execute(val: any[], semantics?: Semantic): { [key: string]: any } {\n const map = new MichelsonMap(this.val);\n\n val.forEach((current) => {\n map.set(\n this.KeySchema.ToKey(current.args[0]),\n this.ValueSchema.Execute(current.args[1], semantics)\n );\n });\n return map;\n }\n\n private objLitToMichelsonMap(val: any): any {\n if (val instanceof MichelsonMap) return val;\n if (typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return new MichelsonMap();\n } else {\n return MichelsonMap.fromLiteral(val);\n }\n }\n return val;\n }\n\n public Encode(args: any[]): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args.pop());\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const val: MichelsonMap<any, any> = this.objLitToMichelsonMap(args);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[MapToken.prim]) {\n return semantic[MapToken.prim](val);\n }\n\n return Array.from(val.keys())\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .map((key) => {\n return {\n prim: 'Elt',\n args: [this.KeySchema.EncodeObject(key), this.ValueSchema.EncodeObject(val.get(key))],\n };\n });\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n map: {\n key: this.KeySchema.ExtractSchema(),\n value: this.ValueSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): MapTokenSchema {\n return {\n __michelsonType: MapToken.prim,\n schema: {\n key: this.KeySchema.generateSchema(),\n value: this.ValueSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MapToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n this.ValueSchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class BoolToken extends ComparableToken {\n static prim: 'bool' = 'bool' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): boolean {\n return String(val.prim).toLowerCase() === 'true' ? true : false;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return { prim: val ? 'True' : 'False' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding) {\n if (semantic && semantic[BoolToken.prim]) {\n return semantic[BoolToken.prim](val);\n }\n return { prim: val ? 'True' : 'False' };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BoolToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BoolToken.prim,\n schema: BoolToken.prim,\n };\n }\n\n ToBigMapKey(val: string): { key: { [key: string]: string }; type: { prim: string } } {\n return {\n key: this.EncodeObject(val) as any,\n type: { prim: BoolToken.prim },\n };\n }\n\n ToKey(val: string) {\n return this.EncodeObject(val);\n }\n\n compare(val1: any, val2: any) {\n if ((val1 && val2) || (!val1 && !val2)) {\n return 0;\n } else if (val1) {\n return 1;\n } else {\n return -1;\n }\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BoolToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n b58decodeL2Address,\n encodeL2Address,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\nimport {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from '../token';\n\nexport class TxRollupL2AddressValidationError extends TokenValidationError {\n name = 'TxRollupL2AddressValidationError';\n constructor(public value: unknown, public token: TxRollupL2AddressToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class TxRollupL2AddressToken extends ComparableToken {\n static prim: 'tx_rollup_l2_address' = 'tx_rollup_l2_address' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: any) {\n const decoded = b58decodeL2Address(val);\n return {\n key: { bytes: decoded },\n type: { prim: 'bytes' },\n };\n }\n\n private isValid(value: any): null {\n if (validateAddress(value) !== ValidationResult.VALID) {\n throw new TxRollupL2AddressValidationError(\n value,\n this,\n `tx_rollup_l2_address is not valid: ${value}`\n );\n }\n return null;\n }\n\n public Encode(args: string[]): any {\n const val = args.pop();\n if (!val) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `arg missing to encode: this -> \"${val}\"`\n );\n }\n // no need to test since method throws\n this.isValid(val);\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n // no need to test since method throws\n this.isValid(val);\n\n if (semantic && semantic[TxRollupL2AddressToken.prim]) {\n return semantic[TxRollupL2AddressToken.prim](val);\n }\n return { string: val };\n }\n\n public Execute(val: { bytes?: string; string?: string }): string {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new TxRollupL2AddressValidationError(\n val,\n this,\n `value cannot be missing string and byte value. must have one ${JSON.stringify(val)}`\n );\n }\n return encodeL2Address(val.bytes);\n }\n public ExtractSchema() {\n return TxRollupL2AddressToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TxRollupL2AddressToken.prim,\n schema: TxRollupL2AddressToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: { bytes?: string; string?: string }) {\n if (string) {\n return string;\n }\n if (!bytes) {\n throw new TxRollupL2AddressValidationError(\n bytes,\n this,\n `value cannot be missing string and byte value. must have one: bytes = ${bytes}`\n );\n }\n return encodeL2Address(bytes);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]): Token[] {\n if (TxRollupL2AddressToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TokenSchema } from './../schema/types';\nimport { encodePubKey, validateAddress, ValidationResult } from '@taquito/utils';\nimport { ContractTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ContractValidationError extends TokenValidationError {\n name = 'ContractValidationError';\n constructor(public value: any, public token: ContractToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ContractToken extends Token {\n static prim: 'contract' = 'contract' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(value: any): ContractValidationError | null {\n // tz1,tz2 and tz3 seems to be valid contract values (for Unit contract)\n if (validateAddress(value) !== ValidationResult.VALID) {\n return new ContractValidationError(value, this, 'Contract address is not valid');\n }\n\n return null;\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n if (!val.bytes) {\n throw new ContractValidationError(val, this, 'must contain bytes or string');\n }\n\n return encodePubKey(val.bytes);\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[ContractToken.prim]) {\n return semantic[ContractToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ContractToken.prim;\n }\n\n generateSchema(): ContractTokenSchema {\n const valueSchema = this.createToken(this.val.args[0], 0);\n return {\n __michelsonType: ContractToken.prim,\n schema: {\n parameter: this.val.args[0] ? valueSchema.generateSchema() : ({} as TokenSchema),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ContractToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ListTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, TokenValidationError, SemanticEncoding } from './token';\n\nexport class ListValidationError extends TokenValidationError {\n name = 'ListValidationError';\n constructor(public value: any, public token: ListToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ListToken extends Token {\n static prim: 'list' = 'list' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n private isValid(value: any): ListValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new ListValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n const schema = this.createToken(this.val.args[0], 0);\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val.reduce((prev: any, current: any) => {\n return [...prev, schema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const schema = this.createToken(this.val.args[0], 0);\n\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ListToken.prim]) {\n return semantic[ListToken.prim](args);\n }\n\n return args.reduce((prev: any, current: any) => {\n return [...prev, schema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [ListToken.prim]: this.valueSchema.ExtractSchema(),\n };\n }\n\n generateSchema(): ListTokenSchema {\n return {\n __michelsonType: ListToken.prim,\n schema: this.valueSchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ListToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class MutezValidationError extends TokenValidationError {\n name = 'MutezValidationError';\n constructor(public value: any, public token: MutezToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class MutezToken extends ComparableToken {\n static prim: 'mutez' = 'mutez' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any) {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return MutezToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: MutezToken.prim,\n schema: MutezToken.prim,\n };\n }\n\n private isValid(val: any): MutezValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new MutezValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: String(val).toString() };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[MutezToken.prim]) {\n return semantic[MutezToken.prim](val);\n }\n\n return { int: String(val).toString() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: MutezToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(mutez1: string | number, mutez2: string | number) {\n const o1 = Number(mutez1);\n const o2 = Number(mutez2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (MutezToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport {\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n Token,\n SemanticEncoding,\n} from '../token';\nimport { stripHexPrefix } from '@taquito/utils';\n\nexport class BytesValidationError extends TokenValidationError {\n name = 'BytesValidationError';\n constructor(public value: any, public token: BytesToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class BytesToken extends ComparableToken {\n static prim: 'bytes' = 'bytes' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { bytes: val },\n type: { prim: BytesToken.prim },\n };\n }\n\n private isValid(val: any): BytesValidationError | null {\n if (typeof val === 'string' && /^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new BytesValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n public Encode(args: any[]): any {\n let val = args.pop();\n val = stripHexPrefix(this.convertUint8ArrayToHexString(val));\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { bytes: String(val).toString() };\n }\n\n public EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n\n if (typeof val === 'string') {\n val = stripHexPrefix(val);\n }\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[BytesToken.prim]) {\n return semantic[BytesToken.prim](val);\n }\n\n return { bytes: String(val).toString() };\n }\n\n public Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return BytesToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: BytesToken.prim,\n schema: BytesToken.prim,\n };\n }\n\n public ToKey({ bytes, string }: any) {\n if (string) {\n return string;\n }\n\n return bytes;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (BytesToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { OptionTokenSchema } from '../schema/types';\nimport { Token, TokenFactory, Semantic, ComparableToken, SemanticEncoding } from './token';\n\nexport class OptionToken extends ComparableToken {\n static prim: 'option' = 'option' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public subToken(): Token {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n schema(): Token {\n return this.createToken(this.val.args[0], 0);\n }\n\n annot(): string {\n return Array.isArray(this.val.annots)\n ? super.annot()\n : this.createToken(this.val.args[0], this.idx).annot();\n }\n\n public Encode(args: any): any {\n const value = args;\n if (value === undefined || value === null) {\n return { prim: 'None' };\n } else if (\n Array.isArray(value) &&\n (value[value.length - 1] === undefined || value[value.length - 1] === null)\n ) {\n value.pop();\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().Encode(args)] };\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const value = args;\n\n if (value === undefined || value === null) {\n return { prim: 'None' };\n }\n\n return { prim: 'Some', args: [this.schema().EncodeObject(value, semantic)] };\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (val.prim === 'None') {\n return null;\n }\n\n return this.schema().Execute(val.args[0], semantics);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return this.schema().ExtractSchema();\n }\n\n generateSchema(): OptionTokenSchema {\n return {\n __michelsonType: OptionToken.prim,\n schema: this.schema().generateSchema(),\n };\n }\n\n public ExtractSignature() {\n return [...this.schema().ExtractSignature(), []];\n }\n\n get KeySchema(): ComparableToken {\n return this.schema() as any;\n }\n\n compare(val1: any, val2: any) {\n if (!val1) {\n return -1;\n } else if (!val2) {\n return 1;\n }\n return this.KeySchema.compare(val1, val2);\n }\n\n public ToKey(val: any) {\n return this.Execute(val);\n }\n\n public ToBigMapKey(val: any) {\n return {\n key: this.EncodeObject(val),\n type: this.typeWithoutAnnotations(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OptionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.subToken().findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../../schema/types';\nimport { Token, TokenFactory, ComparableToken, SemanticEncoding } from '../token';\n\nexport class TimestampToken extends ComparableToken {\n static prim: 'timestamp' = 'timestamp' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { string?: string; int?: string }) {\n if (val.string && /^\\d+$/.test(val.string)) {\n return new Date(Number(val.string) * 1000).toISOString();\n } else if (val.string) {\n return new Date(val.string).toISOString();\n } else if (val.int) {\n return new Date(Number(val.int) * 1000).toISOString();\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TimestampToken.prim]) {\n return semantic[TimestampToken.prim](val);\n }\n\n if (typeof val === 'number') {\n return { int: String(val) };\n } else {\n return { string: val };\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return TimestampToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: TimestampToken.prim,\n schema: TimestampToken.prim,\n };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: TimestampToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TimestampToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport BigNumber from 'bignumber.js';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class IntValidationError extends TokenValidationError {\n name = 'IntValidationError';\n constructor(public value: any, public token: IntToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class IntToken extends ComparableToken {\n static prim: 'int' = 'int' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): { [key: string]: any } {\n return new BigNumber(val[Object.keys(val)[0]]);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return IntToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n };\n }\n\n private isValid(val: any): IntValidationError | null {\n const bigNumber = new BigNumber(val);\n if (bigNumber.isNaN()) {\n return new IntValidationError(val, this, `Value is not a number: ${val}`);\n } else {\n return null;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[IntToken.prim]) {\n return semantic[IntToken.prim](val);\n }\n\n return { int: new BigNumber(val).toFixed() };\n }\n\n public ToBigMapKey(val: string | number) {\n return {\n key: { int: String(val) },\n type: { prim: IntToken.prim },\n };\n }\n\n public ToKey({ int }: any) {\n return int;\n }\n\n compare(int1: string | number, int2: string | number) {\n const o1 = Number(int1);\n const o2 = Number(int2);\n if (o1 === o2) {\n return 0;\n }\n\n return o1 < o2 ? -1 : 1;\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (IntToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ComparableToken, SemanticEncoding, Token, TokenFactory } from './token';\nimport { BaseTokenSchema } from '../schema/types';\nimport { UnitValue } from '../taquito-michelson-encoder';\n\nexport class UnitToken extends ComparableToken {\n static prim: 'unit' = 'unit' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Encode(args: any[]): any {\n args.pop();\n return { prim: 'Unit' };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[UnitToken.prim]) {\n return semantic[UnitToken.prim](val);\n }\n return { prim: 'Unit' };\n }\n\n public Execute(_val: { prim: string }) {\n return UnitValue;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return UnitToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: UnitToken.prim,\n schema: UnitToken.prim,\n };\n }\n\n compare(_val1: any, _val2: any) {\n return 0;\n }\n\n ToKey(_val: any) {\n return UnitValue;\n }\n\n ToBigMapKey(_val: any) {\n return {\n key: { prim: 'Unit' },\n type: { prim: UnitToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (UnitToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport {\n encodeKey,\n validatePublicKey,\n ValidationResult,\n Prefix,\n b58cdecode,\n prefix,\n} from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nconst publicKeyPrefixLength = 4;\n\nexport class KeyValidationError extends TokenValidationError {\n name = 'KeyValidationError';\n constructor(public value: any, public token: KeyToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyToken extends ComparableToken {\n static prim: 'key' = 'key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKey(val.bytes);\n }\n\n private isValid(value: any): KeyValidationError | null {\n if (validatePublicKey(value) !== ValidationResult.VALID) {\n return new KeyValidationError(value, this, 'Key is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[KeyToken.prim]) {\n return semantic[KeyToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyToken.prim,\n schema: KeyToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyToken.prim },\n };\n }\n\n compare(key1: string, key2: string): number {\n const keyPrefix1 = this.getPrefix(key1);\n const keyPrefix2 = this.getPrefix(key2);\n\n if (keyPrefix1 === Prefix.EDPK && keyPrefix2 !== Prefix.EDPK) {\n return -1;\n } else if (keyPrefix1 === Prefix.SPPK && keyPrefix2 !== Prefix.SPPK) {\n return keyPrefix2 === Prefix.EDPK ? 1 : -1;\n } else if (keyPrefix1 === Prefix.P2PK) {\n if (keyPrefix2 !== Prefix.P2PK) {\n return 1;\n }\n\n const keyBytes1 = this.getP256PublicKeyComparableBytes(key1);\n const keyBytes2 = this.getP256PublicKeyComparableBytes(key2);\n return Buffer.compare(keyBytes1, keyBytes2);\n }\n\n return super.compare(key1, key2);\n }\n\n private getPrefix(val: string) {\n return val.substring(0, publicKeyPrefixLength);\n }\n\n private getP256PublicKeyComparableBytes(p2pk: string) {\n return b58cdecode(p2pk, prefix[Prefix.P2PK]).slice(1);\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from '../token';\nimport { encodeKeyHash, validateKeyHash, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../../schema/types';\n\nexport class KeyHashValidationError extends TokenValidationError {\n name = 'KeyHashValidationError';\n constructor(public value: any, public token: KeyHashToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class KeyHashToken extends ComparableToken {\n static prim: 'key_hash' = 'key_hash' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { bytes: string; string: string }) {\n if (val.string) {\n return val.string;\n }\n\n return encodeKeyHash(val.bytes);\n }\n\n private isValid(value: any): KeyHashValidationError | null {\n if (validateKeyHash(value) !== ValidationResult.VALID) {\n return new KeyHashValidationError(value, this, `KeyHash is not valid: ${value}`);\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[KeyHashToken.prim]) {\n return semantic[KeyHashToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return KeyHashToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: KeyHashToken.prim,\n schema: KeyHashToken.prim,\n };\n }\n\n public ToKey({ string, bytes }: any) {\n if (string) {\n return string;\n }\n\n return encodeKeyHash(bytes);\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: KeyHashToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (KeyHashToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import {\n ComparableToken,\n SemanticEncoding,\n Token,\n TokenFactory,\n TokenValidationError,\n} from './token';\nimport { validateSignature, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nexport class SignatureValidationError extends TokenValidationError {\n name = 'SignatureValidationError';\n constructor(public value: any, public token: SignatureToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SignatureToken extends ComparableToken {\n static prim: 'signature' = 'signature' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: { [key: string]: string }): string {\n if (val.string) {\n return val.string;\n }\n // TODO decode the signature\n return val.bytes;\n }\n\n private isValid(value: any): SignatureValidationError | null {\n if (validateSignature(value) !== ValidationResult.VALID) {\n return new SignatureValidationError(value, this, 'Signature is not valid');\n }\n\n return null;\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[SignatureToken.prim]) {\n return semantic[SignatureToken.prim](val);\n }\n\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SignatureToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: SignatureToken.prim,\n schema: SignatureToken.prim,\n };\n }\n\n ToKey(val: any) {\n return this.Execute(val);\n }\n\n ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: SignatureToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SignatureToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { LambdaTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class LambdaToken extends Token {\n static prim: 'lambda' = 'lambda' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get paramSchema() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n get returnSchema() {\n return this.createToken(this.val.args[1], this.idx + 1);\n }\n\n public Execute(val: any) {\n if (val.string) {\n return val.string;\n } else {\n return val;\n }\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n return val;\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[LambdaToken.prim]) {\n return semantic[LambdaToken.prim](val);\n }\n return val;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n [LambdaToken.prim]: {\n parameters: this.paramSchema.ExtractSchema(),\n returns: this.returnSchema.ExtractSchema(),\n },\n };\n }\n\n generateSchema(): LambdaTokenSchema {\n return {\n __michelsonType: LambdaToken.prim,\n schema: {\n parameters: this.paramSchema.generateSchema(),\n returns: this.returnSchema.generateSchema(),\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (LambdaToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.createToken(this.val.args[0], this.idx).findAndReturnTokens(tokenToFind, tokens);\n this.createToken(this.val.args[1], this.idx).findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory } from './token';\n\nexport class OperationToken extends Token {\n static prim: 'operation' = 'operation' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any): { [key: string]: any } {\n return val.string;\n }\n\n public Encode(...args: any[]): any {\n const val = args.pop();\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[OperationToken.prim]) {\n return semantic[OperationToken.prim](val);\n }\n return { string: val };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return OperationToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: OperationToken.prim,\n schema: OperationToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (OperationToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SetTokenSchema } from '../schema/types';\nimport {\n Token,\n TokenFactory,\n Semantic,\n TokenValidationError,\n ComparableToken,\n SemanticEncoding,\n} from './token';\n\nexport class SetValidationError extends TokenValidationError {\n name = 'SetValidationError';\n constructor(public value: any, public token: SetToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SetToken extends Token {\n static prim: 'set' = 'set' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get KeySchema(): ComparableToken {\n return this.createToken(this.val.args[0], 0) as any;\n }\n\n private isValid(value: any): SetValidationError | null {\n if (Array.isArray(value)) {\n return null;\n }\n\n return new SetValidationError(value, this, 'Value must be an array');\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return val\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n public Execute(val: any, semantics?: Semantic) {\n return val.reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.Execute(current, semantics)];\n }, []);\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(args);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[SetToken.prim]) {\n return semantic[SetToken.prim](args);\n }\n\n return args\n .sort((a: any, b: any) => this.KeySchema.compare(a, b))\n .reduce((prev: any, current: any) => {\n return [...prev, this.KeySchema.EncodeObject(current)];\n }, []);\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return SetToken.prim;\n }\n\n generateSchema(): SetTokenSchema {\n return {\n __michelsonType: SetToken.prim,\n schema: this.KeySchema.generateSchema(),\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SetToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.KeySchema.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import {\n Token,\n TokenFactory,\n ComparableToken,\n TokenValidationError,\n SemanticEncoding,\n} from './token';\nimport { validateChain, ValidationResult } from '@taquito/utils';\nimport { BaseTokenSchema } from '../schema/types';\n\nexport class ChainIDValidationError extends TokenValidationError {\n name = 'ChainIDValidationError';\n constructor(public value: any, public token: ChainIDToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class ChainIDToken extends ComparableToken {\n static prim: 'chain_id' = 'chain_id' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(value: any): ChainIDValidationError | null {\n if (validateChain(value) !== ValidationResult.VALID) {\n return new ChainIDValidationError(value, this, 'ChainID is not valid');\n }\n\n return null;\n }\n\n public Execute(val: any): string {\n return val[Object.keys(val)[0]];\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChainIDToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChainIDToken.prim,\n schema: ChainIDToken.prim,\n };\n }\n\n public Encode(args: any[]): any {\n const val = args.pop();\n\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n return { string: val };\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChainIDToken.prim]) {\n return semantic[ChainIDToken.prim](val);\n }\n\n return { string: val };\n }\n\n public ToKey({ string }: any) {\n return string;\n }\n\n public ToBigMapKey(val: string) {\n return {\n key: { string: val },\n type: { prim: ChainIDToken.prim },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChainIDToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { TicketTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketError extends Error {\n name = 'TicketEncodeError';\n\n constructor() {\n super('Tickets cannot be sent to the blockchain; they are created on-chain');\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketToken extends Token {\n static prim: 'ticket' = 'ticket' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n public Encode(_args: any[]): any {\n throw new EncodeTicketError();\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketToken.prim]) {\n return semantic[TicketToken.prim](args, this.val);\n }\n throw new EncodeTicketError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketToken.prim]) {\n return semantics[TicketToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketTokenSchema {\n return {\n __michelsonType: TicketToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { TicketDeprecatedTokenSchema } from '../schema/types';\nimport { IntToken } from './comparable/int';\nimport { ContractToken } from './contract';\nimport { Token, TokenFactory, Semantic, SemanticEncoding } from './token';\n\n/**\n * @category Error\n * @description Error that indicates a failure when encoding and sending a ticket to the blockchain\n */\nexport class EncodeTicketDeprecatedError extends Error {\n name = 'TicketDeprecatedEncodeError';\n\n constructor() {\n super('Ticket_deprecated cannot be sent to the blockchain; they are created on-chain');\n }\n}\n\nconst ticketerType = { prim: 'contract' };\nconst amountType = { prim: 'int' };\n\nexport class TicketDeprecatedToken extends Token {\n static prim: 'ticket_deprecated' = 'ticket_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n get valueToken() {\n return this.createToken(this.val.args[0], this.idx);\n }\n\n public Encode(_args: any[]): any {\n throw new EncodeTicketDeprecatedError();\n }\n\n public EncodeObject(args: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[TicketDeprecatedToken.prim]) {\n return semantic[TicketDeprecatedToken.prim](args, this.val);\n }\n throw new EncodeTicketDeprecatedError();\n }\n\n public Execute(val: any, semantics?: Semantic) {\n if (semantics && semantics[TicketDeprecatedToken.prim]) {\n return semantics[TicketDeprecatedToken.prim](val, this.val);\n }\n const ticketer = this.createToken(ticketerType, this.idx);\n const value = this.valueToken;\n const amount = this.createToken(amountType, this.idx);\n\n if (undefined === val.args[2] && undefined !== val.args[1].args) {\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1].args[0], semantics),\n amount: amount.Execute(val.args[1].args[1], semantics),\n };\n }\n\n return {\n ticketer: ticketer.Execute(val.args[0], semantics),\n value: value.Execute(val.args[1], semantics),\n amount: amount.Execute(val.args[2], semantics),\n };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return {\n ticketer: ContractToken.prim,\n value: this.valueToken.ExtractSchema(),\n amount: IntToken.prim,\n };\n }\n\n generateSchema(): TicketDeprecatedTokenSchema {\n return {\n __michelsonType: TicketDeprecatedToken.prim,\n schema: {\n value: this.valueToken.generateSchema(),\n ticketer: {\n __michelsonType: ContractToken.prim,\n schema: ContractToken.prim,\n },\n amount: {\n __michelsonType: IntToken.prim,\n schema: IntToken.prim,\n },\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (TicketDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n this.valueToken.findAndReturnTokens(tokenToFind, tokens);\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class NeverTokenError extends TokenValidationError {\n name = 'NeverTokenError';\n constructor(public value: any, public token: NeverToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class NeverToken extends Token {\n static prim: 'never' = 'never' as const;\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n public Encode(args: any[]): any {\n const val = args.pop();\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[NeverToken.prim]) {\n return semantic[NeverToken.prim](val);\n }\n throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.');\n }\n public Execute(val: any) {\n throw new NeverTokenError(val, this, 'There is no literal value for the type never.');\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return NeverToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: NeverToken.prim,\n schema: NeverToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (NeverToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingStateTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingStateValidationError extends TokenValidationError {\n name = 'SaplingStateValidationError';\n constructor(public value: any, public token: SaplingStateToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingStateToken extends Token {\n static prim: 'sapling_state' = 'sapling_state' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any) {\n return typeof val === 'object' && Object.keys(val).length === 0;\n }\n\n Execute(val: { int: string }, semantic?: Semantic) {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val, this.val);\n }\n if ('int' in val) {\n return val.int;\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Sapling state is expecting an object with an int property. Got ${JSON.stringify(val)}`\n );\n }\n }\n\n Encode(args: any[]): any {\n const val = args.pop();\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[SaplingStateToken.prim]) {\n return semantic[SaplingStateToken.prim](val);\n }\n if (this.isValid(val)) {\n return [];\n } else {\n throw new SaplingStateValidationError(\n val,\n this,\n `Invalid sapling_state. Received: ${val} while expecting: {}`\n );\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingStateToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingStateTokenSchema {\n return {\n __michelsonType: SaplingStateToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingStateToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionValidationError extends TokenValidationError {\n name = 'SaplingTransactionValidationError';\n constructor(public value: any, public token: SaplingTransactionToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionToken extends Token {\n static prim: 'sapling_transaction' = 'sapling_transaction' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n Execute(_val: any) {\n throw new SaplingTransactionValidationError(\n _val,\n this,\n 'There is no literal value for the sapling_transaction type.'\n );\n }\n\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionToken.prim]) {\n return semantic[SaplingTransactionToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionTokenSchema {\n return {\n __michelsonType: SaplingTransactionToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { SaplingTransactionDeprecatedTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class SaplingTransactionDeprecatedValidationError extends TokenValidationError {\n name = 'SaplingTransactionDeprecatedValidationError';\n constructor(public value: any, public token: SaplingTransactionDeprecatedToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class SaplingTransactionDeprecatedToken extends Token {\n static prim: 'sapling_transaction_deprecated' = 'sapling_transaction_deprecated' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n Execute(_val: any) {\n throw new SaplingTransactionDeprecatedValidationError(\n _val,\n this,\n 'There is no literal value for the sapling_transaction_deprecated type.'\n );\n }\n\n private validateBytes(val: any) {\n const bytes = /^(0x|0X)?([0-9a-fA-F]*$)/.exec(val);\n if (bytes && bytes[2].length % 2 === 0) {\n return bytes[2];\n } else {\n throw new SaplingTransactionDeprecatedValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: Uint8Array | string) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]): any {\n let val = args.pop();\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n return { bytes: String(val).toString() };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.validateBytes(this.convertUint8ArrayToHexString(val));\n if (semantic && semantic[SaplingTransactionDeprecatedToken.prim]) {\n return semantic[SaplingTransactionDeprecatedToken.prim](val);\n }\n return { bytes: String(val).toString() };\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return {\n [SaplingTransactionDeprecatedToken.prim]: {\n 'memo-size': Number(this.val.args[0]['int']),\n },\n };\n }\n\n generateSchema(): SaplingTransactionDeprecatedTokenSchema {\n return {\n __michelsonType: SaplingTransactionDeprecatedToken.prim,\n schema: {\n memoSize: this.val.args[0]['int'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (SaplingTransactionDeprecatedToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381frValidationError extends TokenValidationError {\n name = 'Bls12381frValidationError';\n constructor(public value: any, public token: Bls12381frToken, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381frToken extends Token {\n // An element of the BLS12-381 scalar field Fr\n // see https://tezos.gitlab.io/michelson-reference/#type-bls12_381_fr\n static prim: 'bls12_381_fr' = 'bls12_381_fr' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381frValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381frValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n EncodeObject(val: string | Uint8Array | number, semantic?: SemanticEncoding) {\n if (semantic && semantic[Bls12381frToken.prim]) {\n return semantic[Bls12381frToken.prim](val);\n }\n if (typeof val === 'number') {\n return { int: val.toString() };\n } else {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381frToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381frToken.prim,\n schema: Bls12381frToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381frToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g1ValidationError extends TokenValidationError {\n name = 'Bls12381g1ValidationError';\n constructor(public value: any, public token: Bls12381g1Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g1Token extends Token {\n // A point on the BLS12-381 curve G1\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g1\n static prim: 'bls12_381_g1' = 'bls12_381_g1' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381g1ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g1ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[Bls12381g1Token.prim]) {\n return semantic[Bls12381g1Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g1Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g1Token.prim,\n schema: Bls12381g1Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g1Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class Bls12381g2ValidationError extends TokenValidationError {\n name = 'Bls12381g2ValidationError';\n constructor(public value: any, public token: Bls12381g2Token, message: string) {\n super(value, token, message);\n }\n}\nexport class Bls12381g2Token extends Token {\n // A point on the BLS12-381 curve G2\n // See https://tezos.gitlab.io/michelson-reference/#type-bls12_381_g2\n static prim: 'bls12_381_g2' = 'bls12_381_g2' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): Bls12381g2ValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new Bls12381g2ValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n if (semantic && semantic[Bls12381g2Token.prim]) {\n return semantic[Bls12381g2Token.prim](val);\n }\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return Bls12381g2Token.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: Bls12381g2Token.prim,\n schema: Bls12381g2Token.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (Bls12381g2Token.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestValidationError extends TokenValidationError {\n name = 'ChestValidationError';\n constructor(public value: any, public token: ChestToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestToken extends Token {\n static prim: 'chest' = 'chest' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): ChestValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChestToken.prim]) {\n return semantic[ChestToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestToken.prim,\n schema: ChestToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { BaseTokenSchema } from '../schema/types';\nimport { SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class ChestKeyValidationError extends TokenValidationError {\n name = 'ChestKeyValidationError';\n constructor(public value: any, public token: ChestKeyToken, message: string) {\n super(value, token, message);\n }\n}\nexport class ChestKeyToken extends Token {\n static prim: 'chest_key' = 'chest_key' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n private isValid(val: any): ChestKeyValidationError | null {\n if (/^[0-9a-fA-F]*$/.test(val) && val.length % 2 === 0) {\n return null;\n } else {\n return new ChestKeyValidationError(val, this, `Invalid bytes: ${val}`);\n }\n }\n\n private convertUint8ArrayToHexString(val: any) {\n return val.constructor === Uint8Array ? Buffer.from(val).toString('hex') : val;\n }\n\n Encode(args: any[]) {\n let val = args.pop();\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n return { bytes: val };\n }\n\n EncodeObject(val: string | Uint8Array, semantic?: SemanticEncoding) {\n val = this.convertUint8ArrayToHexString(val);\n const err = this.isValid(val);\n if (err) {\n throw err;\n }\n\n if (semantic && semantic[ChestKeyToken.prim]) {\n return semantic[ChestKeyToken.prim](val);\n }\n\n return { bytes: val };\n }\n\n Execute(val: any): string {\n return val.bytes;\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return ChestKeyToken.prim;\n }\n\n generateSchema(): BaseTokenSchema {\n return {\n __michelsonType: ChestKeyToken.prim,\n schema: ChestKeyToken.prim,\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (ChestKeyToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { ConstantTokenSchema } from '../schema/types';\nimport { Semantic, SemanticEncoding, Token, TokenFactory, TokenValidationError } from './token';\n\nexport class GlobalConstantEncodingError extends TokenValidationError {\n name = 'GlobalConstantEncodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantDecodingError extends TokenValidationError {\n name = 'GlobalConstantDecodingError';\n constructor(public value: any, public token: GlobalConstantToken, message: string) {\n super(value, token, message);\n }\n}\n\nexport class GlobalConstantToken extends Token {\n static prim: 'constant' = 'constant' as const;\n\n constructor(\n protected val: { prim: string; args: any[]; annots?: any[] },\n protected idx: number,\n protected fac: TokenFactory\n ) {\n super(val, idx, fac);\n }\n\n public Execute(val: any, semantic?: Semantic) {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val as any, this.val);\n } else {\n throw new GlobalConstantDecodingError(\n val,\n this,\n `Unable to decode a value represented by a global constants. Please provide an expanded script to the Michelson-Encoder or semantics for the decoding. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n }\n\n public Encode(args: any[]): any {\n throw new GlobalConstantEncodingError(\n args,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n public EncodeObject(val: any, semantic?: SemanticEncoding): any {\n if (semantic && semantic[GlobalConstantToken.prim]) {\n return semantic[GlobalConstantToken.prim](val);\n }\n throw new GlobalConstantEncodingError(\n val,\n this,\n `Unable to encode a script containing global constants. Please provide an expanded script to the Michelson-Encoder. The following global constant hash was encountered: ${this.val.args[0]['string']}.`\n );\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n public ExtractSchema() {\n return GlobalConstantToken.prim;\n }\n\n generateSchema(): ConstantTokenSchema {\n return {\n __michelsonType: GlobalConstantToken.prim,\n schema: {\n hash: this.val.args[0]['string'],\n },\n };\n }\n\n findAndReturnTokens(tokenToFind: string, tokens: Token[]) {\n if (GlobalConstantToken.prim === tokenToFind) {\n tokens.push(this);\n }\n return tokens;\n }\n}\n","import { PairToken } from './pair';\n\nimport { NatToken } from './comparable/nat';\n\nimport { StringToken } from './comparable/string';\n\nimport { BigMapToken } from './bigmap';\n\nimport { AddressToken } from './comparable/address';\n\nimport { MapToken } from './map';\n\nimport { BoolToken } from './comparable/bool';\n\nimport { TxRollupL2AddressToken } from './comparable/tx_rollup_l2_address';\n\nimport { OrToken } from './or';\n\nimport { ContractToken } from './contract';\n\nimport { ListToken } from './list';\nimport { MutezToken } from './comparable/mutez';\nimport { BytesToken } from './comparable/bytes';\nimport { OptionToken } from './option';\nimport { TimestampToken } from './comparable/timestamp';\nimport { IntToken } from './comparable/int';\nimport { UnitToken } from './unit';\nimport { KeyToken } from './key';\nimport { KeyHashToken } from './comparable/key_hash';\nimport { SignatureToken } from './signature';\nimport { LambdaToken } from './lambda';\nimport { OperationToken } from './operation';\nimport { SetToken } from './set';\nimport { ChainIDToken } from './chain-id';\nimport { TicketToken } from './ticket';\nimport { TicketDeprecatedToken } from './ticket-deprecated';\nimport { NeverToken } from './never';\nimport { SaplingStateToken } from './sapling-state';\nimport { SaplingTransactionToken } from './sapling-transaction';\nimport { SaplingTransactionDeprecatedToken } from './sapling-transaction-deprecated';\nimport { Bls12381frToken } from './bls12-381-fr';\nimport { Bls12381g1Token } from './bls12-381-g1';\nimport { Bls12381g2Token } from './bls12-381-g2';\nimport { ChestToken } from './chest';\nimport { ChestKeyToken } from './chest-key';\nimport { GlobalConstantToken } from './constant';\n\nexport const tokens = [\n PairToken,\n NatToken,\n StringToken,\n BigMapToken,\n AddressToken,\n TxRollupL2AddressToken,\n MapToken,\n BoolToken,\n OrToken,\n ContractToken,\n ListToken,\n MutezToken,\n BytesToken,\n OptionToken,\n TimestampToken,\n IntToken,\n UnitToken,\n KeyToken,\n KeyHashToken,\n SignatureToken,\n LambdaToken,\n OperationToken,\n SetToken,\n ChainIDToken,\n TicketToken,\n TicketDeprecatedToken,\n NeverToken,\n SaplingStateToken,\n SaplingTransactionToken,\n SaplingTransactionDeprecatedToken,\n Bls12381frToken,\n Bls12381g1Token,\n Bls12381g2Token,\n ChestToken,\n ChestKeyToken,\n GlobalConstantToken,\n];\n","import { tokens } from './tokens';\nimport { Token } from './token';\nimport { PairToken } from './pair';\n\n/**\n * @category Error\n * @description Error that indicates a script having an invalid type or it being unsupported by the Michelson Encoder. Note some protocol changes might affect this, we encourage users to open an issue so we can look into implementing support for said types.\n */\nexport class InvalidTokenError extends Error {\n name = 'Invalid token error';\n constructor(public message: string, public data: any) {\n super(message);\n }\n}\n\nexport function createToken(val: any, idx: number): Token {\n if (Array.isArray(val)) {\n return new PairToken(val, idx, createToken);\n }\n\n const t = tokens.find((x) => x.prim === val.prim);\n if (!t) {\n throw new InvalidTokenError('Malformed data expected a value with a valid prim property', val);\n }\n return new t(val, idx, createToken);\n}\n","/**\n * @category Error\n * @description Error that indicates a failure when encoding (transforming JS parameter into JSON Michelson)the parameter of the view\n */\nexport class ViewEncodingError extends Error {\n name = 'ViewEncodingError';\n\n constructor(public smartContractViewName: string, public originalError: any) {\n super(`Unable to encode the parameter of the view: ${smartContractViewName}.`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid on-chain view found on the script\n */\nexport class InvalidScriptError extends Error {\n name = 'InvalidScriptError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid RPC response being passed or used\n */\nexport class InvalidRpcResponseError extends Error {\n public name = 'InvalidRpcResponseError';\n constructor(public script: any) {\n super(`Invalid RPC response passed as argument(s)`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure that occurred during encoding\n */\nexport class ParameterEncodingError extends Error {\n public name = 'ParameterEncodingError';\n constructor(public message: string, public args: any, public originalError: any) {\n super(`\n ${message}. Error encountered when trying to encode arguments: \\n\n [${args}]\n `);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map schema being passed or used\n */\nexport class InvalidBigMapSchema extends Error {\n public name = 'InvalidBigMapSchema';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid big map diff being passed or used\n */\nexport class InvalidBigMapDiff extends Error {\n public name = 'InvalidBigMapDiff';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode big maps\n */\nexport class BigMapEncodingError extends Error {\n public name = 'BigMapEncodingError';\n constructor(private obj: string, public details: any) {\n super(`Unable to encode ${obj}. ${details}`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to encode storage\n */\nexport class StorageEncodingError extends Error {\n public name = 'StorageEncodingError';\n constructor(private obj: string, public details: any) {\n super(`Unable to encode ${obj}. ${details}`);\n }\n}\n\n/**\n * @category Error\n * @description General error that indicates a function not being passed a necessary argument\n */\nexport class MissingArgumentError extends Error {\n public name = 'MissingArgumentError';\n constructor(public message: string) {\n super(message);\n }\n}\n","import {\n MichelsonV1Expression,\n MichelsonV1ExpressionBase,\n MichelsonV1ExpressionExtended,\n ScriptResponse,\n} from '@taquito/rpc';\nimport { BigMapToken } from '../tokens/bigmap';\nimport { createToken } from '../tokens/createToken';\nimport { MapToken } from '../tokens/map';\nimport { OrToken } from '../tokens/or';\nimport { PairToken } from '../tokens/pair';\nimport { TicketToken } from '../tokens/ticket';\nimport { TicketDeprecatedToken } from '../tokens/ticket-deprecated';\nimport {\n BigMapKeyType,\n Semantic,\n SemanticEncoding,\n Token,\n TokenValidationError,\n} from '../tokens/token';\nimport {\n InvalidRpcResponseError,\n InvalidBigMapSchema,\n InvalidBigMapDiff,\n BigMapEncodingError,\n StorageEncodingError,\n MissingArgumentError,\n} from './error';\nimport { RpcTransaction } from './model';\nimport { Falsy, TokenSchema } from './types';\n\nconst schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol');\n\n// collapse comb pair\nfunction collapse(\n val: Token['val'] | MichelsonV1Expression,\n prim: string = PairToken.prim\n): Token['val'] {\n if (Array.isArray(val)) {\n return collapse(\n {\n prim: prim,\n args: val,\n },\n prim\n );\n }\n const extended = val as MichelsonV1ExpressionExtended;\n if (extended.prim === prim && extended.args && extended.args.length > 2) {\n return {\n ...extended,\n args: [\n extended.args?.[0],\n {\n prim: prim,\n args: extended.args?.slice(1),\n },\n ],\n };\n }\n return extended;\n}\n\nfunction deepEqual(a: MichelsonV1Expression, b: MichelsonV1Expression): boolean {\n const ac = collapse(a);\n const bc = collapse(b);\n return (\n ac.prim === bc.prim &&\n ((ac.args === undefined && bc.args === undefined) ||\n (ac.args !== undefined &&\n bc.args !== undefined &&\n ac.args.length === bc.args.length &&\n ac.args.every((v, i) => deepEqual(v, bc.args?.[i] ?? {})))) &&\n ((ac.annots === undefined && bc.annots === undefined) ||\n (ac.annots !== undefined &&\n bc.annots !== undefined &&\n ac.annots.length === bc.annots.length &&\n ac.annots.every((v, i) => v === bc.annots?.[i])))\n );\n}\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class Schema {\n private root: Token;\n\n public [schemaTypeSymbol] = true;\n\n public static isSchema(obj: Schema): boolean {\n return obj && obj[schemaTypeSymbol] === true;\n }\n\n // TODO: Should we deprecate this?\n private bigMap?: BigMapToken;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const storage: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x) => {\n if (!Array.isArray(x)) {\n const checkExtended = x as MichelsonV1ExpressionExtended;\n if (checkExtended.prim) {\n return checkExtended.prim === 'storage';\n } else {\n return false;\n }\n } else {\n // storage passed along as original storage value\n this.fromRPCResponse({ script: { code: x, storage: val.script.storage } });\n }\n }) as MichelsonV1ExpressionExtended);\n\n if (!storage || !Array.isArray(storage.args)) {\n throw new InvalidRpcResponseError(val.script);\n }\n\n return new Schema(storage.args[0]);\n }\n\n private isExpressionExtended(\n val: any\n ): val is Required<Pick<MichelsonV1ExpressionExtended, 'prim' | 'args'>> {\n return 'prim' in val && Array.isArray(val.args);\n }\n\n constructor(readonly val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n\n if (this.root instanceof BigMapToken) {\n this.bigMap = this.root;\n } else if (this.isExpressionExtended(val) && val.prim === 'pair') {\n const exp = val.args[0];\n if (this.isExpressionExtended(exp) && exp.prim === 'big_map') {\n this.bigMap = new BigMapToken(exp, 0, createToken);\n }\n }\n }\n\n private removeTopLevelAnnotation(obj: any) {\n // PairToken and OrToken can have redundant top level annotation in their storage\n if (this.root instanceof PairToken || this.root instanceof OrToken) {\n if (this.root.hasAnnotations() && typeof obj === 'object' && Object.keys(obj).length === 1) {\n return obj[Object.keys(obj)[0]];\n }\n }\n\n return obj;\n }\n\n Execute(val: any, semantics?: Semantic) {\n const storage = this.root.Execute(val, semantics);\n\n return this.removeTopLevelAnnotation(storage);\n }\n\n Typecheck(val: any) {\n if (this.root instanceof BigMapToken && Number.isInteger(Number(val))) {\n return true;\n }\n if (this.root instanceof TicketToken && val.ticketer && val.value && val.amount) {\n return true;\n }\n if (this.root instanceof TicketDeprecatedToken && val.ticketer && val.value && val.amount) {\n return true;\n }\n if (this.root instanceof MapToken && this.root.ValueSchema instanceof BigMapToken) {\n return true;\n }\n try {\n this.root.EncodeObject(val);\n return true;\n } catch (ex) {\n return false;\n }\n }\n\n ExecuteOnBigMapDiff(diff: any[], semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n if (!Array.isArray(diff)) {\n throw new InvalidBigMapDiff('Big map diff must be an array');\n }\n\n const eltFormat = diff.map(({ key, value }) => ({ args: [key, value] }));\n\n return this.bigMap.Execute(eltFormat, semantics);\n }\n\n ExecuteOnBigMapValue(key: any, semantics?: Semantic) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('No big map schema');\n }\n\n return this.bigMap.ValueSchema.Execute(key, semantics);\n }\n\n EncodeBigMapKey(key: BigMapKeyType) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n try {\n return this.bigMap.KeySchema.ToBigMapKey(key);\n } catch (ex) {\n throw new BigMapEncodingError('big map key', ex);\n }\n }\n\n Encode(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new StorageEncodingError('storage object', ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.removeTopLevelAnnotation(this.root.ExtractSchema());\n }\n\n /**\n * @description Produce a representation of the storage schema.\n * Note: Provide guidance on how to write the storage object for the origination operation with Taquito.\n */\n generateSchema(): TokenSchema {\n return this.removeTopLevelAnnotation(this.root.generateSchema());\n }\n\n /**\n * @deprecated\n */\n ComputeState(tx: RpcTransaction[], state: any) {\n if (!this.bigMap) {\n throw new InvalidBigMapSchema('Big map schema is undefined');\n }\n\n const bigMap = tx.reduce((prev, current) => {\n return {\n ...prev,\n ...this.ExecuteOnBigMapDiff(current.contents[0].metadata.operation_result.big_map_diff),\n };\n }, {});\n\n return {\n ...this.Execute(state),\n [this.bigMap.annot()]: bigMap,\n };\n }\n\n /**\n * @description Look up in top-level pairs of the storage to find a value matching the specified type\n *\n * @returns The first value found that match the type or `undefined` if no value is found\n *\n * @param storage storage to parse to find the value\n * @param valueType type of value to look for\n *\n */\n FindFirstInTopLevelPair<T extends MichelsonV1Expression>(storage: any, valueType: any) {\n return this.findValue(this.root['val'], storage, valueType) as T | undefined;\n }\n\n // TODO check these type casts\n private findValue(\n schema: MichelsonV1Expression,\n storage: any,\n valueToFind: any\n ): MichelsonV1ExpressionBase | undefined {\n if (deepEqual(valueToFind, schema)) {\n return storage;\n }\n if (Array.isArray(schema) || (schema as MichelsonV1ExpressionExtended).prim === 'pair') {\n const sch = collapse(schema);\n const strg = collapse(storage, 'Pair');\n if (sch.args === undefined || strg.args === undefined) {\n throw new MissingArgumentError('Tokens have no arguments'); // unlikely\n }\n if (sch.args[0])\n return (\n // unsafe\n this.findValue(sch.args[0] as MichelsonV1ExpressionExtended, strg.args[0], valueToFind) ||\n this.findValue(sch.args[1] as MichelsonV1ExpressionExtended, strg.args[1], valueToFind)\n );\n }\n }\n /**\n * @description Look up the schema to find any occurrence of a particular token.\n *\n * @returns an array of tokens of the specified kind or an empty array if no token was found\n *\n * @param tokenToFind string representing the prim property of the token to find\n *\n * @example\n * ```\n * Useful to find all global constants in a script, an array of GlobalConstantToken is returned:\n *\n * const schema = new Schema(script);\n * const allGlobalConstantTokens = schema.findToken('constant');\n * ```\n *\n */\n findToken(tokenToFind: string): Array<Token> {\n const tokens: Array<Token> = [];\n return this.root.findAndReturnTokens(tokenToFind, tokens);\n }\n}\n","import { createToken } from '../tokens/createToken';\nimport { Token, Semantic, TokenValidationError, SemanticEncoding } from '../tokens/token';\nimport { OrToken } from '../tokens/or';\nimport { OptionToken } from '../tokens/option';\nimport { ScriptResponse, MichelsonV1ExpressionExtended, MichelsonV1Expression } from '@taquito/rpc';\nimport { Falsy, TokenSchema } from './types';\nimport { InvalidRpcResponseError, ParameterEncodingError } from './error';\n\n/**\n * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature.\n */\nexport class ParameterSchema {\n private root: Token;\n\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const parameter: Falsy<MichelsonV1ExpressionExtended> =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.find((x: any) => x.prim === 'parameter') as MichelsonV1ExpressionExtended);\n if (!parameter || !Array.isArray(parameter.args)) {\n throw new InvalidRpcResponseError(val.script);\n }\n\n return new ParameterSchema(parameter.args[0]);\n }\n\n get isMultipleEntryPoint() {\n return (\n this.root instanceof OrToken ||\n (this.root instanceof OptionToken && this.root.subToken() instanceof OrToken)\n );\n }\n\n get hasAnnotation() {\n if (this.isMultipleEntryPoint) {\n return Object.keys(this.ExtractSchema())[0] !== '0';\n } else {\n return true;\n }\n }\n\n constructor(val: MichelsonV1Expression) {\n this.root = createToken(val, 0);\n }\n\n Execute(val: any, semantics?: Semantic) {\n return this.root.Execute(val, semantics);\n }\n\n Encode(...args: any[]) {\n try {\n return this.root.Encode(args.reverse());\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new ParameterEncodingError('Unable to encode parameter', args.toString(), ex);\n }\n }\n\n EncodeObject(value?: any, semantics?: SemanticEncoding) {\n try {\n return this.root.EncodeObject(value, semantics);\n } catch (ex) {\n if (ex instanceof TokenValidationError) {\n throw ex;\n }\n\n throw new ParameterEncodingError('Unable to encode parameter object', value, ex);\n }\n }\n\n /**\n * @deprecated ExtractSchema has been deprecated in favor of generateSchema\n *\n */\n ExtractSchema() {\n return this.root.ExtractSchema();\n }\n\n /**\n * @description Produce a schema grouping together all the entry points of a contract.\n */\n generateSchema(): TokenSchema {\n return this.root.generateSchema();\n }\n\n ExtractSignatures() {\n return this.root.ExtractSignature();\n }\n}\n","import { MichelsonV1Expression, MichelsonV1ExpressionExtended, ScriptResponse } from '@taquito/rpc';\nimport { createToken } from '../tokens/createToken';\nimport { Semantic, Token } from '../tokens/token';\nimport { InvalidScriptError, ViewEncodingError } from './error';\n\nexport class ViewSchema {\n readonly viewName: string;\n readonly viewArgsType: MichelsonV1ExpressionExtended;\n readonly viewReturnType: MichelsonV1ExpressionExtended;\n readonly instructions: MichelsonV1ExpressionExtended[];\n private rootArgsType: Token;\n private rootReturnType: Token;\n\n /**\n *\n * @description Create an instance of ViewSchema for each view in a script\n *\n * @param val contract script obtained from the RPC\n * @returns array of ViewSchema or empty array if there is no view in the contract\n */\n static fromRPCResponse(val: { script: ScriptResponse }) {\n const allViewSchema: ViewSchema[] = [];\n\n const views =\n val &&\n val.script &&\n Array.isArray(val.script.code) &&\n (val.script.code.filter((x: any) => x.prim === 'view') as MichelsonV1ExpressionExtended[]);\n\n if (views) {\n views.forEach((view) => {\n if (!view.args || view.args.length !== 4) {\n throw new InvalidScriptError(\n `Invalid on-chain view found in the script: ${JSON.stringify(view)}`\n );\n }\n allViewSchema.push(new ViewSchema(view.args));\n });\n }\n return allViewSchema;\n }\n\n constructor(val: MichelsonV1Expression[]) {\n if (val.length !== 4 || !('string' in val[0])) {\n throw new InvalidScriptError(`Invalid on-chain view: ${JSON.stringify(val)}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.viewName = val[0]['string']!;\n this.viewArgsType = val[1] as MichelsonV1ExpressionExtended;\n this.viewReturnType = val[2] as MichelsonV1ExpressionExtended;\n this.instructions = val[3] as MichelsonV1ExpressionExtended[];\n\n this.rootArgsType = createToken(this.viewArgsType, 0);\n this.rootReturnType = createToken(this.viewReturnType, 0);\n }\n\n /**\n *\n * @description Transform the view parameter into Michelson\n *\n * @param args parameter of the view in js format\n * @returns parameter of the view in Michelson\n */\n encodeViewArgs(args: any) {\n try {\n return this.rootArgsType.EncodeObject(args);\n } catch (ex) {\n throw new ViewEncodingError(this.viewName, ex);\n }\n }\n\n /**\n *\n * @description Transform the view result from Michelson to readable data\n *\n * @param val result of the view in JSON Michelson\n * @param semantics optional semantics to override the default decoding behavior\n * @returns result of the view in a readable format\n */\n decodeViewResult(val: any, semantics?: Semantic) {\n return this.rootReturnType.Execute(val, semantics);\n }\n\n /**\n *\n * @description Return the signature of the view parameter\n */\n extractArgsSchema() {\n return this.rootArgsType.ExtractSchema();\n }\n\n /**\n *\n * @description Return the format of the view result\n */\n extractResultSchema() {\n return this.rootReturnType.ExtractSchema();\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"c2f07ba0135cffe7f59befd3d51f550f39383974\",\n \"version\": \"16.1.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/michelson-encoder\n */\n\nexport * from './schema/storage';\nexport * from './schema/parameter';\nexport * from './schema/view-schema';\nexport * from './schema/error';\nexport * from './schema/types';\nexport { Semantic, SemanticEncoding, BigMapKeyType } from './tokens/token';\nexport * from './errors';\n\nexport const UnitValue = Symbol();\nexport const SaplingStateValue = {};\nexport * from './michelson-map';\nexport { VERSION } from './version';\nexport { Token } from './tokens/token';\n"],"names":["_a","collapse","ticketerType","amountType"],"mappings":"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"}
|