diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 0ab36f9..eea8b07 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -59,8 +59,9 @@ "typecheck": "tsc --noEmit", "fetch:openapi": "tsx scripts/fetch-openapi.ts", "fetch:arc56": "tsx scripts/fetch-arc56.ts", + "postfetch:arc56": "tsx scripts/clean-arc56.ts", "fetch:specs": "pnpm fetch:openapi && pnpm fetch:arc56", - "generate:clients": "algokit generate client src/contracts/ --language typescript --output src/contracts/{contract_name}Client.ts", + "generate:clients": "algokit generate client src/contracts/minimal/ --language typescript --output src/contracts/{contract_name}Client.ts", "generate:openapi": "openapi-ts", "generate": "pnpm fetch:specs && pnpm generate:clients && pnpm generate:openapi" }, @@ -75,6 +76,7 @@ "@hey-api/openapi-ts": "^0.64.5", "@tanstack/config": "^0.16.2", "@types/crypto-js": "^4.2.2", + "@types/node": "^22.13.9", "@types/node-fetch": "^2.6.12", "@vitest/coverage-v8": "^3.0.7", "@vitest/ui": "^3.0.7", @@ -82,6 +84,7 @@ "node-fetch": "^3.3.2", "publint": "^0.3.6", "tsx": "^4.19.3", + "type-fest": "^4.37.0", "vite": "^6.2.0", "vite-plugin-dts": "^4.5.0", "vite-tsconfig-paths": "^5.1.4", diff --git a/packages/sdk/scripts/clean-arc56.ts b/packages/sdk/scripts/clean-arc56.ts new file mode 100644 index 0000000..bf822cb --- /dev/null +++ b/packages/sdk/scripts/clean-arc56.ts @@ -0,0 +1,98 @@ +import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs' +import { join } from 'node:path' + +import type { JsonValue } from 'type-fest' + +const contractsDir = join(process.cwd(), 'src', 'contracts') +const minimalDir = join(contractsDir, 'minimal') + +// Create the minimal directory if it doesn't exist +if (!existsSync(minimalDir)) { + mkdirSync(minimalDir, { recursive: true }) +} + +const files = [ + { + source: 'NFDInstance.arc56.json', + target: 'NFDInstance.arc56.json', + }, + { + source: 'NFDRegistry.arc56.json', + target: 'NFDRegistry.arc56.json', + }, +] + +interface SourceInfoItem { + errorMessage?: string + teal?: number + source?: string + pc?: number[] + [key: string]: JsonValue | undefined +} + +interface ApprovalSourceInfo { + sourceInfo: SourceInfoItem[] + [key: string]: JsonValue | SourceInfoItem[] | undefined +} + +interface Arc56Json { + source?: { + approval?: { bytecode: string } + clear?: { bytecode: string } + } + sourceInfo?: { + approval?: ApprovalSourceInfo + clear?: ApprovalSourceInfo + [key: string]: ApprovalSourceInfo | undefined + } + [key: string]: + | JsonValue + | { [key: string]: ApprovalSourceInfo | undefined } + | { approval?: { bytecode: string }; clear?: { bytecode: string } } + | undefined +} + +files.forEach(({ source, target }) => { + const sourceFilePath = join(contractsDir, source) + const targetFilePath = join(minimalDir, target) + + // Read and parse the JSON file + const content = JSON.parse(readFileSync(sourceFilePath, 'utf-8')) as Arc56Json + + // Remove the top-level source property + delete content.source + + // If sourceInfo exists, filter it + if (content.sourceInfo) { + // Handle approval sourceInfo + if (content.sourceInfo.approval?.sourceInfo) { + content.sourceInfo.approval.sourceInfo = + content.sourceInfo.approval.sourceInfo.filter( + (info): info is SourceInfoItem => + info && typeof info === 'object' && 'errorMessage' in info, + ) + } + + // Handle clear sourceInfo if it exists + if (content.sourceInfo.clear?.sourceInfo) { + content.sourceInfo.clear.sourceInfo = + content.sourceInfo.clear.sourceInfo.filter( + (info): info is SourceInfoItem => + info && typeof info === 'object' && 'errorMessage' in info, + ) + } + } + + // Write the modified content to the target file + writeFileSync(targetFilePath, JSON.stringify(content, null, 2)) + + const originalSize = readFileSync(sourceFilePath).length + const newSize = readFileSync(targetFilePath).length + const reduction = (((originalSize - newSize) / originalSize) * 100).toFixed(1) + + console.log( + `Created ${join('minimal', target)}: Size reduced by ${reduction}% from original`, + ) +}) + +console.log('Finished creating minimal ARC56 files') diff --git a/packages/sdk/src/contracts/NFDInstanceClient.ts b/packages/sdk/src/contracts/NFDInstanceClient.ts index 47e60e9..83ce821 100644 --- a/packages/sdk/src/contracts/NFDInstanceClient.ts +++ b/packages/sdk/src/contracts/NFDInstanceClient.ts @@ -24,7 +24,7 @@ import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerR import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk' import SimulateResponse = modelsv2.SimulateResponse -export const APP_SPEC: Arc56Contract = {"name":"NFDInstance","desc":"","methods":[{"name":"createApplication","args":[{"name":"nfdName","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"purchaseAmount","type":"uint64"},{"name":"expTime","type":"uint64"},{"name":"commission1Addr","type":"address"},{"name":"commission1Pct","type":"uint64"},{"name":"commission2Addr","type":"address"},{"name":"commission2Pct","type":"uint64"},{"name":"segmentRootAppId","type":"uint64"},{"name":"segmentRootCommissionAddr","type":"address"}],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]}},{"name":"updateApplication","args":[{"name":"versionNum","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["UpdateApplication"]}},{"name":"gas","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"mintAsa","args":[{"name":"nfdName","type":"string"},{"name":"url","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"deleteFields","args":[{"name":"fieldNames","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateSegmentCount","args":[{"name":"childNfdName","type":"string"},{"name":"childNfdAppID","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getFieldUpdateCost","readonly":true,"args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateFields","args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"readField","readonly":true,"args":[{"name":"fieldName","type":"byte[]"}],"returns":{"type":"byte[]"},"actions":{"create":[],"call":["NoOp"]}},{"name":"offerForSale","args":[{"name":"sellAmount","type":"uint64"},{"name":"reservedFor","type":"address"}],"returns":{"type":"void"},"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"cancelSale","args":[],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"postOffer","args":[{"name":"offer","type":"uint64"},{"name":"note","type":"string"}],"returns":{"type":"void"},"events":[{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"mintPayout","args":[{"name":"oneYearPrice","type":"uint64"},{"name":"segmentPlatformCostInAlgo","type":"uint64"}],"returns":{"type":"(uint64,address,uint64,address,uint64)","struct":"PayoutInfo"},"actions":{"create":[],"call":["NoOp"]}},{"name":"purchase","args":[{"name":"payment","type":"pay"}],"returns":{"type":"void"},"events":[{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"isAddressInField","readonly":true,"args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"bool"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getRenewPrice","readonly":true,"args":[],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateHash","args":[{"name":"hash","type":"byte[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"contractLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"segmentLock","args":[{"name":"lock","type":"bool"},{"name":"usdPrice","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptInLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptIn","args":[{"name":"assets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultSend","args":[{"name":"amount","type":"uint64"},{"name":"receiver","type":"address"},{"name":"note","type":"string"},{"name":"asset","type":"uint64"},{"name":"otherAssets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"renew","desc":"Renew adds more time to an existing NFDs expiration, or renews it if expired.\n\n\nAs part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded\nto v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check)\n\n\nIf already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price)\nExpirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future.\n\n\nIF the NFD is expired:\n x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they\n get it back as-is.\n x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where\n 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED!","args":[{"name":"payment","type":"pay","desc":"The payment transaction from which the renewal period is determined.."}],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"setPrimaryAddress","args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"registryAddingVerifiedAddress","desc":"Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified\nverified field.","args":[{"name":"fieldBeingVerified","type":"string","desc":"- MUST START with u.cav. (!)\ngets 'added' to 'set' in next arg - must be fixed-sized bytes"},{"name":"fieldSetName","type":"string","desc":"(must BE v.ca[...].as)"}],"returns":{"type":"bool","desc":"true if added or already present, false otherwise"},"events":[{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"registryRemovingVerifiedAddress","desc":"Approved call from registry instructing us to REMOVE an address from the specified verified address set","args":[{"name":"fieldBeingChanged","type":"string","desc":"The field being changed in the address registry."},{"name":"address","type":"address","desc":"The address to be removed from the field."},{"name":"mbrRefundDest","type":"address","desc":"the address to send reclaimed MBR (if any)\n boolean - true if valid removed"}],"returns":{"type":"bool"},"events":[{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}}],"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""},{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""},{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""},{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""},{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"arcs":[4,56],"structs":{"PayoutInfo":[{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}]},"state":{"schema":{"global":{"bytes":30,"ints":0},"local":{"bytes":0,"ints":0}},"keys":{"global":{},"local":{},"box":{}},"maps":{"global":{"globalState":{"keyType":"AVMBytes","valueType":"AVMBytes"}},"local":{},"box":{"boxes":{"keyType":"AVMBytes","valueType":"AVMBytes"}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"teal":15,"source":"contracts/NFDInstance.algo.ts:17","pc":[1,2]},{"teal":16,"source":"contracts/NFDInstance.algo.ts:17","pc":[3]},{"teal":17,"source":"contracts/NFDInstance.algo.ts:17","pc":[4,5]},{"teal":18,"source":"contracts/NFDInstance.algo.ts:17","pc":[6]},{"teal":19,"source":"contracts/NFDInstance.algo.ts:17","pc":[7,8]},{"teal":20,"source":"contracts/NFDInstance.algo.ts:17","pc":[9]},{"teal":21,"source":"contracts/NFDInstance.algo.ts:17","pc":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]},{"teal":25,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?","pc":[36]},{"teal":30,"source":"contracts/NFDInstance.algo.ts:43","pc":[37,38,39]},{"teal":31,"source":"contracts/NFDInstance.algo.ts:43","pc":[40]},{"teal":32,"source":"contracts/NFDInstance.algo.ts:43","pc":[41]},{"teal":33,"source":"contracts/NFDInstance.algo.ts:43","pc":[42]},{"teal":34,"source":"contracts/NFDInstance.algo.ts:43","pc":[43]},{"teal":37,"source":"contracts/NFDInstance.algo.ts:43","errorMessage":"argument 0 (segmentRootCommissionAddr) for createApplication must be a address","pc":[44]},{"teal":40,"source":"contracts/NFDInstance.algo.ts:42","pc":[45,46,47]},{"teal":41,"source":"contracts/NFDInstance.algo.ts:42","pc":[48]},{"teal":44,"source":"contracts/NFDInstance.algo.ts:41","pc":[49,50,51]},{"teal":45,"source":"contracts/NFDInstance.algo.ts:41","pc":[52]},{"teal":48,"source":"contracts/NFDInstance.algo.ts:40","pc":[53,54,55]},{"teal":49,"source":"contracts/NFDInstance.algo.ts:40","pc":[56]},{"teal":50,"source":"contracts/NFDInstance.algo.ts:40","pc":[57]},{"teal":51,"source":"contracts/NFDInstance.algo.ts:40","pc":[58]},{"teal":52,"source":"contracts/NFDInstance.algo.ts:40","pc":[59]},{"teal":55,"source":"contracts/NFDInstance.algo.ts:40","errorMessage":"argument 3 (commission2Addr) for createApplication must be a address","pc":[60]},{"teal":58,"source":"contracts/NFDInstance.algo.ts:39","pc":[61,62,63]},{"teal":59,"source":"contracts/NFDInstance.algo.ts:39","pc":[64]},{"teal":62,"source":"contracts/NFDInstance.algo.ts:38","pc":[65,66,67]},{"teal":63,"source":"contracts/NFDInstance.algo.ts:38","pc":[68]},{"teal":64,"source":"contracts/NFDInstance.algo.ts:38","pc":[69]},{"teal":65,"source":"contracts/NFDInstance.algo.ts:38","pc":[70]},{"teal":66,"source":"contracts/NFDInstance.algo.ts:38","pc":[71]},{"teal":69,"source":"contracts/NFDInstance.algo.ts:38","errorMessage":"argument 5 (commission1Addr) for createApplication must be a address","pc":[72]},{"teal":72,"source":"contracts/NFDInstance.algo.ts:37","pc":[73,74,75]},{"teal":73,"source":"contracts/NFDInstance.algo.ts:37","pc":[76]},{"teal":76,"source":"contracts/NFDInstance.algo.ts:36","pc":[77,78,79]},{"teal":77,"source":"contracts/NFDInstance.algo.ts:36","pc":[80]},{"teal":80,"source":"contracts/NFDInstance.algo.ts:35","pc":[81,82,83]},{"teal":81,"source":"contracts/NFDInstance.algo.ts:35","pc":[84]},{"teal":82,"source":"contracts/NFDInstance.algo.ts:35","pc":[85]},{"teal":83,"source":"contracts/NFDInstance.algo.ts:35","pc":[86]},{"teal":84,"source":"contracts/NFDInstance.algo.ts:35","pc":[87]},{"teal":87,"source":"contracts/NFDInstance.algo.ts:35","errorMessage":"argument 8 (buyer) for createApplication must be a address","pc":[88]},{"teal":90,"source":"contracts/NFDInstance.algo.ts:34","pc":[89,90,91]},{"teal":91,"source":"contracts/NFDInstance.algo.ts:34","pc":[92]},{"teal":92,"source":"contracts/NFDInstance.algo.ts:34","pc":[93]},{"teal":93,"source":"contracts/NFDInstance.algo.ts:34","pc":[94]},{"teal":94,"source":"contracts/NFDInstance.algo.ts:34","pc":[95]},{"teal":97,"source":"contracts/NFDInstance.algo.ts:34","errorMessage":"argument 9 (seller) for createApplication must be a address","pc":[96]},{"teal":100,"source":"contracts/NFDInstance.algo.ts:33","pc":[97,98,99]},{"teal":101,"source":"contracts/NFDInstance.algo.ts:33","pc":[100,101,102]},{"teal":104,"source":"contracts/NFDInstance.algo.ts:32","pc":[103,104,105]},{"teal":105,"source":"contracts/NFDInstance.algo.ts:32","pc":[106]},{"teal":106,"source":"contracts/NFDInstance.algo.ts:32","pc":[107]},{"teal":110,"source":"contracts/NFDInstance.algo.ts:32","pc":[108,109,110]},{"teal":113,"source":"contracts/NFDInstance.algo.ts:32","pc":[111]},{"teal":117,"source":"contracts/NFDInstance.algo.ts:45","pc":[112,113]},{"teal":118,"source":"contracts/NFDInstance.algo.ts:45","pc":[114,115]},{"teal":119,"source":"contracts/NFDInstance.algo.ts:45","pc":[116]},{"teal":122,"source":"contracts/NFDInstance.algo.ts:45","errorMessage":"caller must be NFD registry!","pc":[117]},{"teal":126,"source":"contracts/NFDInstance.algo.ts:46","pc":[118,119]},{"teal":127,"source":"contracts/NFDInstance.algo.ts:46","pc":[120]},{"teal":128,"source":"contracts/NFDInstance.algo.ts:46","pc":[121]},{"teal":129,"source":"contracts/NFDInstance.algo.ts:46","pc":[122]},{"teal":133,"source":"contracts/NFDInstance.algo.ts:48","pc":[123,124]},{"teal":134,"source":"contracts/NFDInstance.algo.ts:48","pc":[125,126]},{"teal":135,"source":"contracts/NFDInstance.algo.ts:48","pc":[127]},{"teal":139,"source":"contracts/NFDInstance.algo.ts:49","pc":[128,129]},{"teal":140,"source":"contracts/NFDInstance.algo.ts:49","pc":[130,131,132,133,134]},{"teal":141,"source":"contracts/NFDInstance.algo.ts:49","pc":[135]},{"teal":145,"source":"contracts/NFDInstance.algo.ts:50","pc":[136]},{"teal":146,"source":"contracts/NFDInstance.algo.ts:50","pc":[137,138]},{"teal":147,"source":"contracts/NFDInstance.algo.ts:50","pc":[139]},{"teal":151,"source":"contracts/NFDInstance.algo.ts:51","pc":[140,141,142,143,144,145,146,147,148,149,150,151,152,153,154]},{"teal":152,"source":"contracts/NFDInstance.algo.ts:51","pc":[155,156]},{"teal":153,"source":"contracts/NFDInstance.algo.ts:51","pc":[157]},{"teal":154,"source":"contracts/NFDInstance.algo.ts:51","pc":[158]},{"teal":158,"source":"contracts/NFDInstance.algo.ts:52","pc":[159]},{"teal":159,"source":"contracts/NFDInstance.algo.ts:52","pc":[160,161]},{"teal":160,"source":"contracts/NFDInstance.algo.ts:52","pc":[162]},{"teal":161,"source":"contracts/NFDInstance.algo.ts:52","pc":[163]},{"teal":165,"source":"contracts/NFDInstance.algo.ts:53","pc":[164,165]},{"teal":166,"source":"contracts/NFDInstance.algo.ts:53","pc":[166,167]},{"teal":167,"source":"contracts/NFDInstance.algo.ts:53","pc":[168]},{"teal":168,"source":"contracts/NFDInstance.algo.ts:53","pc":[169]},{"teal":172,"source":"contracts/NFDInstance.algo.ts:54","pc":[170,171]},{"teal":173,"source":"contracts/NFDInstance.algo.ts:54","pc":[172,173]},{"teal":174,"source":"contracts/NFDInstance.algo.ts:54","pc":[174]},{"teal":178,"source":"contracts/NFDInstance.algo.ts:55","pc":[175,176]},{"teal":179,"source":"contracts/NFDInstance.algo.ts:55","pc":[177,178]},{"teal":180,"source":"contracts/NFDInstance.algo.ts:55","pc":[179]},{"teal":184,"source":"contracts/NFDInstance.algo.ts:56","pc":[180]},{"teal":185,"source":"contracts/NFDInstance.algo.ts:56","pc":[181,182]},{"teal":186,"source":"contracts/NFDInstance.algo.ts:56","pc":[183]},{"teal":190,"source":"contracts/NFDInstance.algo.ts:57","pc":[184,185]},{"teal":191,"source":"contracts/NFDInstance.algo.ts:57","pc":[186,187]},{"teal":192,"source":"contracts/NFDInstance.algo.ts:57","pc":[188]},{"teal":196,"source":"contracts/NFDInstance.algo.ts:58","pc":[189,190]},{"teal":197,"source":"contracts/NFDInstance.algo.ts:58","pc":[191,192]},{"teal":198,"source":"contracts/NFDInstance.algo.ts:58","pc":[193]},{"teal":199,"source":"contracts/NFDInstance.algo.ts:58","pc":[194]},{"teal":204,"source":"contracts/NFDInstance.algo.ts:59","pc":[195,196]},{"teal":205,"source":"contracts/NFDInstance.algo.ts:59","pc":[197,198]},{"teal":206,"source":"contracts/NFDInstance.algo.ts:59","pc":[199]},{"teal":207,"source":"contracts/NFDInstance.algo.ts:59","pc":[200,201,202]},{"teal":212,"source":"contracts/NFDInstance.algo.ts:60","pc":[203,204]},{"teal":213,"source":"contracts/NFDInstance.algo.ts:60","pc":[205]},{"teal":214,"source":"contracts/NFDInstance.algo.ts:60","pc":[206]},{"teal":215,"source":"contracts/NFDInstance.algo.ts:60","pc":[207]},{"teal":216,"source":"contracts/NFDInstance.algo.ts:60","pc":[208,209,210]},{"teal":217,"source":"contracts/NFDInstance.algo.ts:60","pc":[211,212]},{"teal":218,"source":"contracts/NFDInstance.algo.ts:60","pc":[213,214]},{"teal":219,"source":"contracts/NFDInstance.algo.ts:60","pc":[215]},{"teal":220,"source":"contracts/NFDInstance.algo.ts:60","pc":[216]},{"teal":224,"source":"contracts/NFDInstance.algo.ts:60","errorMessage":"commission must be between 1 and 50%","pc":[217]},{"teal":228,"source":"contracts/NFDInstance.algo.ts:61","pc":[218,219]},{"teal":229,"source":"contracts/NFDInstance.algo.ts:61","pc":[220,221]},{"teal":230,"source":"contracts/NFDInstance.algo.ts:61","pc":[222]},{"teal":234,"source":"contracts/NFDInstance.algo.ts:62","pc":[223,224]},{"teal":235,"source":"contracts/NFDInstance.algo.ts:62","pc":[225,226]},{"teal":236,"source":"contracts/NFDInstance.algo.ts:62","pc":[227]},{"teal":237,"source":"contracts/NFDInstance.algo.ts:62","pc":[228]},{"teal":242,"source":"contracts/NFDInstance.algo.ts:63","pc":[229,230]},{"teal":243,"source":"contracts/NFDInstance.algo.ts:63","pc":[231,232]},{"teal":244,"source":"contracts/NFDInstance.algo.ts:63","pc":[233]},{"teal":245,"source":"contracts/NFDInstance.algo.ts:63","pc":[234,235,236]},{"teal":250,"source":"contracts/NFDInstance.algo.ts:64","pc":[237,238]},{"teal":251,"source":"contracts/NFDInstance.algo.ts:64","pc":[239]},{"teal":252,"source":"contracts/NFDInstance.algo.ts:64","pc":[240]},{"teal":253,"source":"contracts/NFDInstance.algo.ts:64","pc":[241]},{"teal":254,"source":"contracts/NFDInstance.algo.ts:64","pc":[242,243,244]},{"teal":255,"source":"contracts/NFDInstance.algo.ts:64","pc":[245,246]},{"teal":256,"source":"contracts/NFDInstance.algo.ts:64","pc":[247,248]},{"teal":257,"source":"contracts/NFDInstance.algo.ts:64","pc":[249]},{"teal":258,"source":"contracts/NFDInstance.algo.ts:64","pc":[250]},{"teal":262,"source":"contracts/NFDInstance.algo.ts:64","errorMessage":"commission must be between 1 and 50%","pc":[251]},{"teal":266,"source":"contracts/NFDInstance.algo.ts:65","pc":[252,253]},{"teal":267,"source":"contracts/NFDInstance.algo.ts:65","pc":[254,255]},{"teal":268,"source":"contracts/NFDInstance.algo.ts:65","pc":[256]},{"teal":272,"source":"contracts/NFDInstance.algo.ts:66","pc":[257,258]},{"teal":273,"source":"contracts/NFDInstance.algo.ts:66","pc":[259,260]},{"teal":274,"source":"contracts/NFDInstance.algo.ts:66","pc":[261]},{"teal":275,"source":"contracts/NFDInstance.algo.ts:66","pc":[262]},{"teal":282,"source":"contracts/NFDInstance.algo.ts:69","pc":[263,264,265,266,267,268,269,270,271,272,273,274]},{"teal":283,"source":"contracts/NFDInstance.algo.ts:69","pc":[275,276,277,278,279,280,281,282]},{"teal":284,"source":"contracts/NFDInstance.algo.ts:69","pc":[283]},{"teal":288,"source":"contracts/NFDInstance.algo.ts:70","pc":[284,285,286,287,288,289,290,291,292,293,294,295]},{"teal":289,"source":"contracts/NFDInstance.algo.ts:70","pc":[296,297,298,299,300,301,302,303,304,305]},{"teal":290,"source":"contracts/NFDInstance.algo.ts:70","pc":[306]},{"teal":294,"source":"contracts/NFDInstance.algo.ts:72","pc":[307,308]},{"teal":295,"source":"contracts/NFDInstance.algo.ts:72","pc":[309,310]},{"teal":296,"source":"contracts/NFDInstance.algo.ts:72","pc":[311]},{"teal":297,"source":"contracts/NFDInstance.algo.ts:72","pc":[312]},{"teal":301,"source":"contracts/NFDInstance.algo.ts:75","pc":[313,314]},{"teal":302,"source":"contracts/NFDInstance.algo.ts:75","pc":[315,316]},{"teal":303,"source":"contracts/NFDInstance.algo.ts:75","pc":[317]},{"teal":308,"source":"contracts/NFDInstance.algo.ts:77","pc":[318,319]},{"teal":309,"source":"contracts/NFDInstance.algo.ts:77","pc":[320]},{"teal":310,"source":"contracts/NFDInstance.algo.ts:77","pc":[321]},{"teal":311,"source":"contracts/NFDInstance.algo.ts:77","pc":[322,323,324]},{"teal":316,"source":"contracts/NFDInstance.algo.ts:78","pc":[325,326]},{"teal":317,"source":"contracts/NFDInstance.algo.ts:78","pc":[327,328]},{"teal":318,"source":"contracts/NFDInstance.algo.ts:78","pc":[329]},{"teal":319,"source":"contracts/NFDInstance.algo.ts:78","pc":[330]},{"teal":323,"source":"contracts/NFDInstance.algo.ts:81","pc":[331,332]},{"teal":324,"source":"contracts/NFDInstance.algo.ts:81","pc":[333,334]},{"teal":325,"source":"contracts/NFDInstance.algo.ts:81","pc":[335,336,337]},{"teal":326,"source":"contracts/NFDInstance.algo.ts:81","pc":[338,339]},{"teal":330,"source":"contracts/NFDInstance.algo.ts:84","pc":[340,341]},{"teal":331,"source":"contracts/NFDInstance.algo.ts:84","pc":[342,343]},{"teal":332,"source":"contracts/NFDInstance.algo.ts:84","pc":[344]},{"teal":333,"source":"contracts/NFDInstance.algo.ts:84","pc":[345,346]},{"teal":334,"source":"contracts/NFDInstance.algo.ts:84","pc":[347]},{"teal":335,"source":"contracts/NFDInstance.algo.ts:84","pc":[348]},{"teal":336,"source":"contracts/NFDInstance.algo.ts:84","pc":[349]},{"teal":337,"source":"contracts/NFDInstance.algo.ts:84","pc":[350]},{"teal":338,"source":"contracts/NFDInstance.algo.ts:84","pc":[351,352]},{"teal":339,"source":"contracts/NFDInstance.algo.ts:84","pc":[353]},{"teal":340,"source":"contracts/NFDInstance.algo.ts:84","pc":[354]},{"teal":341,"source":"contracts/NFDInstance.algo.ts:84","pc":[355]},{"teal":342,"source":"contracts/NFDInstance.algo.ts:84","pc":[356]},{"teal":343,"source":"contracts/NFDInstance.algo.ts:84","pc":[357,358]},{"teal":344,"source":"contracts/NFDInstance.algo.ts:84","pc":[359,360]},{"teal":345,"source":"contracts/NFDInstance.algo.ts:84","pc":[361]},{"teal":346,"source":"contracts/NFDInstance.algo.ts:84","pc":[362]},{"teal":347,"source":"contracts/NFDInstance.algo.ts:84","pc":[363]},{"teal":352,"source":"contracts/NFDInstance.algo.ts:88","pc":[364,365]},{"teal":353,"source":"contracts/NFDInstance.algo.ts:88","pc":[366,367]},{"teal":354,"source":"contracts/NFDInstance.algo.ts:88","pc":[368,369,370]},{"teal":355,"source":"contracts/NFDInstance.algo.ts:88","pc":[371,372]},{"teal":356,"source":"contracts/NFDInstance.algo.ts:88","pc":[373]},{"teal":357,"source":"contracts/NFDInstance.algo.ts:88","pc":[374,375,376]},{"teal":365,"source":"contracts/NFDInstance.algo.ts:91","pc":[377,378]},{"teal":366,"source":"contracts/NFDInstance.algo.ts:91","pc":[379,380]},{"teal":367,"source":"contracts/NFDInstance.algo.ts:91","pc":[381]},{"teal":370,"source":"contracts/NFDInstance.algo.ts:90","errorMessage":"parent commission address must be set if parent app id is set and parent is unlocked","pc":[382]},{"teal":377,"source":"contracts/NFDInstance.algo.ts:98","pc":[383,384]},{"teal":378,"source":"contracts/NFDInstance.algo.ts:98","pc":[385,386]},{"teal":379,"source":"contracts/NFDInstance.algo.ts:98","pc":[387,388,389]},{"teal":380,"source":"contracts/NFDInstance.algo.ts:98","pc":[390,391]},{"teal":381,"source":"contracts/NFDInstance.algo.ts:98","pc":[392]},{"teal":384,"source":"contracts/NFDInstance.algo.ts:97","errorMessage":"the segment commission agent should be the parent nfd's seller","pc":[393]},{"teal":388,"source":"contracts/NFDInstance.algo.ts:101","pc":[394,395]},{"teal":389,"source":"contracts/NFDInstance.algo.ts:101","pc":[396,397]},{"teal":390,"source":"contracts/NFDInstance.algo.ts:101","pc":[398]},{"teal":395,"source":"contracts/NFDInstance.algo.ts:32","pc":[399]},{"teal":400,"source":"contracts/NFDInstance.algo.ts:106","pc":[400,401,402]},{"teal":401,"source":"contracts/NFDInstance.algo.ts:106","pc":[403,404,405]},{"teal":404,"source":"contracts/NFDInstance.algo.ts:106","pc":[406,407,408]},{"teal":405,"source":"contracts/NFDInstance.algo.ts:106","pc":[409]},{"teal":406,"source":"contracts/NFDInstance.algo.ts:106","pc":[410]},{"teal":410,"source":"contracts/NFDInstance.algo.ts:106","pc":[411,412,413]},{"teal":414,"source":"contracts/NFDInstance.algo.ts:110","pc":[414,415]},{"teal":415,"source":"contracts/NFDInstance.algo.ts:110","pc":[416]},{"teal":416,"source":"contracts/NFDInstance.algo.ts:110","pc":[417,418]},{"teal":417,"source":"contracts/NFDInstance.algo.ts:110","pc":[419]},{"teal":420,"source":"contracts/NFDInstance.algo.ts:110","errorMessage":"contract must be unlocked to upgrade","pc":[420]},{"teal":424,"source":"contracts/NFDInstance.algo.ts:113","pc":[421,422]},{"teal":425,"source":"contracts/NFDInstance.algo.ts:113","pc":[423,424]},{"teal":426,"source":"contracts/NFDInstance.algo.ts:113","pc":[425]},{"teal":429,"source":"contracts/NFDInstance.algo.ts:113","errorMessage":"caller must be NFD registry!","pc":[426]},{"teal":433,"source":"contracts/NFDInstance.algo.ts:114","pc":[427,428]},{"teal":434,"source":"contracts/NFDInstance.algo.ts:114","pc":[429,430]},{"teal":435,"source":"contracts/NFDInstance.algo.ts:114","pc":[431]},{"teal":439,"source":"contracts/NFDInstance.algo.ts:115","pc":[432]},{"teal":440,"source":"contracts/NFDInstance.algo.ts:115","pc":[433,434]},{"teal":441,"source":"contracts/NFDInstance.algo.ts:115","pc":[435]},{"teal":442,"source":"contracts/NFDInstance.algo.ts:115","pc":[436]},{"teal":443,"source":"contracts/NFDInstance.algo.ts:106","pc":[437]},{"teal":447,"source":"contracts/NFDInstance.algo.ts:118","pc":[438,439,440]},{"teal":451,"source":"contracts/NFDInstance.algo.ts:120","pc":[441,442,443]},{"teal":452,"source":"contracts/NFDInstance.algo.ts:120","pc":[444]},{"teal":453,"source":"contracts/NFDInstance.algo.ts:120","pc":[445]},{"teal":454,"source":"contracts/NFDInstance.algo.ts:120","pc":[446]},{"teal":455,"source":"contracts/NFDInstance.algo.ts:120","pc":[447]},{"teal":456,"source":"contracts/NFDInstance.algo.ts:120","pc":[448]},{"teal":459,"source":"contracts/NFDInstance.algo.ts:120","errorMessage":"can't still be in minting state","pc":[449]},{"teal":464,"source":"contracts/NFDInstance.algo.ts:121","pc":[450,451,452]},{"teal":465,"source":"contracts/NFDInstance.algo.ts:121","pc":[453,454,455,456,457]},{"teal":466,"source":"contracts/NFDInstance.algo.ts:121","pc":[458]},{"teal":467,"source":"contracts/NFDInstance.algo.ts:121","pc":[459,460,461]},{"teal":472,"source":"contracts/NFDInstance.algo.ts:121","pc":[462]},{"teal":477,"source":"contracts/NFDInstance.algo.ts:125","pc":[463,464,465]},{"teal":478,"source":"contracts/NFDInstance.algo.ts:125","pc":[466]},{"teal":481,"source":"contracts/NFDInstance.algo.ts:125","errorMessage":"NFD can't be expired for these v1/v2 operations","pc":[467]},{"teal":486,"source":"contracts/NFDInstance.algo.ts:127","pc":[468,469]},{"teal":487,"source":"contracts/NFDInstance.algo.ts:127","pc":[470,471]},{"teal":488,"source":"contracts/NFDInstance.algo.ts:127","pc":[472]},{"teal":489,"source":"contracts/NFDInstance.algo.ts:127","pc":[473]},{"teal":490,"source":"contracts/NFDInstance.algo.ts:127","pc":[474,475,476]},{"teal":491,"source":"contracts/NFDInstance.algo.ts:127","pc":[477,478,479]},{"teal":492,"source":"contracts/NFDInstance.algo.ts:127","pc":[480,481,482,483,484,485,486,487,488,489,490,491,492,493]},{"teal":493,"source":"contracts/NFDInstance.algo.ts:127","pc":[494]},{"teal":494,"source":"contracts/NFDInstance.algo.ts:127","pc":[495]},{"teal":497,"source":"contracts/NFDInstance.algo.ts:127","pc":[496,497,498]},{"teal":502,"source":"contracts/NFDInstance.algo.ts:133","pc":[499,500,501]},{"teal":506,"source":"contracts/NFDInstance.algo.ts:134","pc":[502]},{"teal":512,"source":"contracts/NFDInstance.algo.ts:136","pc":[503,504]},{"teal":513,"source":"contracts/NFDInstance.algo.ts:136","pc":[505]},{"teal":514,"source":"contracts/NFDInstance.algo.ts:136","pc":[506]},{"teal":515,"source":"contracts/NFDInstance.algo.ts:136","pc":[507]},{"teal":516,"source":"contracts/NFDInstance.algo.ts:136","pc":[508,509,510]},{"teal":517,"source":"contracts/NFDInstance.algo.ts:136","pc":[511,512,513]},{"teal":518,"source":"contracts/NFDInstance.algo.ts:136","pc":[514,515,516,517,518,519,520,521,522,523,524,525,526,527]},{"teal":519,"source":"contracts/NFDInstance.algo.ts:136","pc":[528]},{"teal":520,"source":"contracts/NFDInstance.algo.ts:136","pc":[529]},{"teal":523,"source":"contracts/NFDInstance.algo.ts:136","pc":[530,531,532]},{"teal":528,"source":"contracts/NFDInstance.algo.ts:141","pc":[533,534,535]},{"teal":532,"source":"contracts/NFDInstance.algo.ts:142","pc":[536]},{"teal":538,"source":"contracts/NFDInstance.algo.ts:144","pc":[537,538]},{"teal":539,"source":"contracts/NFDInstance.algo.ts:144","pc":[539]},{"teal":540,"source":"contracts/NFDInstance.algo.ts:144","pc":[540]},{"teal":541,"source":"contracts/NFDInstance.algo.ts:144","pc":[541]},{"teal":542,"source":"contracts/NFDInstance.algo.ts:144","pc":[542,543,544]},{"teal":543,"source":"contracts/NFDInstance.algo.ts:144","pc":[545,546,547]},{"teal":544,"source":"contracts/NFDInstance.algo.ts:144","pc":[548,549,550,551,552,553,554,555,556,557,558,559,560,561,562]},{"teal":545,"source":"contracts/NFDInstance.algo.ts:144","pc":[563]},{"teal":546,"source":"contracts/NFDInstance.algo.ts:144","pc":[564]},{"teal":549,"source":"contracts/NFDInstance.algo.ts:144","pc":[565,566,567]},{"teal":554,"source":"contracts/NFDInstance.algo.ts:149","pc":[568,569,570]},{"teal":555,"source":"contracts/NFDInstance.algo.ts:149","pc":[571,572,573]},{"teal":556,"source":"contracts/NFDInstance.algo.ts:149","pc":[574]},{"teal":560,"source":"contracts/NFDInstance.algo.ts:150","pc":[575]},{"teal":566,"source":"contracts/NFDInstance.algo.ts:153","pc":[576,577]},{"teal":567,"source":"contracts/NFDInstance.algo.ts:153","pc":[578]},{"teal":568,"source":"contracts/NFDInstance.algo.ts:153","pc":[579]},{"teal":569,"source":"contracts/NFDInstance.algo.ts:153","pc":[580]},{"teal":570,"source":"contracts/NFDInstance.algo.ts:153","pc":[581,582,583]},{"teal":571,"source":"contracts/NFDInstance.algo.ts:153","pc":[584,585,586]},{"teal":572,"source":"contracts/NFDInstance.algo.ts:153","pc":[587,588,589,590,591,592,593,594,595,596,597,598,599]},{"teal":573,"source":"contracts/NFDInstance.algo.ts:153","pc":[600]},{"teal":574,"source":"contracts/NFDInstance.algo.ts:153","pc":[601]},{"teal":577,"source":"contracts/NFDInstance.algo.ts:153","pc":[602,603,604]},{"teal":582,"source":"contracts/NFDInstance.algo.ts:154","pc":[605,606,607]},{"teal":583,"source":"contracts/NFDInstance.algo.ts:154","pc":[608,609,610]},{"teal":587,"source":"contracts/NFDInstance.algo.ts:155","pc":[611]},{"teal":593,"source":"contracts/NFDInstance.algo.ts:159","pc":[612,613]},{"teal":594,"source":"contracts/NFDInstance.algo.ts:159","pc":[614]},{"teal":595,"source":"contracts/NFDInstance.algo.ts:159","pc":[615]},{"teal":596,"source":"contracts/NFDInstance.algo.ts:159","pc":[616]},{"teal":597,"source":"contracts/NFDInstance.algo.ts:159","pc":[617,618,619]},{"teal":598,"source":"contracts/NFDInstance.algo.ts:159","pc":[620,621,622]},{"teal":599,"source":"contracts/NFDInstance.algo.ts:159","pc":[623,624,625,626,627,628,629,630,631,632,633,634,635,636,637]},{"teal":600,"source":"contracts/NFDInstance.algo.ts:159","pc":[638]},{"teal":601,"source":"contracts/NFDInstance.algo.ts:159","pc":[639]},{"teal":604,"source":"contracts/NFDInstance.algo.ts:159","pc":[640,641,642]},{"teal":609,"source":"contracts/NFDInstance.algo.ts:160","pc":[643,644,645]},{"teal":610,"source":"contracts/NFDInstance.algo.ts:160","pc":[646,647]},{"teal":611,"source":"contracts/NFDInstance.algo.ts:160","pc":[648]},{"teal":612,"source":"contracts/NFDInstance.algo.ts:160","pc":[649,650,651]},{"teal":616,"source":"contracts/NFDInstance.algo.ts:161","pc":[652]},{"teal":622,"source":"contracts/NFDInstance.algo.ts:166","pc":[653,654]},{"teal":623,"source":"contracts/NFDInstance.algo.ts:166","pc":[655,656]},{"teal":624,"source":"contracts/NFDInstance.algo.ts:166","pc":[657]},{"teal":625,"source":"contracts/NFDInstance.algo.ts:166","pc":[658]},{"teal":626,"source":"contracts/NFDInstance.algo.ts:166","pc":[659,660,661]},{"teal":627,"source":"contracts/NFDInstance.algo.ts:166","pc":[662,663,664]},{"teal":628,"source":"contracts/NFDInstance.algo.ts:166","pc":[665,666,667,668,669,670,671,672,673,674,675,676,677,678]},{"teal":629,"source":"contracts/NFDInstance.algo.ts:166","pc":[679]},{"teal":630,"source":"contracts/NFDInstance.algo.ts:166","pc":[680]},{"teal":633,"source":"contracts/NFDInstance.algo.ts:166","pc":[681,682,683]},{"teal":638,"source":"contracts/NFDInstance.algo.ts:167","pc":[684,685,686]},{"teal":639,"source":"contracts/NFDInstance.algo.ts:167","pc":[687]},{"teal":640,"source":"contracts/NFDInstance.algo.ts:167","pc":[688,689,690]},{"teal":641,"source":"contracts/NFDInstance.algo.ts:167","pc":[691,692]},{"teal":642,"source":"contracts/NFDInstance.algo.ts:167","pc":[693]},{"teal":643,"source":"contracts/NFDInstance.algo.ts:167","pc":[694,695,696]},{"teal":647,"source":"contracts/NFDInstance.algo.ts:168","pc":[697]},{"teal":653,"source":"contracts/NFDInstance.algo.ts:175","pc":[698,699]},{"teal":654,"source":"contracts/NFDInstance.algo.ts:175","pc":[700]},{"teal":655,"source":"contracts/NFDInstance.algo.ts:175","pc":[701]},{"teal":656,"source":"contracts/NFDInstance.algo.ts:175","pc":[702]},{"teal":657,"source":"contracts/NFDInstance.algo.ts:175","pc":[703,704,705]},{"teal":658,"source":"contracts/NFDInstance.algo.ts:175","pc":[706,707,708]},{"teal":659,"source":"contracts/NFDInstance.algo.ts:175","pc":[709,710,711,712,713,714,715,716,717,718,719,720,721]},{"teal":660,"source":"contracts/NFDInstance.algo.ts:175","pc":[722]},{"teal":661,"source":"contracts/NFDInstance.algo.ts:175","pc":[723]},{"teal":664,"source":"contracts/NFDInstance.algo.ts:175","pc":[724,725,726]},{"teal":669,"source":"contracts/NFDInstance.algo.ts:176","pc":[727,728,729]},{"teal":673,"source":"contracts/NFDInstance.algo.ts:177","pc":[730]},{"teal":677,"source":"contracts/NFDInstance.algo.ts:180","errorMessage":"unknown method","pc":[731]},{"teal":678,"source":"contracts/NFDInstance.algo.ts:118","pc":[732]},{"teal":683,"source":"contracts/NFDInstance.algo.ts:184","pc":[733,734,735]},{"teal":684,"source":"contracts/NFDInstance.algo.ts:184","pc":[736]},{"teal":685,"source":"contracts/NFDInstance.algo.ts:184","pc":[737]},{"teal":689,"source":"contracts/NFDInstance.algo.ts:184","pc":[738,739,740]},{"teal":690,"source":"contracts/NFDInstance.algo.ts:184","pc":[741]},{"teal":695,"source":"contracts/NFDInstance.algo.ts:189","pc":[742,743,744]},{"teal":696,"source":"contracts/NFDInstance.algo.ts:189","pc":[745,746,747]},{"teal":699,"source":"contracts/NFDInstance.algo.ts:189","pc":[748,749,750]},{"teal":700,"source":"contracts/NFDInstance.algo.ts:189","pc":[751,752,753]},{"teal":703,"source":"contracts/NFDInstance.algo.ts:189","pc":[754,755,756]},{"teal":704,"source":"contracts/NFDInstance.algo.ts:189","pc":[757]},{"teal":705,"source":"contracts/NFDInstance.algo.ts:189","pc":[758]},{"teal":709,"source":"contracts/NFDInstance.algo.ts:189","pc":[759,760,761]},{"teal":712,"source":"contracts/NFDInstance.algo.ts:189","pc":[762]},{"teal":716,"source":"contracts/NFDInstance.algo.ts:190","pc":[763,764]},{"teal":717,"source":"contracts/NFDInstance.algo.ts:190","pc":[765,766]},{"teal":718,"source":"contracts/NFDInstance.algo.ts:190","pc":[767]},{"teal":721,"source":"contracts/NFDInstance.algo.ts:190","errorMessage":"caller must be NFD registry!","pc":[768]},{"teal":725,"source":"contracts/NFDInstance.algo.ts:191","pc":[769]},{"teal":726,"source":"contracts/NFDInstance.algo.ts:191","pc":[770]},{"teal":727,"source":"contracts/NFDInstance.algo.ts:191","pc":[771,772]},{"teal":728,"source":"contracts/NFDInstance.algo.ts:191","pc":[773]},{"teal":729,"source":"contracts/NFDInstance.algo.ts:191","pc":[774]},{"teal":743,"source":"contracts/NFDInstance.algo.ts:193","pc":[775]},{"teal":744,"source":"contracts/NFDInstance.algo.ts:193","pc":[776,777]},{"teal":745,"source":"contracts/NFDInstance.algo.ts:193","pc":[778,779]},{"teal":749,"source":"contracts/NFDInstance.algo.ts:194","pc":[780,781,782,783,784]},{"teal":750,"source":"contracts/NFDInstance.algo.ts:194","pc":[785,786]},{"teal":754,"source":"contracts/NFDInstance.algo.ts:195","pc":[787,788]},{"teal":755,"source":"contracts/NFDInstance.algo.ts:195","pc":[789,790]},{"teal":759,"source":"contracts/NFDInstance.algo.ts:196","pc":[791]},{"teal":760,"source":"contracts/NFDInstance.algo.ts:196","pc":[792,793]},{"teal":764,"source":"contracts/NFDInstance.algo.ts:197","pc":[794]},{"teal":765,"source":"contracts/NFDInstance.algo.ts:197","pc":[795,796]},{"teal":769,"source":"contracts/NFDInstance.algo.ts:198","pc":[797]},{"teal":770,"source":"contracts/NFDInstance.algo.ts:198","pc":[798,799]},{"teal":774,"source":"contracts/NFDInstance.algo.ts:199","pc":[800,801]},{"teal":775,"source":"contracts/NFDInstance.algo.ts:199","pc":[802,803]},{"teal":779,"source":"contracts/NFDInstance.algo.ts:200","pc":[804,805]},{"teal":780,"source":"contracts/NFDInstance.algo.ts:200","pc":[806,807]},{"teal":784,"source":"contracts/NFDInstance.algo.ts:201","pc":[808,809]},{"teal":785,"source":"contracts/NFDInstance.algo.ts:201","pc":[810,811]},{"teal":789,"source":"contracts/NFDInstance.algo.ts:202","pc":[812,813]},{"teal":790,"source":"contracts/NFDInstance.algo.ts:202","pc":[814,815]},{"teal":793,"source":"contracts/NFDInstance.algo.ts:193","pc":[816]},{"teal":794,"source":"contracts/NFDInstance.algo.ts:193","pc":[817,818]},{"teal":797,"source":"contracts/NFDInstance.algo.ts:193","pc":[819]},{"teal":798,"source":"contracts/NFDInstance.algo.ts:193","pc":[820,821]},{"teal":799,"source":"contracts/NFDInstance.algo.ts:193","pc":[822,823]},{"teal":803,"source":"contracts/NFDInstance.algo.ts:204","pc":[824,825]},{"teal":804,"source":"contracts/NFDInstance.algo.ts:204","pc":[826,827]},{"teal":805,"source":"contracts/NFDInstance.algo.ts:204","pc":[828]},{"teal":806,"source":"contracts/NFDInstance.algo.ts:204","pc":[829]},{"teal":810,"source":"contracts/NFDInstance.algo.ts:205","pc":[830]},{"teal":811,"source":"contracts/NFDInstance.algo.ts:205","pc":[831,832]},{"teal":812,"source":"contracts/NFDInstance.algo.ts:205","pc":[833]},{"teal":816,"source":"contracts/NFDInstance.algo.ts:206","pc":[834,835]},{"teal":817,"source":"contracts/NFDInstance.algo.ts:206","pc":[836]},{"teal":818,"source":"contracts/NFDInstance.algo.ts:206","pc":[837]},{"teal":819,"source":"contracts/NFDInstance.algo.ts:189","pc":[838]},{"teal":824,"source":"contracts/NFDInstance.algo.ts:213","pc":[839,840,841]},{"teal":827,"source":"contracts/NFDInstance.algo.ts:213","pc":[842,843,844]},{"teal":828,"source":"contracts/NFDInstance.algo.ts:213","pc":[845]},{"teal":829,"source":"contracts/NFDInstance.algo.ts:213","pc":[846]},{"teal":833,"source":"contracts/NFDInstance.algo.ts:213","pc":[847,848,849]},{"teal":836,"source":"contracts/NFDInstance.algo.ts:213","pc":[850]},{"teal":837,"source":"contracts/NFDInstance.algo.ts:213","pc":[851,852]},{"teal":841,"source":"contracts/NFDInstance.algo.ts:214","pc":[853,854,855]},{"teal":842,"source":"contracts/NFDInstance.algo.ts:214","pc":[856]},{"teal":843,"source":"contracts/NFDInstance.algo.ts:214","pc":[857]},{"teal":844,"source":"contracts/NFDInstance.algo.ts:214","pc":[858]},{"teal":845,"source":"contracts/NFDInstance.algo.ts:214","pc":[859]},{"teal":846,"source":"contracts/NFDInstance.algo.ts:214","pc":[860]},{"teal":847,"source":"contracts/NFDInstance.algo.ts:214","pc":[861]},{"teal":851,"source":"contracts/NFDInstance.algo.ts:215","pc":[862]},{"teal":852,"source":"contracts/NFDInstance.algo.ts:215","pc":[863,864]},{"teal":853,"source":"contracts/NFDInstance.algo.ts:215","pc":[865]},{"teal":854,"source":"contracts/NFDInstance.algo.ts:215","pc":[866]},{"teal":858,"source":"contracts/NFDInstance.algo.ts:217","pc":[867,868,869]},{"teal":859,"source":"contracts/NFDInstance.algo.ts:217","pc":[870,871]},{"teal":863,"source":"contracts/NFDInstance.algo.ts:218","pc":[872]},{"teal":864,"source":"contracts/NFDInstance.algo.ts:218","pc":[873,874]},{"teal":868,"source":"contracts/NFDInstance.algo.ts:219","pc":[875]},{"teal":869,"source":"contracts/NFDInstance.algo.ts:219","pc":[876,877]},{"teal":874,"source":"contracts/NFDInstance.algo.ts:219","pc":[878,879]},{"teal":875,"source":"contracts/NFDInstance.algo.ts:219","pc":[880,881]},{"teal":876,"source":"contracts/NFDInstance.algo.ts:219","pc":[882]},{"teal":877,"source":"contracts/NFDInstance.algo.ts:219","pc":[883]},{"teal":878,"source":"contracts/NFDInstance.algo.ts:219","pc":[884]},{"teal":879,"source":"contracts/NFDInstance.algo.ts:219","pc":[885,886,887]},{"teal":884,"source":"contracts/NFDInstance.algo.ts:220","pc":[888,889]},{"teal":885,"source":"contracts/NFDInstance.algo.ts:220","pc":[890,891]},{"teal":886,"source":"contracts/NFDInstance.algo.ts:220","pc":[892]},{"teal":887,"source":"contracts/NFDInstance.algo.ts:220","pc":[893,894,895]},{"teal":892,"source":"contracts/NFDInstance.algo.ts:221","pc":[896]},{"teal":893,"source":"contracts/NFDInstance.algo.ts:221","pc":[897,898]},{"teal":894,"source":"contracts/NFDInstance.algo.ts:221","pc":[899,900]},{"teal":895,"source":"contracts/NFDInstance.algo.ts:221","pc":[901]},{"teal":896,"source":"contracts/NFDInstance.algo.ts:221","pc":[902,903]},{"teal":897,"source":"contracts/NFDInstance.algo.ts:221","pc":[904,905]},{"teal":898,"source":"contracts/NFDInstance.algo.ts:221","pc":[906]},{"teal":899,"source":"contracts/NFDInstance.algo.ts:221","pc":[907,908]},{"teal":900,"source":"contracts/NFDInstance.algo.ts:221","pc":[909,910]},{"teal":901,"source":"contracts/NFDInstance.algo.ts:221","pc":[911,912]},{"teal":902,"source":"contracts/NFDInstance.algo.ts:221","pc":[913,914]},{"teal":903,"source":"contracts/NFDInstance.algo.ts:221","pc":[915]},{"teal":908,"source":"contracts/NFDInstance.algo.ts:223","pc":[916,917]},{"teal":909,"source":"contracts/NFDInstance.algo.ts:223","pc":[918,919]},{"teal":910,"source":"contracts/NFDInstance.algo.ts:223","pc":[920]},{"teal":911,"source":"contracts/NFDInstance.algo.ts:223","pc":[921,922]},{"teal":912,"source":"contracts/NFDInstance.algo.ts:223","pc":[923]},{"teal":913,"source":"contracts/NFDInstance.algo.ts:223","pc":[924]},{"teal":914,"source":"contracts/NFDInstance.algo.ts:223","pc":[925]},{"teal":915,"source":"contracts/NFDInstance.algo.ts:223","pc":[926]},{"teal":916,"source":"contracts/NFDInstance.algo.ts:223","pc":[927]},{"teal":917,"source":"contracts/NFDInstance.algo.ts:223","pc":[928,929]},{"teal":918,"source":"contracts/NFDInstance.algo.ts:223","pc":[930,931]},{"teal":919,"source":"contracts/NFDInstance.algo.ts:223","pc":[932,933]},{"teal":920,"source":"contracts/NFDInstance.algo.ts:223","pc":[934]},{"teal":921,"source":"contracts/NFDInstance.algo.ts:223","pc":[935]},{"teal":922,"source":"contracts/NFDInstance.algo.ts:223","pc":[936]},{"teal":923,"source":"contracts/NFDInstance.algo.ts:223","pc":[937]},{"teal":924,"source":"contracts/NFDInstance.algo.ts:223","pc":[938,939]},{"teal":925,"source":"contracts/NFDInstance.algo.ts:223","pc":[940]},{"teal":926,"source":"contracts/NFDInstance.algo.ts:223","pc":[941]},{"teal":927,"source":"contracts/NFDInstance.algo.ts:223","pc":[942]},{"teal":928,"source":"contracts/NFDInstance.algo.ts:223","pc":[943]},{"teal":929,"source":"contracts/NFDInstance.algo.ts:223","pc":[944]},{"teal":930,"source":"contracts/NFDInstance.algo.ts:223","pc":[945]},{"teal":931,"source":"contracts/NFDInstance.algo.ts:223","pc":[946]},{"teal":932,"source":"contracts/NFDInstance.algo.ts:223","pc":[947,948,949]},{"teal":933,"source":"contracts/NFDInstance.algo.ts:223","pc":[950,951]},{"teal":937,"source":"contracts/NFDInstance.algo.ts:224","pc":[952,953]},{"teal":938,"source":"contracts/NFDInstance.algo.ts:224","pc":[954,955]},{"teal":939,"source":"contracts/NFDInstance.algo.ts:224","pc":[956,957,958]},{"teal":942,"source":"contracts/NFDInstance.algo.ts:224","errorMessage":"field not removable or no permissions to remove","pc":[959]},{"teal":946,"source":"contracts/NFDInstance.algo.ts:225","pc":[960,961]},{"teal":947,"source":"contracts/NFDInstance.algo.ts:225","pc":[962]},{"teal":950,"source":"contracts/NFDInstance.algo.ts:225","errorMessage":"box value does not exist: this.boxes(name).size","pc":[963]},{"teal":951,"source":"contracts/NFDInstance.algo.ts:225","pc":[964,965]},{"teal":955,"source":"contracts/NFDInstance.algo.ts:226","pc":[966,967]},{"teal":956,"source":"contracts/NFDInstance.algo.ts:226","pc":[968]},{"teal":960,"source":"contracts/NFDInstance.algo.ts:227","pc":[969,970]},{"teal":961,"source":"contracts/NFDInstance.algo.ts:227","pc":[971,972]},{"teal":962,"source":"contracts/NFDInstance.algo.ts:227","pc":[973,974]},{"teal":963,"source":"contracts/NFDInstance.algo.ts:227","pc":[975]},{"teal":964,"source":"contracts/NFDInstance.algo.ts:227","pc":[976,977]},{"teal":965,"source":"contracts/NFDInstance.algo.ts:227","pc":[978]},{"teal":966,"source":"contracts/NFDInstance.algo.ts:227","pc":[979,980]},{"teal":967,"source":"contracts/NFDInstance.algo.ts:227","pc":[981]},{"teal":968,"source":"contracts/NFDInstance.algo.ts:227","pc":[982]},{"teal":969,"source":"contracts/NFDInstance.algo.ts:227","pc":[983]},{"teal":970,"source":"contracts/NFDInstance.algo.ts:227","pc":[984,985]},{"teal":975,"source":"contracts/NFDInstance.algo.ts:219","pc":[986,987]},{"teal":976,"source":"contracts/NFDInstance.algo.ts:219","pc":[988]},{"teal":977,"source":"contracts/NFDInstance.algo.ts:219","pc":[989]},{"teal":978,"source":"contracts/NFDInstance.algo.ts:219","pc":[990,991]},{"teal":979,"source":"contracts/NFDInstance.algo.ts:219","pc":[992,993,994]},{"teal":985,"source":"contracts/NFDInstance.algo.ts:229","pc":[995,996]},{"teal":986,"source":"contracts/NFDInstance.algo.ts:229","pc":[997]},{"teal":987,"source":"contracts/NFDInstance.algo.ts:229","pc":[998]},{"teal":988,"source":"contracts/NFDInstance.algo.ts:229","pc":[999,1000,1001]},{"teal":997,"source":"contracts/NFDInstance.algo.ts:230","pc":[1002]},{"teal":998,"source":"contracts/NFDInstance.algo.ts:230","pc":[1003]},{"teal":999,"source":"contracts/NFDInstance.algo.ts:230","pc":[1004,1005]},{"teal":1003,"source":"contracts/NFDInstance.algo.ts:231","pc":[1006,1007]},{"teal":1004,"source":"contracts/NFDInstance.algo.ts:231","pc":[1008,1009]},{"teal":1008,"source":"contracts/NFDInstance.algo.ts:232","pc":[1010,1011]},{"teal":1009,"source":"contracts/NFDInstance.algo.ts:232","pc":[1012,1013]},{"teal":1013,"source":"contracts/NFDInstance.algo.ts:233","pc":[1014,1015]},{"teal":1014,"source":"contracts/NFDInstance.algo.ts:233","pc":[1016,1017]},{"teal":1017,"source":"contracts/NFDInstance.algo.ts:230","pc":[1018]},{"teal":1018,"source":"contracts/NFDInstance.algo.ts:230","pc":[1019,1020]},{"teal":1021,"source":"contracts/NFDInstance.algo.ts:230","pc":[1021]},{"teal":1024,"source":"contracts/NFDInstance.algo.ts:213","pc":[1022]},{"teal":1028,"source":"contracts/NFDInstance.algo.ts:238","pc":[1023,1024,1025]},{"teal":1031,"source":"contracts/NFDInstance.algo.ts:238","pc":[1026]},{"teal":1032,"source":"contracts/NFDInstance.algo.ts:238","pc":[1027,1028]},{"teal":1036,"source":"contracts/NFDInstance.algo.ts:239","pc":[1029,1030,1031]},{"teal":1037,"source":"contracts/NFDInstance.algo.ts:239","pc":[1032]},{"teal":1038,"source":"contracts/NFDInstance.algo.ts:239","pc":[1033]},{"teal":1039,"source":"contracts/NFDInstance.algo.ts:239","pc":[1034]},{"teal":1040,"source":"contracts/NFDInstance.algo.ts:239","pc":[1035]},{"teal":1041,"source":"contracts/NFDInstance.algo.ts:239","pc":[1036]},{"teal":1042,"source":"contracts/NFDInstance.algo.ts:239","pc":[1037]},{"teal":1046,"source":"contracts/NFDInstance.algo.ts:241","pc":[1038,1039,1040]},{"teal":1047,"source":"contracts/NFDInstance.algo.ts:241","pc":[1041,1042]},{"teal":1051,"source":"contracts/NFDInstance.algo.ts:242","pc":[1043]},{"teal":1052,"source":"contracts/NFDInstance.algo.ts:242","pc":[1044,1045]},{"teal":1057,"source":"contracts/NFDInstance.algo.ts:242","pc":[1046,1047]},{"teal":1058,"source":"contracts/NFDInstance.algo.ts:242","pc":[1048,1049]},{"teal":1059,"source":"contracts/NFDInstance.algo.ts:242","pc":[1050]},{"teal":1060,"source":"contracts/NFDInstance.algo.ts:242","pc":[1051,1052,1053]},{"teal":1064,"source":"contracts/NFDInstance.algo.ts:243","pc":[1054,1055]},{"teal":1065,"source":"contracts/NFDInstance.algo.ts:243","pc":[1056,1057]},{"teal":1066,"source":"contracts/NFDInstance.algo.ts:243","pc":[1058,1059]},{"teal":1070,"source":"contracts/NFDInstance.algo.ts:244","pc":[1060,1061]},{"teal":1071,"source":"contracts/NFDInstance.algo.ts:244","pc":[1062,1063]},{"teal":1072,"source":"contracts/NFDInstance.algo.ts:244","pc":[1064,1065,1066]},{"teal":1075,"source":"contracts/NFDInstance.algo.ts:244","errorMessage":"field not removable or no permissions to remove","pc":[1067]},{"teal":1079,"source":"contracts/NFDInstance.algo.ts:245","pc":[1068,1069]},{"teal":1080,"source":"contracts/NFDInstance.algo.ts:245","pc":[1070]},{"teal":1085,"source":"contracts/NFDInstance.algo.ts:242","pc":[1071,1072]},{"teal":1086,"source":"contracts/NFDInstance.algo.ts:242","pc":[1073]},{"teal":1087,"source":"contracts/NFDInstance.algo.ts:242","pc":[1074]},{"teal":1088,"source":"contracts/NFDInstance.algo.ts:242","pc":[1075,1076]},{"teal":1089,"source":"contracts/NFDInstance.algo.ts:242","pc":[1077,1078,1079]},{"teal":1094,"source":"contracts/NFDInstance.algo.ts:247","pc":[1080]},{"teal":1095,"source":"contracts/NFDInstance.algo.ts:247","pc":[1081,1082]},{"teal":1096,"source":"contracts/NFDInstance.algo.ts:247","pc":[1083]},{"teal":1097,"source":"contracts/NFDInstance.algo.ts:247","pc":[1084]},{"teal":1098,"source":"contracts/NFDInstance.algo.ts:238","pc":[1085]},{"teal":1103,"source":"contracts/NFDInstance.algo.ts:257","pc":[1086,1087,1088]},{"teal":1104,"source":"contracts/NFDInstance.algo.ts:257","pc":[1089]},{"teal":1107,"source":"contracts/NFDInstance.algo.ts:257","pc":[1090,1091,1092]},{"teal":1108,"source":"contracts/NFDInstance.algo.ts:257","pc":[1093,1094,1095]},{"teal":1111,"source":"contracts/NFDInstance.algo.ts:257","pc":[1096,1097,1098]},{"teal":1112,"source":"contracts/NFDInstance.algo.ts:257","pc":[1099]},{"teal":1113,"source":"contracts/NFDInstance.algo.ts:257","pc":[1100]},{"teal":1117,"source":"contracts/NFDInstance.algo.ts:257","pc":[1101,1102,1103]},{"teal":1120,"source":"contracts/NFDInstance.algo.ts:257","pc":[1104]},{"teal":1121,"source":"contracts/NFDInstance.algo.ts:257","pc":[1105]},{"teal":1125,"source":"contracts/NFDInstance.algo.ts:258","pc":[1106,1107]},{"teal":1126,"source":"contracts/NFDInstance.algo.ts:258","pc":[1108,1109]},{"teal":1127,"source":"contracts/NFDInstance.algo.ts:258","pc":[1110]},{"teal":1130,"source":"contracts/NFDInstance.algo.ts:258","errorMessage":"caller must be NFD registry!","pc":[1111]},{"teal":1137,"source":"contracts/NFDInstance.algo.ts:260","pc":[1112]},{"teal":1138,"source":"contracts/NFDInstance.algo.ts:260","pc":[1113,1114]},{"teal":1139,"source":"contracts/NFDInstance.algo.ts:260","pc":[1115,1116,1117]},{"teal":1140,"source":"contracts/NFDInstance.algo.ts:260","pc":[1118,1119]},{"teal":1141,"source":"contracts/NFDInstance.algo.ts:260","pc":[1120]},{"teal":1144,"source":"contracts/NFDInstance.algo.ts:259","errorMessage":"child NFD MUST still be in pre-claim state!","pc":[1121]},{"teal":1148,"source":"contracts/NFDInstance.algo.ts:263","pc":[1122,1123,1124]},{"teal":1149,"source":"contracts/NFDInstance.algo.ts:263","pc":[1125]},{"teal":1150,"source":"contracts/NFDInstance.algo.ts:263","pc":[1126]},{"teal":1151,"source":"contracts/NFDInstance.algo.ts:263","pc":[1127]},{"teal":1152,"source":"contracts/NFDInstance.algo.ts:263","pc":[1128]},{"teal":1153,"source":"contracts/NFDInstance.algo.ts:263","pc":[1129]},{"teal":1154,"source":"contracts/NFDInstance.algo.ts:263","pc":[1130]},{"teal":1158,"source":"contracts/NFDInstance.algo.ts:264","pc":[1131,1132,1133]},{"teal":1165,"source":"contracts/NFDInstance.algo.ts:267","pc":[1134,1135]},{"teal":1166,"source":"contracts/NFDInstance.algo.ts:267","pc":[1136,1137]},{"teal":1167,"source":"contracts/NFDInstance.algo.ts:267","pc":[1138,1139,1140]},{"teal":1168,"source":"contracts/NFDInstance.algo.ts:267","pc":[1141,1142]},{"teal":1169,"source":"contracts/NFDInstance.algo.ts:267","pc":[1143]},{"teal":1172,"source":"contracts/NFDInstance.algo.ts:266","errorMessage":"passed in child name must match name in created nfd state","pc":[1144]},{"teal":1176,"source":"contracts/NFDInstance.algo.ts:270","pc":[1145,1146]},{"teal":1177,"source":"contracts/NFDInstance.algo.ts:270","pc":[1147]},{"teal":1178,"source":"contracts/NFDInstance.algo.ts:270","pc":[1148,1149]},{"teal":1182,"source":"contracts/NFDInstance.algo.ts:275","pc":[1150,1151]},{"teal":1183,"source":"contracts/NFDInstance.algo.ts:275","pc":[1152]},{"teal":1184,"source":"contracts/NFDInstance.algo.ts:275","pc":[1153,1154]},{"teal":1185,"source":"contracts/NFDInstance.algo.ts:275","pc":[1155]},{"teal":1186,"source":"contracts/NFDInstance.algo.ts:275","pc":[1156]},{"teal":1187,"source":"contracts/NFDInstance.algo.ts:275","pc":[1157]},{"teal":1188,"source":"contracts/NFDInstance.algo.ts:275","pc":[1158]},{"teal":1189,"source":"contracts/NFDInstance.algo.ts:275","pc":[1159,1160]},{"teal":1196,"source":"contracts/NFDInstance.algo.ts:277","pc":[1161,1162]},{"teal":1197,"source":"contracts/NFDInstance.algo.ts:277","pc":[1163,1164]},{"teal":1198,"source":"contracts/NFDInstance.algo.ts:277","pc":[1165,1166]},{"teal":1199,"source":"contracts/NFDInstance.algo.ts:277","pc":[1167]},{"teal":1200,"source":"contracts/NFDInstance.algo.ts:277","pc":[1168]},{"teal":1201,"source":"contracts/NFDInstance.algo.ts:277","pc":[1169]},{"teal":1202,"source":"contracts/NFDInstance.algo.ts:277","pc":[1170]},{"teal":1203,"source":"contracts/NFDInstance.algo.ts:277","pc":[1171,1172]},{"teal":1204,"source":"contracts/NFDInstance.algo.ts:277","pc":[1173,1174]},{"teal":1205,"source":"contracts/NFDInstance.algo.ts:277","pc":[1175]},{"teal":1206,"source":"contracts/NFDInstance.algo.ts:277","pc":[1176]},{"teal":1209,"source":"contracts/NFDInstance.algo.ts:276","errorMessage":"parent must be suffix of child","pc":[1177]},{"teal":1213,"source":"contracts/NFDInstance.algo.ts:280","pc":[1178,1179]},{"teal":1214,"source":"contracts/NFDInstance.algo.ts:280","pc":[1180,1181]},{"teal":1215,"source":"contracts/NFDInstance.algo.ts:280","pc":[1182,1183,1184]},{"teal":1216,"source":"contracts/NFDInstance.algo.ts:280","pc":[1185]},{"teal":1220,"source":"contracts/NFDInstance.algo.ts:281","pc":[1186,1187]},{"teal":1221,"source":"contracts/NFDInstance.algo.ts:281","pc":[1188]},{"teal":1222,"source":"contracts/NFDInstance.algo.ts:281","pc":[1189,1190,1191]},{"teal":1223,"source":"contracts/NFDInstance.algo.ts:281","pc":[1192]},{"teal":1224,"source":"contracts/NFDInstance.algo.ts:281","pc":[1193]},{"teal":1225,"source":"contracts/NFDInstance.algo.ts:281","pc":[1194]},{"teal":1226,"source":"contracts/NFDInstance.algo.ts:281","pc":[1195]},{"teal":1230,"source":"contracts/NFDInstance.algo.ts:282","pc":[1196]},{"teal":1231,"source":"contracts/NFDInstance.algo.ts:282","pc":[1197,1198]},{"teal":1232,"source":"contracts/NFDInstance.algo.ts:282","pc":[1199]},{"teal":1233,"source":"contracts/NFDInstance.algo.ts:282","pc":[1200]},{"teal":1234,"source":"contracts/NFDInstance.algo.ts:257","pc":[1201]},{"teal":1239,"source":"contracts/NFDInstance.algo.ts:285","pc":[1202,1203]},{"teal":1242,"source":"contracts/NFDInstance.algo.ts:286","pc":[1204,1205,1206]},{"teal":1245,"source":"contracts/NFDInstance.algo.ts:285","pc":[1207,1208,1209]},{"teal":1246,"source":"contracts/NFDInstance.algo.ts:285","pc":[1210]},{"teal":1247,"source":"contracts/NFDInstance.algo.ts:285","pc":[1211]},{"teal":1248,"source":"contracts/NFDInstance.algo.ts:285","pc":[1212]},{"teal":1249,"source":"contracts/NFDInstance.algo.ts:285","pc":[1213]},{"teal":1250,"source":"contracts/NFDInstance.algo.ts:285","pc":[1214]},{"teal":1254,"source":"contracts/NFDInstance.algo.ts:285","pc":[1215,1216,1217]},{"teal":1257,"source":"contracts/NFDInstance.algo.ts:285","pc":[1218]},{"teal":1258,"source":"contracts/NFDInstance.algo.ts:285","pc":[1219,1220]},{"teal":1262,"source":"contracts/NFDInstance.algo.ts:287","pc":[1221]},{"teal":1263,"source":"contracts/NFDInstance.algo.ts:287","pc":[1222,1223]},{"teal":1267,"source":"contracts/NFDInstance.algo.ts:288","pc":[1224]},{"teal":1268,"source":"contracts/NFDInstance.algo.ts:288","pc":[1225,1226]},{"teal":1272,"source":"contracts/NFDInstance.algo.ts:290","pc":[1227]},{"teal":1273,"source":"contracts/NFDInstance.algo.ts:290","pc":[1228,1229]},{"teal":1278,"source":"contracts/NFDInstance.algo.ts:290","pc":[1230,1231]},{"teal":1279,"source":"contracts/NFDInstance.algo.ts:290","pc":[1232,1233]},{"teal":1280,"source":"contracts/NFDInstance.algo.ts:290","pc":[1234]},{"teal":1281,"source":"contracts/NFDInstance.algo.ts:290","pc":[1235]},{"teal":1282,"source":"contracts/NFDInstance.algo.ts:290","pc":[1236]},{"teal":1283,"source":"contracts/NFDInstance.algo.ts:290","pc":[1237,1238,1239]},{"teal":1287,"source":"contracts/NFDInstance.algo.ts:291","pc":[1240,1241]},{"teal":1288,"source":"contracts/NFDInstance.algo.ts:291","pc":[1242,1243]},{"teal":1289,"source":"contracts/NFDInstance.algo.ts:291","pc":[1244]},{"teal":1290,"source":"contracts/NFDInstance.algo.ts:291","pc":[1245,1246]},{"teal":1291,"source":"contracts/NFDInstance.algo.ts:291","pc":[1247]},{"teal":1292,"source":"contracts/NFDInstance.algo.ts:291","pc":[1248]},{"teal":1293,"source":"contracts/NFDInstance.algo.ts:291","pc":[1249]},{"teal":1294,"source":"contracts/NFDInstance.algo.ts:291","pc":[1250]},{"teal":1295,"source":"contracts/NFDInstance.algo.ts:291","pc":[1251]},{"teal":1296,"source":"contracts/NFDInstance.algo.ts:291","pc":[1252,1253]},{"teal":1297,"source":"contracts/NFDInstance.algo.ts:291","pc":[1254,1255]},{"teal":1298,"source":"contracts/NFDInstance.algo.ts:291","pc":[1256,1257]},{"teal":1299,"source":"contracts/NFDInstance.algo.ts:291","pc":[1258]},{"teal":1300,"source":"contracts/NFDInstance.algo.ts:291","pc":[1259]},{"teal":1301,"source":"contracts/NFDInstance.algo.ts:291","pc":[1260]},{"teal":1302,"source":"contracts/NFDInstance.algo.ts:291","pc":[1261]},{"teal":1303,"source":"contracts/NFDInstance.algo.ts:291","pc":[1262,1263]},{"teal":1304,"source":"contracts/NFDInstance.algo.ts:291","pc":[1264]},{"teal":1305,"source":"contracts/NFDInstance.algo.ts:291","pc":[1265]},{"teal":1306,"source":"contracts/NFDInstance.algo.ts:291","pc":[1266]},{"teal":1307,"source":"contracts/NFDInstance.algo.ts:291","pc":[1267]},{"teal":1308,"source":"contracts/NFDInstance.algo.ts:291","pc":[1268]},{"teal":1309,"source":"contracts/NFDInstance.algo.ts:291","pc":[1269]},{"teal":1310,"source":"contracts/NFDInstance.algo.ts:291","pc":[1270]},{"teal":1311,"source":"contracts/NFDInstance.algo.ts:291","pc":[1271,1272,1273]},{"teal":1312,"source":"contracts/NFDInstance.algo.ts:291","pc":[1274,1275]},{"teal":1316,"source":"contracts/NFDInstance.algo.ts:292","pc":[1276,1277]},{"teal":1317,"source":"contracts/NFDInstance.algo.ts:292","pc":[1278,1279]},{"teal":1318,"source":"contracts/NFDInstance.algo.ts:292","pc":[1280]},{"teal":1319,"source":"contracts/NFDInstance.algo.ts:292","pc":[1281,1282]},{"teal":1320,"source":"contracts/NFDInstance.algo.ts:292","pc":[1283]},{"teal":1321,"source":"contracts/NFDInstance.algo.ts:292","pc":[1284]},{"teal":1322,"source":"contracts/NFDInstance.algo.ts:292","pc":[1285]},{"teal":1323,"source":"contracts/NFDInstance.algo.ts:292","pc":[1286]},{"teal":1324,"source":"contracts/NFDInstance.algo.ts:292","pc":[1287]},{"teal":1325,"source":"contracts/NFDInstance.algo.ts:292","pc":[1288]},{"teal":1326,"source":"contracts/NFDInstance.algo.ts:292","pc":[1289]},{"teal":1327,"source":"contracts/NFDInstance.algo.ts:292","pc":[1290,1291]},{"teal":1328,"source":"contracts/NFDInstance.algo.ts:292","pc":[1292,1293]},{"teal":1329,"source":"contracts/NFDInstance.algo.ts:292","pc":[1294,1295]},{"teal":1330,"source":"contracts/NFDInstance.algo.ts:292","pc":[1296]},{"teal":1331,"source":"contracts/NFDInstance.algo.ts:292","pc":[1297]},{"teal":1332,"source":"contracts/NFDInstance.algo.ts:292","pc":[1298]},{"teal":1333,"source":"contracts/NFDInstance.algo.ts:292","pc":[1299]},{"teal":1334,"source":"contracts/NFDInstance.algo.ts:292","pc":[1300,1301]},{"teal":1335,"source":"contracts/NFDInstance.algo.ts:292","pc":[1302]},{"teal":1336,"source":"contracts/NFDInstance.algo.ts:292","pc":[1303]},{"teal":1337,"source":"contracts/NFDInstance.algo.ts:292","pc":[1304]},{"teal":1338,"source":"contracts/NFDInstance.algo.ts:292","pc":[1305]},{"teal":1339,"source":"contracts/NFDInstance.algo.ts:292","pc":[1306]},{"teal":1340,"source":"contracts/NFDInstance.algo.ts:292","pc":[1307]},{"teal":1341,"source":"contracts/NFDInstance.algo.ts:292","pc":[1308]},{"teal":1342,"source":"contracts/NFDInstance.algo.ts:292","pc":[1309,1310,1311]},{"teal":1343,"source":"contracts/NFDInstance.algo.ts:292","pc":[1312,1313]},{"teal":1347,"source":"contracts/NFDInstance.algo.ts:293","pc":[1314,1315]},{"teal":1348,"source":"contracts/NFDInstance.algo.ts:293","pc":[1316]},{"teal":1349,"source":"contracts/NFDInstance.algo.ts:293","pc":[1317]},{"teal":1350,"source":"contracts/NFDInstance.algo.ts:293","pc":[1318]},{"teal":1351,"source":"contracts/NFDInstance.algo.ts:293","pc":[1319,1320]},{"teal":1356,"source":"contracts/NFDInstance.algo.ts:295","pc":[1321,1322]},{"teal":1357,"source":"contracts/NFDInstance.algo.ts:295","pc":[1323]},{"teal":1358,"source":"contracts/NFDInstance.algo.ts:295","pc":[1324]},{"teal":1359,"source":"contracts/NFDInstance.algo.ts:295","pc":[1325]},{"teal":1360,"source":"contracts/NFDInstance.algo.ts:295","pc":[1326,1327,1328]},{"teal":1366,"source":"contracts/NFDInstance.algo.ts:296","pc":[1329,1330]},{"teal":1367,"source":"contracts/NFDInstance.algo.ts:296","pc":[1331,1332,1333]},{"teal":1372,"source":"contracts/NFDInstance.algo.ts:298","pc":[1334,1335]},{"teal":1373,"source":"contracts/NFDInstance.algo.ts:298","pc":[1336,1337]},{"teal":1374,"source":"contracts/NFDInstance.algo.ts:298","pc":[1338,1339]},{"teal":1375,"source":"contracts/NFDInstance.algo.ts:298","pc":[1340,1341]},{"teal":1376,"source":"contracts/NFDInstance.algo.ts:298","pc":[1342]},{"teal":1377,"source":"contracts/NFDInstance.algo.ts:298","pc":[1343,1344]},{"teal":1378,"source":"contracts/NFDInstance.algo.ts:298","pc":[1345]},{"teal":1381,"source":"contracts/NFDInstance.algo.ts:298","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1346]},{"teal":1382,"source":"contracts/NFDInstance.algo.ts:298","pc":[1347]},{"teal":1383,"source":"contracts/NFDInstance.algo.ts:298","pc":[1348]},{"teal":1384,"source":"contracts/NFDInstance.algo.ts:298","pc":[1349]},{"teal":1385,"source":"contracts/NFDInstance.algo.ts:298","pc":[1350]},{"teal":1386,"source":"contracts/NFDInstance.algo.ts:298","pc":[1351,1352]},{"teal":1389,"source":"contracts/NFDInstance.algo.ts:300","pc":[1353,1354,1355]},{"teal":1395,"source":"contracts/NFDInstance.algo.ts:302","pc":[1356,1357]},{"teal":1396,"source":"contracts/NFDInstance.algo.ts:302","pc":[1358]},{"teal":1397,"source":"contracts/NFDInstance.algo.ts:302","pc":[1359,1360,1361]},{"teal":1402,"source":"contracts/NFDInstance.algo.ts:304","pc":[1362,1363]},{"teal":1403,"source":"contracts/NFDInstance.algo.ts:304","pc":[1364,1365]},{"teal":1404,"source":"contracts/NFDInstance.algo.ts:304","pc":[1366,1367]},{"teal":1405,"source":"contracts/NFDInstance.algo.ts:304","pc":[1368,1369]},{"teal":1406,"source":"contracts/NFDInstance.algo.ts:304","pc":[1370]},{"teal":1407,"source":"contracts/NFDInstance.algo.ts:304","pc":[1371,1372]},{"teal":1408,"source":"contracts/NFDInstance.algo.ts:304","pc":[1373]},{"teal":1409,"source":"contracts/NFDInstance.algo.ts:304","pc":[1374]},{"teal":1410,"source":"contracts/NFDInstance.algo.ts:304","pc":[1375]},{"teal":1411,"source":"contracts/NFDInstance.algo.ts:304","pc":[1376]},{"teal":1412,"source":"contracts/NFDInstance.algo.ts:304","pc":[1377]},{"teal":1413,"source":"contracts/NFDInstance.algo.ts:304","pc":[1378,1379]},{"teal":1414,"source":"contracts/NFDInstance.algo.ts:305","pc":[1380,1381,1382]},{"teal":1419,"source":"contracts/NFDInstance.algo.ts:307","pc":[1383,1384]},{"teal":1420,"source":"contracts/NFDInstance.algo.ts:307","pc":[1385]},{"teal":1423,"source":"contracts/NFDInstance.algo.ts:307","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1386]},{"teal":1424,"source":"contracts/NFDInstance.algo.ts:307","pc":[1387,1388]},{"teal":1429,"source":"contracts/NFDInstance.algo.ts:308","pc":[1389,1390]},{"teal":1430,"source":"contracts/NFDInstance.algo.ts:308","pc":[1391]},{"teal":1431,"source":"contracts/NFDInstance.algo.ts:308","pc":[1392,1393]},{"teal":1432,"source":"contracts/NFDInstance.algo.ts:308","pc":[1394]},{"teal":1433,"source":"contracts/NFDInstance.algo.ts:308","pc":[1395,1396,1397]},{"teal":1438,"source":"contracts/NFDInstance.algo.ts:309","pc":[1398,1399]},{"teal":1439,"source":"contracts/NFDInstance.algo.ts:309","pc":[1400,1401]},{"teal":1440,"source":"contracts/NFDInstance.algo.ts:309","pc":[1402,1403]},{"teal":1441,"source":"contracts/NFDInstance.algo.ts:309","pc":[1404,1405]},{"teal":1442,"source":"contracts/NFDInstance.algo.ts:309","pc":[1406]},{"teal":1443,"source":"contracts/NFDInstance.algo.ts:309","pc":[1407]},{"teal":1444,"source":"contracts/NFDInstance.algo.ts:309","pc":[1408]},{"teal":1445,"source":"contracts/NFDInstance.algo.ts:309","pc":[1409]},{"teal":1446,"source":"contracts/NFDInstance.algo.ts:309","pc":[1410,1411]},{"teal":1447,"source":"contracts/NFDInstance.algo.ts:308","pc":[1412,1413,1414]},{"teal":1452,"source":"contracts/NFDInstance.algo.ts:311","pc":[1415,1416]},{"teal":1453,"source":"contracts/NFDInstance.algo.ts:311","pc":[1417,1418]},{"teal":1454,"source":"contracts/NFDInstance.algo.ts:311","pc":[1419,1420]},{"teal":1455,"source":"contracts/NFDInstance.algo.ts:311","pc":[1421]},{"teal":1456,"source":"contracts/NFDInstance.algo.ts:311","pc":[1422,1423]},{"teal":1457,"source":"contracts/NFDInstance.algo.ts:311","pc":[1424]},{"teal":1458,"source":"contracts/NFDInstance.algo.ts:311","pc":[1425]},{"teal":1459,"source":"contracts/NFDInstance.algo.ts:311","pc":[1426]},{"teal":1460,"source":"contracts/NFDInstance.algo.ts:311","pc":[1427,1428]},{"teal":1467,"source":"contracts/NFDInstance.algo.ts:290","pc":[1429,1430]},{"teal":1468,"source":"contracts/NFDInstance.algo.ts:290","pc":[1431]},{"teal":1469,"source":"contracts/NFDInstance.algo.ts:290","pc":[1432]},{"teal":1470,"source":"contracts/NFDInstance.algo.ts:290","pc":[1433,1434]},{"teal":1471,"source":"contracts/NFDInstance.algo.ts:290","pc":[1435,1436,1437]},{"teal":1477,"source":"contracts/NFDInstance.algo.ts:315","pc":[1438,1439]},{"teal":1478,"source":"contracts/NFDInstance.algo.ts:315","pc":[1440,1441]},{"teal":1479,"source":"contracts/NFDInstance.algo.ts:315","pc":[1442]},{"teal":1480,"source":"contracts/NFDInstance.algo.ts:315","pc":[1443,1444,1445]},{"teal":1485,"source":"contracts/NFDInstance.algo.ts:316","pc":[1446]},{"teal":1486,"source":"contracts/NFDInstance.algo.ts:316","pc":[1447,1448,1449]},{"teal":1491,"source":"contracts/NFDInstance.algo.ts:318","pc":[1450,1451]},{"teal":1492,"source":"contracts/NFDInstance.algo.ts:318","pc":[1452,1453]},{"teal":1493,"source":"contracts/NFDInstance.algo.ts:318","pc":[1454]},{"teal":1497,"source":"contracts/NFDInstance.algo.ts:285","pc":[1455,1456]},{"teal":1500,"source":"contracts/NFDInstance.algo.ts:285","pc":[1457,1458]},{"teal":1501,"source":"contracts/NFDInstance.algo.ts:285","pc":[1459]},{"teal":1506,"source":"contracts/NFDInstance.algo.ts:321","pc":[1460,1461,1462]},{"teal":1509,"source":"contracts/NFDInstance.algo.ts:321","pc":[1463,1464,1465]},{"teal":1510,"source":"contracts/NFDInstance.algo.ts:321","pc":[1466]},{"teal":1511,"source":"contracts/NFDInstance.algo.ts:321","pc":[1467]},{"teal":1515,"source":"contracts/NFDInstance.algo.ts:321","pc":[1468,1469,1470]},{"teal":1518,"source":"contracts/NFDInstance.algo.ts:321","pc":[1471]},{"teal":1519,"source":"contracts/NFDInstance.algo.ts:321","pc":[1472,1473]},{"teal":1523,"source":"contracts/NFDInstance.algo.ts:322","pc":[1474,1475,1476]},{"teal":1524,"source":"contracts/NFDInstance.algo.ts:322","pc":[1477]},{"teal":1525,"source":"contracts/NFDInstance.algo.ts:322","pc":[1478]},{"teal":1526,"source":"contracts/NFDInstance.algo.ts:322","pc":[1479]},{"teal":1527,"source":"contracts/NFDInstance.algo.ts:322","pc":[1480]},{"teal":1528,"source":"contracts/NFDInstance.algo.ts:322","pc":[1481]},{"teal":1529,"source":"contracts/NFDInstance.algo.ts:322","pc":[1482]},{"teal":1533,"source":"contracts/NFDInstance.algo.ts:323","pc":[1483,1484,1485]},{"teal":1534,"source":"contracts/NFDInstance.algo.ts:323","pc":[1486]},{"teal":1537,"source":"contracts/NFDInstance.algo.ts:323","errorMessage":"can't update fields if NFD expired","pc":[1487]},{"teal":1541,"source":"contracts/NFDInstance.algo.ts:325","pc":[1488]},{"teal":1542,"source":"contracts/NFDInstance.algo.ts:325","pc":[1489,1490]},{"teal":1543,"source":"contracts/NFDInstance.algo.ts:325","pc":[1491]},{"teal":1544,"source":"contracts/NFDInstance.algo.ts:325","pc":[1492]},{"teal":1549,"source":"contracts/NFDInstance.algo.ts:328","pc":[1493,1494]},{"teal":1550,"source":"contracts/NFDInstance.algo.ts:328","pc":[1495,1496]},{"teal":1551,"source":"contracts/NFDInstance.algo.ts:328","pc":[1497]},{"teal":1552,"source":"contracts/NFDInstance.algo.ts:328","pc":[1498,1499,1500]},{"teal":1558,"source":"contracts/NFDInstance.algo.ts:329","pc":[1501,1502]},{"teal":1559,"source":"contracts/NFDInstance.algo.ts:329","pc":[1503]},{"teal":1560,"source":"contracts/NFDInstance.algo.ts:329","pc":[1504]},{"teal":1561,"source":"contracts/NFDInstance.algo.ts:329","pc":[1505]},{"teal":1562,"source":"contracts/NFDInstance.algo.ts:329","pc":[1506]},{"teal":1563,"source":"contracts/NFDInstance.algo.ts:329","pc":[1507]},{"teal":1564,"source":"contracts/NFDInstance.algo.ts:329","pc":[1508,1509,1510]},{"teal":1565,"source":"contracts/NFDInstance.algo.ts:329","pc":[1511,1512]},{"teal":1566,"source":"contracts/NFDInstance.algo.ts:329","pc":[1513,1514]},{"teal":1567,"source":"contracts/NFDInstance.algo.ts:329","pc":[1515]},{"teal":1568,"source":"contracts/NFDInstance.algo.ts:329","pc":[1516,1517]},{"teal":1569,"source":"contracts/NFDInstance.algo.ts:329","pc":[1518,1519]},{"teal":1570,"source":"contracts/NFDInstance.algo.ts:329","pc":[1520,1521]},{"teal":1571,"source":"contracts/NFDInstance.algo.ts:329","pc":[1522]},{"teal":1572,"source":"contracts/NFDInstance.algo.ts:329","pc":[1523]},{"teal":1573,"source":"contracts/NFDInstance.algo.ts:329","pc":[1524]},{"teal":1574,"source":"contracts/NFDInstance.algo.ts:329","pc":[1525]},{"teal":1575,"source":"contracts/NFDInstance.algo.ts:329","pc":[1526,1527]},{"teal":1576,"source":"contracts/NFDInstance.algo.ts:329","pc":[1528]},{"teal":1577,"source":"contracts/NFDInstance.algo.ts:329","pc":[1529]},{"teal":1578,"source":"contracts/NFDInstance.algo.ts:329","pc":[1530]},{"teal":1579,"source":"contracts/NFDInstance.algo.ts:329","pc":[1531]},{"teal":1580,"source":"contracts/NFDInstance.algo.ts:329","pc":[1532]},{"teal":1581,"source":"contracts/NFDInstance.algo.ts:329","pc":[1533]},{"teal":1582,"source":"contracts/NFDInstance.algo.ts:329","pc":[1534]},{"teal":1583,"source":"contracts/NFDInstance.algo.ts:329","pc":[1535,1536,1537]},{"teal":1584,"source":"contracts/NFDInstance.algo.ts:329","pc":[1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551]},{"teal":1585,"source":"contracts/NFDInstance.algo.ts:329","pc":[1552]},{"teal":1586,"source":"contracts/NFDInstance.algo.ts:329","pc":[1553]},{"teal":1589,"source":"contracts/NFDInstance.algo.ts:329","pc":[1554,1555,1556]},{"teal":1594,"source":"contracts/NFDInstance.algo.ts:330","pc":[1557,1558]},{"teal":1595,"source":"contracts/NFDInstance.algo.ts:330","pc":[1559,1560]},{"teal":1596,"source":"contracts/NFDInstance.algo.ts:330","pc":[1561]},{"teal":1597,"source":"contracts/NFDInstance.algo.ts:330","pc":[1562,1563]},{"teal":1598,"source":"contracts/NFDInstance.algo.ts:330","pc":[1564,1565]},{"teal":1599,"source":"contracts/NFDInstance.algo.ts:330","pc":[1566,1567]},{"teal":1600,"source":"contracts/NFDInstance.algo.ts:330","pc":[1568]},{"teal":1601,"source":"contracts/NFDInstance.algo.ts:330","pc":[1569]},{"teal":1602,"source":"contracts/NFDInstance.algo.ts:330","pc":[1570]},{"teal":1603,"source":"contracts/NFDInstance.algo.ts:330","pc":[1571]},{"teal":1604,"source":"contracts/NFDInstance.algo.ts:330","pc":[1572,1573]},{"teal":1605,"source":"contracts/NFDInstance.algo.ts:330","pc":[1574]},{"teal":1606,"source":"contracts/NFDInstance.algo.ts:330","pc":[1575]},{"teal":1607,"source":"contracts/NFDInstance.algo.ts:330","pc":[1576]},{"teal":1608,"source":"contracts/NFDInstance.algo.ts:330","pc":[1577]},{"teal":1609,"source":"contracts/NFDInstance.algo.ts:330","pc":[1578]},{"teal":1610,"source":"contracts/NFDInstance.algo.ts:330","pc":[1579]},{"teal":1611,"source":"contracts/NFDInstance.algo.ts:330","pc":[1580]},{"teal":1612,"source":"contracts/NFDInstance.algo.ts:330","pc":[1581,1582,1583]},{"teal":1613,"source":"contracts/NFDInstance.algo.ts:330","pc":[1584,1585]},{"teal":1614,"source":"contracts/NFDInstance.algo.ts:330","pc":[1586,1587]},{"teal":1615,"source":"contracts/NFDInstance.algo.ts:330","pc":[1588,1589]},{"teal":1616,"source":"contracts/NFDInstance.algo.ts:330","pc":[1590,1591]},{"teal":1617,"source":"contracts/NFDInstance.algo.ts:330","pc":[1592,1593]},{"teal":1618,"source":"contracts/NFDInstance.algo.ts:330","pc":[1594,1595]},{"teal":1619,"source":"contracts/NFDInstance.algo.ts:330","pc":[1596]},{"teal":1620,"source":"contracts/NFDInstance.algo.ts:330","pc":[1597]},{"teal":1621,"source":"contracts/NFDInstance.algo.ts:330","pc":[1598]},{"teal":1622,"source":"contracts/NFDInstance.algo.ts:330","pc":[1599]},{"teal":1623,"source":"contracts/NFDInstance.algo.ts:330","pc":[1600,1601]},{"teal":1624,"source":"contracts/NFDInstance.algo.ts:330","pc":[1602]},{"teal":1625,"source":"contracts/NFDInstance.algo.ts:330","pc":[1603]},{"teal":1626,"source":"contracts/NFDInstance.algo.ts:330","pc":[1604]},{"teal":1627,"source":"contracts/NFDInstance.algo.ts:330","pc":[1605]},{"teal":1628,"source":"contracts/NFDInstance.algo.ts:330","pc":[1606]},{"teal":1629,"source":"contracts/NFDInstance.algo.ts:330","pc":[1607]},{"teal":1630,"source":"contracts/NFDInstance.algo.ts:330","pc":[1608]},{"teal":1631,"source":"contracts/NFDInstance.algo.ts:330","pc":[1609,1610,1611]},{"teal":1632,"source":"contracts/NFDInstance.algo.ts:330","pc":[1612]},{"teal":1636,"source":"contracts/NFDInstance.algo.ts:331","pc":[1613]},{"teal":1641,"source":"contracts/NFDInstance.algo.ts:333","pc":[1614]},{"teal":1644,"source":"contracts/NFDInstance.algo.ts:333","errorMessage":"invalid update call by registry","pc":[1615]},{"teal":1649,"source":"contracts/NFDInstance.algo.ts:336","pc":[1616,1617,1618]},{"teal":1650,"source":"contracts/NFDInstance.algo.ts:336","pc":[1619,1620]},{"teal":1654,"source":"contracts/NFDInstance.algo.ts:337","pc":[1621]},{"teal":1655,"source":"contracts/NFDInstance.algo.ts:337","pc":[1622,1623]},{"teal":1660,"source":"contracts/NFDInstance.algo.ts:337","pc":[1624,1625]},{"teal":1661,"source":"contracts/NFDInstance.algo.ts:337","pc":[1626,1627]},{"teal":1662,"source":"contracts/NFDInstance.algo.ts:337","pc":[1628]},{"teal":1663,"source":"contracts/NFDInstance.algo.ts:337","pc":[1629]},{"teal":1664,"source":"contracts/NFDInstance.algo.ts:337","pc":[1630]},{"teal":1665,"source":"contracts/NFDInstance.algo.ts:337","pc":[1631,1632,1633]},{"teal":1669,"source":"contracts/NFDInstance.algo.ts:338","pc":[1634,1635]},{"teal":1670,"source":"contracts/NFDInstance.algo.ts:338","pc":[1636,1637]},{"teal":1671,"source":"contracts/NFDInstance.algo.ts:338","pc":[1638]},{"teal":1672,"source":"contracts/NFDInstance.algo.ts:338","pc":[1639,1640]},{"teal":1673,"source":"contracts/NFDInstance.algo.ts:338","pc":[1641]},{"teal":1674,"source":"contracts/NFDInstance.algo.ts:338","pc":[1642]},{"teal":1675,"source":"contracts/NFDInstance.algo.ts:338","pc":[1643]},{"teal":1676,"source":"contracts/NFDInstance.algo.ts:338","pc":[1644]},{"teal":1677,"source":"contracts/NFDInstance.algo.ts:338","pc":[1645]},{"teal":1678,"source":"contracts/NFDInstance.algo.ts:338","pc":[1646,1647]},{"teal":1679,"source":"contracts/NFDInstance.algo.ts:338","pc":[1648,1649]},{"teal":1680,"source":"contracts/NFDInstance.algo.ts:338","pc":[1650,1651]},{"teal":1681,"source":"contracts/NFDInstance.algo.ts:338","pc":[1652]},{"teal":1682,"source":"contracts/NFDInstance.algo.ts:338","pc":[1653]},{"teal":1683,"source":"contracts/NFDInstance.algo.ts:338","pc":[1654]},{"teal":1684,"source":"contracts/NFDInstance.algo.ts:338","pc":[1655]},{"teal":1685,"source":"contracts/NFDInstance.algo.ts:338","pc":[1656,1657]},{"teal":1686,"source":"contracts/NFDInstance.algo.ts:338","pc":[1658]},{"teal":1687,"source":"contracts/NFDInstance.algo.ts:338","pc":[1659]},{"teal":1688,"source":"contracts/NFDInstance.algo.ts:338","pc":[1660]},{"teal":1689,"source":"contracts/NFDInstance.algo.ts:338","pc":[1661]},{"teal":1690,"source":"contracts/NFDInstance.algo.ts:338","pc":[1662]},{"teal":1691,"source":"contracts/NFDInstance.algo.ts:338","pc":[1663]},{"teal":1692,"source":"contracts/NFDInstance.algo.ts:338","pc":[1664]},{"teal":1693,"source":"contracts/NFDInstance.algo.ts:338","pc":[1665,1666,1667]},{"teal":1694,"source":"contracts/NFDInstance.algo.ts:338","pc":[1668,1669]},{"teal":1698,"source":"contracts/NFDInstance.algo.ts:339","pc":[1670,1671]},{"teal":1699,"source":"contracts/NFDInstance.algo.ts:339","pc":[1672,1673]},{"teal":1700,"source":"contracts/NFDInstance.algo.ts:339","pc":[1674]},{"teal":1701,"source":"contracts/NFDInstance.algo.ts:339","pc":[1675,1676]},{"teal":1702,"source":"contracts/NFDInstance.algo.ts:339","pc":[1677]},{"teal":1703,"source":"contracts/NFDInstance.algo.ts:339","pc":[1678]},{"teal":1704,"source":"contracts/NFDInstance.algo.ts:339","pc":[1679]},{"teal":1705,"source":"contracts/NFDInstance.algo.ts:339","pc":[1680]},{"teal":1706,"source":"contracts/NFDInstance.algo.ts:339","pc":[1681]},{"teal":1707,"source":"contracts/NFDInstance.algo.ts:339","pc":[1682]},{"teal":1708,"source":"contracts/NFDInstance.algo.ts:339","pc":[1683]},{"teal":1709,"source":"contracts/NFDInstance.algo.ts:339","pc":[1684,1685]},{"teal":1710,"source":"contracts/NFDInstance.algo.ts:339","pc":[1686,1687]},{"teal":1711,"source":"contracts/NFDInstance.algo.ts:339","pc":[1688,1689]},{"teal":1712,"source":"contracts/NFDInstance.algo.ts:339","pc":[1690]},{"teal":1713,"source":"contracts/NFDInstance.algo.ts:339","pc":[1691]},{"teal":1714,"source":"contracts/NFDInstance.algo.ts:339","pc":[1692]},{"teal":1715,"source":"contracts/NFDInstance.algo.ts:339","pc":[1693]},{"teal":1716,"source":"contracts/NFDInstance.algo.ts:339","pc":[1694,1695]},{"teal":1717,"source":"contracts/NFDInstance.algo.ts:339","pc":[1696]},{"teal":1718,"source":"contracts/NFDInstance.algo.ts:339","pc":[1697]},{"teal":1719,"source":"contracts/NFDInstance.algo.ts:339","pc":[1698]},{"teal":1720,"source":"contracts/NFDInstance.algo.ts:339","pc":[1699]},{"teal":1721,"source":"contracts/NFDInstance.algo.ts:339","pc":[1700]},{"teal":1722,"source":"contracts/NFDInstance.algo.ts:339","pc":[1701]},{"teal":1723,"source":"contracts/NFDInstance.algo.ts:339","pc":[1702]},{"teal":1724,"source":"contracts/NFDInstance.algo.ts:339","pc":[1703,1704,1705]},{"teal":1725,"source":"contracts/NFDInstance.algo.ts:339","pc":[1706,1707]},{"teal":1732,"source":"contracts/NFDInstance.algo.ts:341","pc":[1708,1709]},{"teal":1733,"source":"contracts/NFDInstance.algo.ts:341","pc":[1710,1711]},{"teal":1734,"source":"contracts/NFDInstance.algo.ts:341","pc":[1712,1713]},{"teal":1735,"source":"contracts/NFDInstance.algo.ts:341","pc":[1714,1715,1716]},{"teal":1738,"source":"contracts/NFDInstance.algo.ts:340","errorMessage":"field not updatable or no permissions to update","pc":[1717]},{"teal":1742,"source":"contracts/NFDInstance.algo.ts:344","pc":[1718,1719]},{"teal":1743,"source":"contracts/NFDInstance.algo.ts:344","pc":[1720]},{"teal":1748,"source":"contracts/NFDInstance.algo.ts:345","pc":[1721,1722]},{"teal":1749,"source":"contracts/NFDInstance.algo.ts:345","pc":[1723]},{"teal":1750,"source":"contracts/NFDInstance.algo.ts:345","pc":[1724]},{"teal":1751,"source":"contracts/NFDInstance.algo.ts:345","pc":[1725]},{"teal":1752,"source":"contracts/NFDInstance.algo.ts:345","pc":[1726,1727,1728]},{"teal":1757,"source":"contracts/NFDInstance.algo.ts:346","pc":[1729,1730]},{"teal":1758,"source":"contracts/NFDInstance.algo.ts:346","pc":[1731,1732]},{"teal":1759,"source":"contracts/NFDInstance.algo.ts:346","pc":[1733]},{"teal":1766,"source":"contracts/NFDInstance.algo.ts:337","pc":[1734,1735]},{"teal":1767,"source":"contracts/NFDInstance.algo.ts:337","pc":[1736]},{"teal":1768,"source":"contracts/NFDInstance.algo.ts:337","pc":[1737]},{"teal":1769,"source":"contracts/NFDInstance.algo.ts:337","pc":[1738,1739]},{"teal":1770,"source":"contracts/NFDInstance.algo.ts:337","pc":[1740,1741,1742]},{"teal":1773,"source":"contracts/NFDInstance.algo.ts:321","pc":[1743]},{"teal":1777,"source":"contracts/NFDInstance.algo.ts:351","pc":[1744,1745,1746]},{"teal":1780,"source":"contracts/NFDInstance.algo.ts:351","pc":[1747]},{"teal":1781,"source":"contracts/NFDInstance.algo.ts:351","pc":[1748,1749]},{"teal":1785,"source":"contracts/NFDInstance.algo.ts:352","pc":[1750,1751,1752]},{"teal":1786,"source":"contracts/NFDInstance.algo.ts:352","pc":[1753]},{"teal":1787,"source":"contracts/NFDInstance.algo.ts:352","pc":[1754]},{"teal":1788,"source":"contracts/NFDInstance.algo.ts:352","pc":[1755]},{"teal":1789,"source":"contracts/NFDInstance.algo.ts:352","pc":[1756]},{"teal":1790,"source":"contracts/NFDInstance.algo.ts:352","pc":[1757]},{"teal":1791,"source":"contracts/NFDInstance.algo.ts:352","pc":[1758]},{"teal":1795,"source":"contracts/NFDInstance.algo.ts:353","pc":[1759,1760,1761]},{"teal":1796,"source":"contracts/NFDInstance.algo.ts:353","pc":[1762]},{"teal":1799,"source":"contracts/NFDInstance.algo.ts:353","errorMessage":"can't update fields if NFD expired","pc":[1763]},{"teal":1803,"source":"contracts/NFDInstance.algo.ts:355","pc":[1764,1765,1766]},{"teal":1804,"source":"contracts/NFDInstance.algo.ts:355","pc":[1767,1768]},{"teal":1808,"source":"contracts/NFDInstance.algo.ts:356","pc":[1769]},{"teal":1809,"source":"contracts/NFDInstance.algo.ts:356","pc":[1770,1771]},{"teal":1814,"source":"contracts/NFDInstance.algo.ts:356","pc":[1772,1773]},{"teal":1815,"source":"contracts/NFDInstance.algo.ts:356","pc":[1774,1775]},{"teal":1816,"source":"contracts/NFDInstance.algo.ts:356","pc":[1776]},{"teal":1817,"source":"contracts/NFDInstance.algo.ts:356","pc":[1777,1778,1779]},{"teal":1821,"source":"contracts/NFDInstance.algo.ts:357","pc":[1780,1781]},{"teal":1822,"source":"contracts/NFDInstance.algo.ts:357","pc":[1782,1783]},{"teal":1823,"source":"contracts/NFDInstance.algo.ts:357","pc":[1784,1785]},{"teal":1827,"source":"contracts/NFDInstance.algo.ts:358","pc":[1786,1787]},{"teal":1828,"source":"contracts/NFDInstance.algo.ts:358","pc":[1788]},{"teal":1829,"source":"contracts/NFDInstance.algo.ts:358","pc":[1789]},{"teal":1830,"source":"contracts/NFDInstance.algo.ts:358","pc":[1790,1791]},{"teal":1831,"source":"contracts/NFDInstance.algo.ts:358","pc":[1792,1793]},{"teal":1838,"source":"contracts/NFDInstance.algo.ts:360","pc":[1794,1795]},{"teal":1839,"source":"contracts/NFDInstance.algo.ts:360","pc":[1796,1797]},{"teal":1840,"source":"contracts/NFDInstance.algo.ts:360","pc":[1798,1799]},{"teal":1841,"source":"contracts/NFDInstance.algo.ts:360","pc":[1800,1801,1802]},{"teal":1844,"source":"contracts/NFDInstance.algo.ts:359","errorMessage":"field not updatable or no permissions to update","pc":[1803]},{"teal":1848,"source":"contracts/NFDInstance.algo.ts:363","pc":[1804,1805]},{"teal":1849,"source":"contracts/NFDInstance.algo.ts:363","pc":[1806]},{"teal":1854,"source":"contracts/NFDInstance.algo.ts:364","pc":[1807,1808]},{"teal":1855,"source":"contracts/NFDInstance.algo.ts:364","pc":[1809]},{"teal":1856,"source":"contracts/NFDInstance.algo.ts:364","pc":[1810]},{"teal":1857,"source":"contracts/NFDInstance.algo.ts:364","pc":[1811]},{"teal":1858,"source":"contracts/NFDInstance.algo.ts:364","pc":[1812,1813,1814]},{"teal":1863,"source":"contracts/NFDInstance.algo.ts:365","pc":[1815,1816]},{"teal":1864,"source":"contracts/NFDInstance.algo.ts:365","pc":[1817,1818]},{"teal":1865,"source":"contracts/NFDInstance.algo.ts:365","pc":[1819]},{"teal":1872,"source":"contracts/NFDInstance.algo.ts:356","pc":[1820,1821]},{"teal":1873,"source":"contracts/NFDInstance.algo.ts:356","pc":[1822]},{"teal":1874,"source":"contracts/NFDInstance.algo.ts:356","pc":[1823]},{"teal":1875,"source":"contracts/NFDInstance.algo.ts:356","pc":[1824,1825]},{"teal":1876,"source":"contracts/NFDInstance.algo.ts:356","pc":[1826,1827,1828]},{"teal":1881,"source":"contracts/NFDInstance.algo.ts:368","pc":[1829]},{"teal":1882,"source":"contracts/NFDInstance.algo.ts:368","pc":[1830,1831]},{"teal":1883,"source":"contracts/NFDInstance.algo.ts:368","pc":[1832]},{"teal":1884,"source":"contracts/NFDInstance.algo.ts:368","pc":[1833]},{"teal":1885,"source":"contracts/NFDInstance.algo.ts:351","pc":[1834]},{"teal":1890,"source":"contracts/NFDInstance.algo.ts:371","pc":[1835,1836]},{"teal":1893,"source":"contracts/NFDInstance.algo.ts:372","pc":[1837,1838,1839]},{"teal":1894,"source":"contracts/NFDInstance.algo.ts:372","pc":[1840,1841,1842]},{"teal":1897,"source":"contracts/NFDInstance.algo.ts:371","pc":[1843,1844,1845]},{"teal":1898,"source":"contracts/NFDInstance.algo.ts:371","pc":[1846]},{"teal":1899,"source":"contracts/NFDInstance.algo.ts:371","pc":[1847]},{"teal":1900,"source":"contracts/NFDInstance.algo.ts:371","pc":[1848]},{"teal":1901,"source":"contracts/NFDInstance.algo.ts:371","pc":[1849,1850,1851]},{"teal":1902,"source":"contracts/NFDInstance.algo.ts:371","pc":[1852]},{"teal":1903,"source":"contracts/NFDInstance.algo.ts:371","pc":[1853]},{"teal":1904,"source":"contracts/NFDInstance.algo.ts:371","pc":[1854]},{"teal":1905,"source":"contracts/NFDInstance.algo.ts:371","pc":[1855]},{"teal":1906,"source":"contracts/NFDInstance.algo.ts:371","pc":[1856]},{"teal":1907,"source":"contracts/NFDInstance.algo.ts:371","pc":[1857]},{"teal":1911,"source":"contracts/NFDInstance.algo.ts:371","pc":[1858,1859,1860]},{"teal":1914,"source":"contracts/NFDInstance.algo.ts:371","pc":[1861]},{"teal":1915,"source":"contracts/NFDInstance.algo.ts:371","pc":[1862,1863]},{"teal":1919,"source":"contracts/NFDInstance.algo.ts:374","pc":[1864,1865]},{"teal":1920,"source":"contracts/NFDInstance.algo.ts:374","pc":[1866,1867,1868]},{"teal":1921,"source":"contracts/NFDInstance.algo.ts:374","pc":[1869,1870]},{"teal":1926,"source":"contracts/NFDInstance.algo.ts:376","pc":[1871,1872]},{"teal":1927,"source":"contracts/NFDInstance.algo.ts:376","pc":[1873,1874,1875]},{"teal":1928,"source":"contracts/NFDInstance.algo.ts:376","pc":[1876,1877,1878]},{"teal":1933,"source":"contracts/NFDInstance.algo.ts:377","pc":[1879,1880]},{"teal":1934,"source":"contracts/NFDInstance.algo.ts:377","pc":[1881,1882,1883]},{"teal":1935,"source":"contracts/NFDInstance.algo.ts:377","pc":[1884,1885,1886]},{"teal":1943,"source":"contracts/NFDInstance.algo.ts:380","pc":[1887,1888]},{"teal":1944,"source":"contracts/NFDInstance.algo.ts:380","pc":[1889,1890,1891]},{"teal":1945,"source":"contracts/NFDInstance.algo.ts:380","pc":[1892]},{"teal":1946,"source":"contracts/NFDInstance.algo.ts:380","pc":[1893,1894,1895]},{"teal":1947,"source":"contracts/NFDInstance.algo.ts:380","pc":[1896,1897]},{"teal":1948,"source":"contracts/NFDInstance.algo.ts:380","pc":[1898,1899,1900]},{"teal":1949,"source":"contracts/NFDInstance.algo.ts:380","pc":[1901]},{"teal":1953,"source":"contracts/NFDInstance.algo.ts:379","errorMessage":"must be user-defined or verified field to fetch","pc":[1902]},{"teal":1958,"source":"contracts/NFDInstance.algo.ts:383","pc":[1903,1904]},{"teal":1959,"source":"contracts/NFDInstance.algo.ts:383","pc":[1905]},{"teal":1960,"source":"contracts/NFDInstance.algo.ts:383","pc":[1906]},{"teal":1961,"source":"contracts/NFDInstance.algo.ts:383","pc":[1907]},{"teal":1962,"source":"contracts/NFDInstance.algo.ts:383","pc":[1908,1909,1910]},{"teal":1967,"source":"contracts/NFDInstance.algo.ts:384","pc":[1911,1912]},{"teal":1968,"source":"contracts/NFDInstance.algo.ts:384","pc":[1913]},{"teal":1971,"source":"contracts/NFDInstance.algo.ts:384","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[1914]},{"teal":1972,"source":"contracts/NFDInstance.algo.ts:384","pc":[1915,1916,1917]},{"teal":1977,"source":"contracts/NFDInstance.algo.ts:387","pc":[1918,1919]},{"teal":1978,"source":"contracts/NFDInstance.algo.ts:387","pc":[1920,1921,1922,1923,1924]},{"teal":1979,"source":"contracts/NFDInstance.algo.ts:387","pc":[1925]},{"teal":1980,"source":"contracts/NFDInstance.algo.ts:387","pc":[1926,1927]},{"teal":1985,"source":"contracts/NFDInstance.algo.ts:388","pc":[1928,1929]},{"teal":1986,"source":"contracts/NFDInstance.algo.ts:388","pc":[1930]},{"teal":1987,"source":"contracts/NFDInstance.algo.ts:388","pc":[1931]},{"teal":1988,"source":"contracts/NFDInstance.algo.ts:388","pc":[1932]},{"teal":1989,"source":"contracts/NFDInstance.algo.ts:388","pc":[1933]},{"teal":1990,"source":"contracts/NFDInstance.algo.ts:388","pc":[1934,1935,1936]},{"teal":1995,"source":"contracts/NFDInstance.algo.ts:389","pc":[1937]},{"teal":1996,"source":"contracts/NFDInstance.algo.ts:389","pc":[1938,1939,1940]},{"teal":2001,"source":"contracts/NFDInstance.algo.ts:392","pc":[1941,1942]},{"teal":2002,"source":"contracts/NFDInstance.algo.ts:392","pc":[1943]},{"teal":2005,"source":"contracts/NFDInstance.algo.ts:392","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1944]},{"teal":2006,"source":"contracts/NFDInstance.algo.ts:392","pc":[1945,1946]},{"teal":2010,"source":"contracts/NFDInstance.algo.ts:393","pc":[1947,1948]},{"teal":2011,"source":"contracts/NFDInstance.algo.ts:393","pc":[1949,1950,1951,1952]},{"teal":2012,"source":"contracts/NFDInstance.algo.ts:393","pc":[1953]},{"teal":2013,"source":"contracts/NFDInstance.algo.ts:393","pc":[1954,1955]},{"teal":2017,"source":"contracts/NFDInstance.algo.ts:394","pc":[1956]},{"teal":2018,"source":"contracts/NFDInstance.algo.ts:394","pc":[1957,1958]},{"teal":2023,"source":"contracts/NFDInstance.algo.ts:394","pc":[1959,1960]},{"teal":2024,"source":"contracts/NFDInstance.algo.ts:394","pc":[1961,1962]},{"teal":2025,"source":"contracts/NFDInstance.algo.ts:394","pc":[1963]},{"teal":2026,"source":"contracts/NFDInstance.algo.ts:394","pc":[1964,1965,1966]},{"teal":2030,"source":"contracts/NFDInstance.algo.ts:395","pc":[1967,1968]},{"teal":2031,"source":"contracts/NFDInstance.algo.ts:395","pc":[1969,1970]},{"teal":2032,"source":"contracts/NFDInstance.algo.ts:395","pc":[1971,1972,1973]},{"teal":2033,"source":"contracts/NFDInstance.algo.ts:395","pc":[1974]},{"teal":2034,"source":"contracts/NFDInstance.algo.ts:395","pc":[1975,1976]},{"teal":2039,"source":"contracts/NFDInstance.algo.ts:396","pc":[1977,1978]},{"teal":2040,"source":"contracts/NFDInstance.algo.ts:396","pc":[1979]},{"teal":2041,"source":"contracts/NFDInstance.algo.ts:396","pc":[1980]},{"teal":2042,"source":"contracts/NFDInstance.algo.ts:396","pc":[1981]},{"teal":2043,"source":"contracts/NFDInstance.algo.ts:396","pc":[1982]},{"teal":2044,"source":"contracts/NFDInstance.algo.ts:396","pc":[1983,1984,1985]},{"teal":2047,"source":"contracts/NFDInstance.algo.ts:397","pc":[1986,1987,1988]},{"teal":2052,"source":"contracts/NFDInstance.algo.ts:400","pc":[1989,1990]},{"teal":2053,"source":"contracts/NFDInstance.algo.ts:400","pc":[1991,1992]},{"teal":2054,"source":"contracts/NFDInstance.algo.ts:400","pc":[1993]},{"teal":2057,"source":"contracts/NFDInstance.algo.ts:400","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1994]},{"teal":2058,"source":"contracts/NFDInstance.algo.ts:400","pc":[1995]},{"teal":2059,"source":"contracts/NFDInstance.algo.ts:400","pc":[1996,1997]},{"teal":2064,"source":"contracts/NFDInstance.algo.ts:394","pc":[1998,1999]},{"teal":2065,"source":"contracts/NFDInstance.algo.ts:394","pc":[2000]},{"teal":2066,"source":"contracts/NFDInstance.algo.ts:394","pc":[2001]},{"teal":2067,"source":"contracts/NFDInstance.algo.ts:394","pc":[2002,2003]},{"teal":2068,"source":"contracts/NFDInstance.algo.ts:394","pc":[2004,2005,2006]},{"teal":2073,"source":"contracts/NFDInstance.algo.ts:402","pc":[2007,2008]},{"teal":2077,"source":"contracts/NFDInstance.algo.ts:371","pc":[2009,2010]},{"teal":2080,"source":"contracts/NFDInstance.algo.ts:371","pc":[2011,2012]},{"teal":2081,"source":"contracts/NFDInstance.algo.ts:371","pc":[2013]},{"teal":2086,"source":"contracts/NFDInstance.algo.ts:407","pc":[2014,2015,2016]},{"teal":2087,"source":"contracts/NFDInstance.algo.ts:407","pc":[2017]},{"teal":2088,"source":"contracts/NFDInstance.algo.ts:407","pc":[2018]},{"teal":2089,"source":"contracts/NFDInstance.algo.ts:407","pc":[2019]},{"teal":2090,"source":"contracts/NFDInstance.algo.ts:407","pc":[2020]},{"teal":2093,"source":"contracts/NFDInstance.algo.ts:407","errorMessage":"argument 0 (reservedFor) for offerForSale must be a address","pc":[2021]},{"teal":2096,"source":"contracts/NFDInstance.algo.ts:407","pc":[2022,2023,2024]},{"teal":2097,"source":"contracts/NFDInstance.algo.ts:407","pc":[2025]},{"teal":2100,"source":"contracts/NFDInstance.algo.ts:407","pc":[2026,2027,2028]},{"teal":2101,"source":"contracts/NFDInstance.algo.ts:407","pc":[2029]},{"teal":2102,"source":"contracts/NFDInstance.algo.ts:407","pc":[2030]},{"teal":2106,"source":"contracts/NFDInstance.algo.ts:407","pc":[2031,2032,2033]},{"teal":2109,"source":"contracts/NFDInstance.algo.ts:407","pc":[2034]},{"teal":2113,"source":"contracts/NFDInstance.algo.ts:408","pc":[2035,2036,2037]},{"teal":2114,"source":"contracts/NFDInstance.algo.ts:408","pc":[2038]},{"teal":2117,"source":"contracts/NFDInstance.algo.ts:408","errorMessage":"can't sell if NFD expired","pc":[2039]},{"teal":2121,"source":"contracts/NFDInstance.algo.ts:409","pc":[2040,2041,2042]},{"teal":2122,"source":"contracts/NFDInstance.algo.ts:409","pc":[2043]},{"teal":2123,"source":"contracts/NFDInstance.algo.ts:409","pc":[2044]},{"teal":2124,"source":"contracts/NFDInstance.algo.ts:409","pc":[2045]},{"teal":2125,"source":"contracts/NFDInstance.algo.ts:409","pc":[2046]},{"teal":2126,"source":"contracts/NFDInstance.algo.ts:409","pc":[2047]},{"teal":2127,"source":"contracts/NFDInstance.algo.ts:409","pc":[2048]},{"teal":2131,"source":"contracts/NFDInstance.algo.ts:410","pc":[2049,2050,2051]},{"teal":2135,"source":"contracts/NFDInstance.algo.ts:411","pc":[2052,2053]},{"teal":2136,"source":"contracts/NFDInstance.algo.ts:411","pc":[2054,2055]},{"teal":2137,"source":"contracts/NFDInstance.algo.ts:411","pc":[2056]},{"teal":2138,"source":"contracts/NFDInstance.algo.ts:411","pc":[2057,2058]},{"teal":2143,"source":"contracts/NFDInstance.algo.ts:416","pc":[2059,2060]},{"teal":2144,"source":"contracts/NFDInstance.algo.ts:416","pc":[2061]},{"teal":2145,"source":"contracts/NFDInstance.algo.ts:416","pc":[2062]},{"teal":2146,"source":"contracts/NFDInstance.algo.ts:416","pc":[2063,2064,2065]},{"teal":2151,"source":"contracts/NFDInstance.algo.ts:417","pc":[2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077]},{"teal":2152,"source":"contracts/NFDInstance.algo.ts:417","pc":[2078,2079]},{"teal":2153,"source":"contracts/NFDInstance.algo.ts:417","pc":[2080,2081,2082]},{"teal":2154,"source":"contracts/NFDInstance.algo.ts:417","pc":[2083]},{"teal":2155,"source":"contracts/NFDInstance.algo.ts:417","pc":[2084]},{"teal":2160,"source":"contracts/NFDInstance.algo.ts:419","pc":[2085,2086]},{"teal":2161,"source":"contracts/NFDInstance.algo.ts:419","pc":[2087]},{"teal":2162,"source":"contracts/NFDInstance.algo.ts:419","pc":[2088]},{"teal":2165,"source":"contracts/NFDInstance.algo.ts:419","errorMessage":"can only be sold if no user-defined or verified properties remain","pc":[2089]},{"teal":2170,"source":"contracts/NFDInstance.algo.ts:422","pc":[2090,2091]},{"teal":2171,"source":"contracts/NFDInstance.algo.ts:422","pc":[2092,2093,2094]},{"teal":2172,"source":"contracts/NFDInstance.algo.ts:422","pc":[2095]},{"teal":2173,"source":"contracts/NFDInstance.algo.ts:422","pc":[2096]},{"teal":2174,"source":"contracts/NFDInstance.algo.ts:422","pc":[2097]},{"teal":2175,"source":"contracts/NFDInstance.algo.ts:422","pc":[2098,2099,2100]},{"teal":2180,"source":"contracts/NFDInstance.algo.ts:423","pc":[2101,2102]},{"teal":2181,"source":"contracts/NFDInstance.algo.ts:423","pc":[2103,2104]},{"teal":2182,"source":"contracts/NFDInstance.algo.ts:423","pc":[2105]},{"teal":2185,"source":"contracts/NFDInstance.algo.ts:423","errorMessage":"must be sold for at least MIN amount","pc":[2106]},{"teal":2190,"source":"contracts/NFDInstance.algo.ts:425","pc":[2107]},{"teal":2191,"source":"contracts/NFDInstance.algo.ts:425","pc":[2108,2109]},{"teal":2192,"source":"contracts/NFDInstance.algo.ts:425","pc":[2110]},{"teal":2193,"source":"contracts/NFDInstance.algo.ts:425","pc":[2111]},{"teal":2197,"source":"contracts/NFDInstance.algo.ts:427","pc":[2112,2113]},{"teal":2198,"source":"contracts/NFDInstance.algo.ts:427","pc":[2114,2115]},{"teal":2199,"source":"contracts/NFDInstance.algo.ts:427","pc":[2116]},{"teal":2203,"source":"contracts/NFDInstance.algo.ts:432","pc":[2117,2118]},{"teal":2204,"source":"contracts/NFDInstance.algo.ts:432","pc":[2119,2120]},{"teal":2205,"source":"contracts/NFDInstance.algo.ts:432","pc":[2121]},{"teal":2206,"source":"contracts/NFDInstance.algo.ts:432","pc":[2122]},{"teal":2211,"source":"contracts/NFDInstance.algo.ts:442","pc":[2123,2124]},{"teal":2212,"source":"contracts/NFDInstance.algo.ts:442","pc":[2125,2126]},{"teal":2213,"source":"contracts/NFDInstance.algo.ts:442","pc":[2127]},{"teal":2214,"source":"contracts/NFDInstance.algo.ts:442","pc":[2128]},{"teal":2215,"source":"contracts/NFDInstance.algo.ts:442","pc":[2129,2130,2131]},{"teal":2216,"source":"contracts/NFDInstance.algo.ts:442","pc":[2132,2133]},{"teal":2217,"source":"contracts/NFDInstance.algo.ts:442","pc":[2134]},{"teal":2218,"source":"contracts/NFDInstance.algo.ts:442","pc":[2135,2136,2137]},{"teal":2219,"source":"contracts/NFDInstance.algo.ts:442","pc":[2138]},{"teal":2220,"source":"contracts/NFDInstance.algo.ts:442","pc":[2139]},{"teal":2223,"source":"contracts/NFDInstance.algo.ts:442","pc":[2140,2141,2142]},{"teal":2228,"source":"contracts/NFDInstance.algo.ts:443","pc":[2143,2144]},{"teal":2229,"source":"contracts/NFDInstance.algo.ts:443","pc":[2145,2146]},{"teal":2230,"source":"contracts/NFDInstance.algo.ts:443","pc":[2147]},{"teal":2231,"source":"contracts/NFDInstance.algo.ts:442","pc":[2148,2149,2150]},{"teal":2237,"source":"contracts/NFDInstance.algo.ts:445","pc":[2151,2152]},{"teal":2238,"source":"contracts/NFDInstance.algo.ts:445","pc":[2153,2154,2155]},{"teal":2239,"source":"contracts/NFDInstance.algo.ts:445","pc":[2156]},{"teal":2240,"source":"contracts/NFDInstance.algo.ts:445","pc":[2157]},{"teal":2241,"source":"contracts/NFDInstance.algo.ts:445","pc":[2158]},{"teal":2242,"source":"contracts/NFDInstance.algo.ts:445","pc":[2159,2160,2161]},{"teal":2243,"source":"contracts/NFDInstance.algo.ts:446","pc":[2162,2163]},{"teal":2244,"source":"contracts/NFDInstance.algo.ts:446","pc":[2164,2165]},{"teal":2245,"source":"contracts/NFDInstance.algo.ts:446","pc":[2166,2167,2168]},{"teal":2246,"source":"contracts/NFDInstance.algo.ts:446","pc":[2169]},{"teal":2247,"source":"contracts/NFDInstance.algo.ts:445","pc":[2170]},{"teal":2250,"source":"contracts/NFDInstance.algo.ts:444","pc":[2171,2172,2173]},{"teal":2255,"source":"contracts/NFDInstance.algo.ts:448","pc":[2174,2175]},{"teal":2256,"source":"contracts/NFDInstance.algo.ts:448","pc":[2176,2177]},{"teal":2257,"source":"contracts/NFDInstance.algo.ts:448","pc":[2178]},{"teal":2258,"source":"contracts/NFDInstance.algo.ts:448","pc":[2179]},{"teal":2259,"source":"contracts/NFDInstance.algo.ts:444","pc":[2180,2181,2182]},{"teal":2264,"source":"contracts/NFDInstance.algo.ts:450","pc":[2183,2184]},{"teal":2265,"source":"contracts/NFDInstance.algo.ts:450","pc":[2185]},{"teal":2276,"source":"contracts/NFDInstance.algo.ts:453","pc":[2186,2187,2188,2189,2190,2191]},{"teal":2277,"source":"contracts/NFDInstance.algo.ts:453","pc":[2192]},{"teal":2278,"source":"contracts/NFDInstance.algo.ts:453","pc":[2193]},{"teal":2279,"source":"contracts/NFDInstance.algo.ts:453","pc":[2194,2195,2196,2197]},{"teal":2280,"source":"contracts/NFDInstance.algo.ts:454","pc":[2198,2199,2200]},{"teal":2281,"source":"contracts/NFDInstance.algo.ts:454","pc":[2201]},{"teal":2282,"source":"contracts/NFDInstance.algo.ts:454","pc":[2202,2203,2204]},{"teal":2283,"source":"contracts/NFDInstance.algo.ts:455","pc":[2205,2206]},{"teal":2284,"source":"contracts/NFDInstance.algo.ts:455","pc":[2207]},{"teal":2285,"source":"contracts/NFDInstance.algo.ts:455","pc":[2208]},{"teal":2286,"source":"contracts/NFDInstance.algo.ts:455","pc":[2209]},{"teal":2287,"source":"contracts/NFDInstance.algo.ts:455","pc":[2210]},{"teal":2288,"source":"contracts/NFDInstance.algo.ts:455","pc":[2211,2212,2213]},{"teal":2289,"source":"contracts/NFDInstance.algo.ts:455","pc":[2214]},{"teal":2290,"source":"contracts/NFDInstance.algo.ts:455","pc":[2215]},{"teal":2291,"source":"contracts/NFDInstance.algo.ts:455","pc":[2216,2217,2218]},{"teal":2292,"source":"contracts/NFDInstance.algo.ts:456","pc":[2219]},{"teal":2293,"source":"contracts/NFDInstance.algo.ts:456","pc":[2220]},{"teal":2294,"source":"contracts/NFDInstance.algo.ts:456","pc":[2221,2222,2223]},{"teal":2295,"source":"contracts/NFDInstance.algo.ts:457","pc":[2224,2225]},{"teal":2296,"source":"contracts/NFDInstance.algo.ts:457","pc":[2226]},{"teal":2297,"source":"contracts/NFDInstance.algo.ts:457","pc":[2227,2228,2229]},{"teal":2298,"source":"contracts/NFDInstance.algo.ts:458","pc":[2230,2231]},{"teal":2299,"source":"contracts/NFDInstance.algo.ts:458","pc":[2232,2233,2234]},{"teal":2300,"source":"contracts/NFDInstance.algo.ts:453","pc":[2235]},{"teal":2301,"source":"contracts/NFDInstance.algo.ts:453","pc":[2236]},{"teal":2302,"source":"contracts/NFDInstance.algo.ts:453","pc":[2237]},{"teal":2303,"source":"contracts/NFDInstance.algo.ts:453","pc":[2238]},{"teal":2304,"source":"contracts/NFDInstance.algo.ts:407","pc":[2239]},{"teal":2309,"source":"contracts/NFDInstance.algo.ts:464","pc":[2240,2241,2242]},{"teal":2310,"source":"contracts/NFDInstance.algo.ts:464","pc":[2243]},{"teal":2311,"source":"contracts/NFDInstance.algo.ts:464","pc":[2244]},{"teal":2315,"source":"contracts/NFDInstance.algo.ts:464","pc":[2245,2246,2247]},{"teal":2319,"source":"contracts/NFDInstance.algo.ts:465","pc":[2248,2249,2250]},{"teal":2320,"source":"contracts/NFDInstance.algo.ts:465","pc":[2251]},{"teal":2323,"source":"contracts/NFDInstance.algo.ts:465","errorMessage":"can't update fields if NFD expired","pc":[2252]},{"teal":2327,"source":"contracts/NFDInstance.algo.ts:466","pc":[2253,2254,2255]},{"teal":2328,"source":"contracts/NFDInstance.algo.ts:466","pc":[2256]},{"teal":2329,"source":"contracts/NFDInstance.algo.ts:466","pc":[2257]},{"teal":2330,"source":"contracts/NFDInstance.algo.ts:466","pc":[2258]},{"teal":2331,"source":"contracts/NFDInstance.algo.ts:466","pc":[2259]},{"teal":2332,"source":"contracts/NFDInstance.algo.ts:466","pc":[2260]},{"teal":2333,"source":"contracts/NFDInstance.algo.ts:466","pc":[2261]},{"teal":2337,"source":"contracts/NFDInstance.algo.ts:467","pc":[2262,2263,2264]},{"teal":2340,"source":"contracts/NFDInstance.algo.ts:467","errorMessage":"must be for sale","pc":[2265]},{"teal":2344,"source":"contracts/NFDInstance.algo.ts:468","pc":[2266,2267,2268]},{"teal":2348,"source":"contracts/NFDInstance.algo.ts:469","pc":[2269,2270]},{"teal":2349,"source":"contracts/NFDInstance.algo.ts:469","pc":[2271]},{"teal":2353,"source":"contracts/NFDInstance.algo.ts:470","pc":[2272,2273]},{"teal":2354,"source":"contracts/NFDInstance.algo.ts:470","pc":[2274]},{"teal":2358,"source":"contracts/NFDInstance.algo.ts:471","pc":[2275]},{"teal":2359,"source":"contracts/NFDInstance.algo.ts:471","pc":[2276,2277]},{"teal":2360,"source":"contracts/NFDInstance.algo.ts:471","pc":[2278]},{"teal":2361,"source":"contracts/NFDInstance.algo.ts:471","pc":[2279]},{"teal":2365,"source":"contracts/NFDInstance.algo.ts:473","pc":[2280,2281]},{"teal":2366,"source":"contracts/NFDInstance.algo.ts:473","pc":[2282]},{"teal":2367,"source":"contracts/NFDInstance.algo.ts:473","pc":[2283]},{"teal":2368,"source":"contracts/NFDInstance.algo.ts:473","pc":[2284,2285]},{"teal":2369,"source":"contracts/NFDInstance.algo.ts:473","pc":[2286,2287,2288]},{"teal":2370,"source":"contracts/NFDInstance.algo.ts:473","pc":[2289]},{"teal":2371,"source":"contracts/NFDInstance.algo.ts:473","pc":[2290,2291,2292]},{"teal":2372,"source":"contracts/NFDInstance.algo.ts:473","pc":[2293,2294]},{"teal":2373,"source":"contracts/NFDInstance.algo.ts:473","pc":[2295]},{"teal":2374,"source":"contracts/NFDInstance.algo.ts:473","pc":[2296]},{"teal":2375,"source":"contracts/NFDInstance.algo.ts:473","pc":[2297]},{"teal":2376,"source":"contracts/NFDInstance.algo.ts:473","pc":[2298]},{"teal":2377,"source":"contracts/NFDInstance.algo.ts:473","pc":[2299,2300,2301]},{"teal":2378,"source":"contracts/NFDInstance.algo.ts:473","pc":[2302]},{"teal":2379,"source":"contracts/NFDInstance.algo.ts:473","pc":[2303]},{"teal":2380,"source":"contracts/NFDInstance.algo.ts:473","pc":[2304,2305,2306]},{"teal":2381,"source":"contracts/NFDInstance.algo.ts:473","pc":[2307]},{"teal":2382,"source":"contracts/NFDInstance.algo.ts:473","pc":[2308]},{"teal":2383,"source":"contracts/NFDInstance.algo.ts:473","pc":[2309]},{"teal":2384,"source":"contracts/NFDInstance.algo.ts:473","pc":[2310]},{"teal":2385,"source":"contracts/NFDInstance.algo.ts:464","pc":[2311]},{"teal":2390,"source":"contracts/NFDInstance.algo.ts:479","pc":[2312,2313,2314]},{"teal":2391,"source":"contracts/NFDInstance.algo.ts:479","pc":[2315,2316,2317]},{"teal":2394,"source":"contracts/NFDInstance.algo.ts:479","pc":[2318,2319,2320]},{"teal":2395,"source":"contracts/NFDInstance.algo.ts:479","pc":[2321]},{"teal":2398,"source":"contracts/NFDInstance.algo.ts:479","pc":[2322,2323,2324]},{"teal":2399,"source":"contracts/NFDInstance.algo.ts:479","pc":[2325]},{"teal":2400,"source":"contracts/NFDInstance.algo.ts:479","pc":[2326]},{"teal":2404,"source":"contracts/NFDInstance.algo.ts:479","pc":[2327,2328,2329]},{"teal":2414,"source":"contracts/NFDInstance.algo.ts:480","pc":[2330,2331,2332,2333,2334,2335]},{"teal":2415,"source":"contracts/NFDInstance.algo.ts:480","pc":[2336]},{"teal":2416,"source":"contracts/NFDInstance.algo.ts:480","pc":[2337]},{"teal":2417,"source":"contracts/NFDInstance.algo.ts:480","pc":[2338,2339,2340,2341]},{"teal":2418,"source":"contracts/NFDInstance.algo.ts:481","pc":[2342,2343,2344]},{"teal":2419,"source":"contracts/NFDInstance.algo.ts:481","pc":[2345]},{"teal":2420,"source":"contracts/NFDInstance.algo.ts:481","pc":[2346,2347,2348]},{"teal":2421,"source":"contracts/NFDInstance.algo.ts:482","pc":[2349,2350]},{"teal":2422,"source":"contracts/NFDInstance.algo.ts:482","pc":[2351]},{"teal":2423,"source":"contracts/NFDInstance.algo.ts:482","pc":[2352]},{"teal":2424,"source":"contracts/NFDInstance.algo.ts:482","pc":[2353]},{"teal":2425,"source":"contracts/NFDInstance.algo.ts:482","pc":[2354]},{"teal":2426,"source":"contracts/NFDInstance.algo.ts:482","pc":[2355,2356,2357]},{"teal":2427,"source":"contracts/NFDInstance.algo.ts:482","pc":[2358]},{"teal":2428,"source":"contracts/NFDInstance.algo.ts:482","pc":[2359]},{"teal":2429,"source":"contracts/NFDInstance.algo.ts:482","pc":[2360,2361,2362]},{"teal":2430,"source":"contracts/NFDInstance.algo.ts:483","pc":[2363,2364]},{"teal":2431,"source":"contracts/NFDInstance.algo.ts:483","pc":[2365,2366,2367]},{"teal":2432,"source":"contracts/NFDInstance.algo.ts:484","pc":[2368,2369]},{"teal":2433,"source":"contracts/NFDInstance.algo.ts:484","pc":[2370]},{"teal":2434,"source":"contracts/NFDInstance.algo.ts:484","pc":[2371,2372,2373]},{"teal":2435,"source":"contracts/NFDInstance.algo.ts:485","pc":[2374,2375]},{"teal":2436,"source":"contracts/NFDInstance.algo.ts:485","pc":[2376]},{"teal":2437,"source":"contracts/NFDInstance.algo.ts:485","pc":[2377]},{"teal":2438,"source":"contracts/NFDInstance.algo.ts:485","pc":[2378]},{"teal":2439,"source":"contracts/NFDInstance.algo.ts:485","pc":[2379,2380,2381]},{"teal":2440,"source":"contracts/NFDInstance.algo.ts:485","pc":[2382]},{"teal":2441,"source":"contracts/NFDInstance.algo.ts:485","pc":[2383]},{"teal":2442,"source":"contracts/NFDInstance.algo.ts:485","pc":[2384,2385,2386]},{"teal":2443,"source":"contracts/NFDInstance.algo.ts:480","pc":[2387]},{"teal":2444,"source":"contracts/NFDInstance.algo.ts:480","pc":[2388]},{"teal":2445,"source":"contracts/NFDInstance.algo.ts:480","pc":[2389]},{"teal":2446,"source":"contracts/NFDInstance.algo.ts:480","pc":[2390]},{"teal":2447,"source":"contracts/NFDInstance.algo.ts:479","pc":[2391]},{"teal":2452,"source":"contracts/NFDInstance.algo.ts:491","pc":[2392,2393]},{"teal":2455,"source":"contracts/NFDInstance.algo.ts:491","pc":[2394,2395,2396]},{"teal":2456,"source":"contracts/NFDInstance.algo.ts:491","pc":[2397]},{"teal":2459,"source":"contracts/NFDInstance.algo.ts:491","pc":[2398,2399,2400]},{"teal":2460,"source":"contracts/NFDInstance.algo.ts:491","pc":[2401]},{"teal":2463,"source":"contracts/NFDInstance.algo.ts:491","pc":[2402,2403,2404]},{"teal":2464,"source":"contracts/NFDInstance.algo.ts:491","pc":[2405]},{"teal":2465,"source":"contracts/NFDInstance.algo.ts:491","pc":[2406]},{"teal":2466,"source":"contracts/NFDInstance.algo.ts:491","pc":[2407]},{"teal":2467,"source":"contracts/NFDInstance.algo.ts:491","pc":[2408]},{"teal":2471,"source":"contracts/NFDInstance.algo.ts:491","pc":[2409,2410,2411]},{"teal":2474,"source":"contracts/NFDInstance.algo.ts:491","pc":[2412]},{"teal":2475,"source":"contracts/NFDInstance.algo.ts:491","pc":[2413,2414]},{"teal":2479,"source":"contracts/NFDInstance.algo.ts:492","pc":[2415,2416]},{"teal":2480,"source":"contracts/NFDInstance.algo.ts:492","pc":[2417,2418]},{"teal":2481,"source":"contracts/NFDInstance.algo.ts:492","pc":[2419]},{"teal":2484,"source":"contracts/NFDInstance.algo.ts:492","errorMessage":"caller must be NFD registry!","pc":[2420]},{"teal":2488,"source":"contracts/NFDInstance.algo.ts:493","pc":[2421]},{"teal":2489,"source":"contracts/NFDInstance.algo.ts:493","pc":[2422,2423,2424]},{"teal":2490,"source":"contracts/NFDInstance.algo.ts:493","pc":[2425,2426]},{"teal":2491,"source":"contracts/NFDInstance.algo.ts:493","pc":[2427]},{"teal":2492,"source":"contracts/NFDInstance.algo.ts:493","pc":[2428]},{"teal":2496,"source":"contracts/NFDInstance.algo.ts:495","pc":[2429,2430]},{"teal":2497,"source":"contracts/NFDInstance.algo.ts:495","pc":[2431,2432,2433]},{"teal":2498,"source":"contracts/NFDInstance.algo.ts:495","pc":[2434,2435]},{"teal":2502,"source":"contracts/NFDInstance.algo.ts:498","pc":[2436,2437]},{"teal":2503,"source":"contracts/NFDInstance.algo.ts:498","pc":[2438,2439]},{"teal":2508,"source":"contracts/NFDInstance.algo.ts:503","pc":[2440,2441]},{"teal":2509,"source":"contracts/NFDInstance.algo.ts:503","pc":[2442,2443,2444]},{"teal":2510,"source":"contracts/NFDInstance.algo.ts:503","pc":[2445]},{"teal":2511,"source":"contracts/NFDInstance.algo.ts:503","pc":[2446]},{"teal":2512,"source":"contracts/NFDInstance.algo.ts:503","pc":[2447]},{"teal":2513,"source":"contracts/NFDInstance.algo.ts:503","pc":[2448,2449,2450]},{"teal":2518,"source":"contracts/NFDInstance.algo.ts:507","pc":[2451,2452]},{"teal":2519,"source":"contracts/NFDInstance.algo.ts:507","pc":[2453,2454]},{"teal":2523,"source":"contracts/NFDInstance.algo.ts:509","pc":[2455,2456]},{"teal":2524,"source":"contracts/NFDInstance.algo.ts:509","pc":[2457,2458]},{"teal":2525,"source":"contracts/NFDInstance.algo.ts:509","pc":[2459]},{"teal":2526,"source":"contracts/NFDInstance.algo.ts:509","pc":[2460,2461]},{"teal":2527,"source":"contracts/NFDInstance.algo.ts:509","pc":[2462]},{"teal":2528,"source":"contracts/NFDInstance.algo.ts:509","pc":[2463,2464]},{"teal":2532,"source":"contracts/NFDInstance.algo.ts:511","pc":[2465,2466]},{"teal":2533,"source":"contracts/NFDInstance.algo.ts:511","pc":[2467,2468]},{"teal":2534,"source":"contracts/NFDInstance.algo.ts:511","pc":[2469]},{"teal":2535,"source":"contracts/NFDInstance.algo.ts:511","pc":[2470,2471]},{"teal":2536,"source":"contracts/NFDInstance.algo.ts:511","pc":[2472]},{"teal":2537,"source":"contracts/NFDInstance.algo.ts:511","pc":[2473,2474]},{"teal":2542,"source":"contracts/NFDInstance.algo.ts:512","pc":[2475,2476]},{"teal":2543,"source":"contracts/NFDInstance.algo.ts:512","pc":[2477,2478]},{"teal":2544,"source":"contracts/NFDInstance.algo.ts:512","pc":[2479]},{"teal":2545,"source":"contracts/NFDInstance.algo.ts:512","pc":[2480,2481,2482]},{"teal":2550,"source":"contracts/NFDInstance.algo.ts:513","pc":[2483,2484]},{"teal":2551,"source":"contracts/NFDInstance.algo.ts:513","pc":[2485,2486]},{"teal":2557,"source":"contracts/NFDInstance.algo.ts:515","pc":[2487,2488]},{"teal":2558,"source":"contracts/NFDInstance.algo.ts:515","pc":[2489,2490]},{"teal":2559,"source":"contracts/NFDInstance.algo.ts:515","pc":[2491]},{"teal":2560,"source":"contracts/NFDInstance.algo.ts:515","pc":[2492,2493,2494]},{"teal":2565,"source":"contracts/NFDInstance.algo.ts:516","pc":[2495,2496]},{"teal":2566,"source":"contracts/NFDInstance.algo.ts:516","pc":[2497,2498]},{"teal":2571,"source":"contracts/NFDInstance.algo.ts:519","pc":[2499,2500]},{"teal":2572,"source":"contracts/NFDInstance.algo.ts:519","pc":[2501,2502]},{"teal":2573,"source":"contracts/NFDInstance.algo.ts:519","pc":[2503]},{"teal":2574,"source":"contracts/NFDInstance.algo.ts:519","pc":[2504,2505]},{"teal":2575,"source":"contracts/NFDInstance.algo.ts:503","pc":[2506,2507,2508]},{"teal":2580,"source":"contracts/NFDInstance.algo.ts:522","pc":[2509]},{"teal":2581,"source":"contracts/NFDInstance.algo.ts:522","pc":[2510,2511]},{"teal":2586,"source":"contracts/NFDInstance.algo.ts:526","pc":[2512]},{"teal":2587,"source":"contracts/NFDInstance.algo.ts:526","pc":[2513,2514]},{"teal":2592,"source":"contracts/NFDInstance.algo.ts:527","pc":[2515,2516]},{"teal":2593,"source":"contracts/NFDInstance.algo.ts:527","pc":[2517,2518,2519]},{"teal":2594,"source":"contracts/NFDInstance.algo.ts:527","pc":[2520]},{"teal":2595,"source":"contracts/NFDInstance.algo.ts:527","pc":[2521]},{"teal":2596,"source":"contracts/NFDInstance.algo.ts:527","pc":[2522,2523,2524]},{"teal":2601,"source":"contracts/NFDInstance.algo.ts:529","pc":[2525]},{"teal":2602,"source":"contracts/NFDInstance.algo.ts:529","pc":[2526,2527]},{"teal":2603,"source":"contracts/NFDInstance.algo.ts:527","pc":[2528,2529,2530]},{"teal":2608,"source":"contracts/NFDInstance.algo.ts:533","pc":[2531,2532]},{"teal":2609,"source":"contracts/NFDInstance.algo.ts:533","pc":[2533,2534]},{"teal":2610,"source":"contracts/NFDInstance.algo.ts:533","pc":[2535,2536,2537]},{"teal":2611,"source":"contracts/NFDInstance.algo.ts:533","pc":[2538]},{"teal":2612,"source":"contracts/NFDInstance.algo.ts:533","pc":[2539,2540]},{"teal":2613,"source":"contracts/NFDInstance.algo.ts:533","pc":[2541]},{"teal":2614,"source":"contracts/NFDInstance.algo.ts:533","pc":[2542,2543]},{"teal":2619,"source":"contracts/NFDInstance.algo.ts:536","pc":[2544,2545]},{"teal":2620,"source":"contracts/NFDInstance.algo.ts:536","pc":[2546,2547]},{"teal":2624,"source":"contracts/NFDInstance.algo.ts:537","pc":[2548,2549]},{"teal":2625,"source":"contracts/NFDInstance.algo.ts:537","pc":[2550,2551]},{"teal":2630,"source":"contracts/NFDInstance.algo.ts:539","pc":[2552,2553,2554]},{"teal":2631,"source":"contracts/NFDInstance.algo.ts:539","pc":[2555,2556]},{"teal":2632,"source":"contracts/NFDInstance.algo.ts:539","pc":[2557]},{"teal":2633,"source":"contracts/NFDInstance.algo.ts:539","pc":[2558]},{"teal":2634,"source":"contracts/NFDInstance.algo.ts:539","pc":[2559]},{"teal":2635,"source":"contracts/NFDInstance.algo.ts:539","pc":[2560,2561,2562]},{"teal":2640,"source":"contracts/NFDInstance.algo.ts:540","pc":[2563,2564]},{"teal":2641,"source":"contracts/NFDInstance.algo.ts:540","pc":[2565]},{"teal":2642,"source":"contracts/NFDInstance.algo.ts:540","pc":[2566,2567]},{"teal":2648,"source":"contracts/NFDInstance.algo.ts:542","pc":[2568,2569,2570]},{"teal":2649,"source":"contracts/NFDInstance.algo.ts:542","pc":[2571,2572]},{"teal":2650,"source":"contracts/NFDInstance.algo.ts:542","pc":[2573]},{"teal":2651,"source":"contracts/NFDInstance.algo.ts:542","pc":[2574]},{"teal":2652,"source":"contracts/NFDInstance.algo.ts:542","pc":[2575]},{"teal":2653,"source":"contracts/NFDInstance.algo.ts:542","pc":[2576,2577,2578]},{"teal":2658,"source":"contracts/NFDInstance.algo.ts:543","pc":[2579,2580]},{"teal":2659,"source":"contracts/NFDInstance.algo.ts:543","pc":[2581]},{"teal":2660,"source":"contracts/NFDInstance.algo.ts:543","pc":[2582,2583]},{"teal":2671,"source":"contracts/NFDInstance.algo.ts:552","pc":[2584,2585]},{"teal":2672,"source":"contracts/NFDInstance.algo.ts:552","pc":[2586]},{"teal":2673,"source":"contracts/NFDInstance.algo.ts:551","pc":[2587,2588]},{"teal":2674,"source":"contracts/NFDInstance.algo.ts:550","pc":[2589,2590]},{"teal":2675,"source":"contracts/NFDInstance.algo.ts:549","pc":[2591,2592]},{"teal":2676,"source":"contracts/NFDInstance.algo.ts:549","pc":[2593]},{"teal":2677,"source":"contracts/NFDInstance.algo.ts:548","pc":[2594,2595]},{"teal":2678,"source":"contracts/NFDInstance.algo.ts:547","pc":[2596,2597,2598]},{"teal":2682,"source":"contracts/NFDInstance.algo.ts:556","pc":[2599,2600]},{"teal":2683,"source":"contracts/NFDInstance.algo.ts:556","pc":[2601]},{"teal":2684,"source":"contracts/NFDInstance.algo.ts:556","pc":[2602]},{"teal":2685,"source":"contracts/NFDInstance.algo.ts:556","pc":[2603]},{"teal":2689,"source":"contracts/NFDInstance.algo.ts:558","pc":[2604,2605]},{"teal":2690,"source":"contracts/NFDInstance.algo.ts:558","pc":[2606,2607]},{"teal":2691,"source":"contracts/NFDInstance.algo.ts:558","pc":[2608]},{"teal":2692,"source":"contracts/NFDInstance.algo.ts:558","pc":[2609]},{"teal":2696,"source":"contracts/NFDInstance.algo.ts:559","pc":[2610]},{"teal":2697,"source":"contracts/NFDInstance.algo.ts:559","pc":[2611]},{"teal":2701,"source":"contracts/NFDInstance.algo.ts:560","pc":[2612,2613]},{"teal":2702,"source":"contracts/NFDInstance.algo.ts:560","pc":[2614]},{"teal":2706,"source":"contracts/NFDInstance.algo.ts:562","pc":[2615,2616]},{"teal":2707,"source":"contracts/NFDInstance.algo.ts:562","pc":[2617]},{"teal":2717,"source":"contracts/NFDInstance.algo.ts:565","pc":[2618,2619]},{"teal":2718,"source":"contracts/NFDInstance.algo.ts:565","pc":[2620,2621]},{"teal":2719,"source":"contracts/NFDInstance.algo.ts:565","pc":[2622]},{"teal":2720,"source":"contracts/NFDInstance.algo.ts:565","pc":[2623]},{"teal":2721,"source":"contracts/NFDInstance.algo.ts:566","pc":[2624,2625]},{"teal":2722,"source":"contracts/NFDInstance.algo.ts:566","pc":[2626]},{"teal":2723,"source":"contracts/NFDInstance.algo.ts:567","pc":[2627,2628]},{"teal":2724,"source":"contracts/NFDInstance.algo.ts:567","pc":[2629]},{"teal":2725,"source":"contracts/NFDInstance.algo.ts:567","pc":[2630]},{"teal":2726,"source":"contracts/NFDInstance.algo.ts:568","pc":[2631,2632]},{"teal":2727,"source":"contracts/NFDInstance.algo.ts:568","pc":[2633]},{"teal":2728,"source":"contracts/NFDInstance.algo.ts:569","pc":[2634,2635]},{"teal":2729,"source":"contracts/NFDInstance.algo.ts:569","pc":[2636]},{"teal":2730,"source":"contracts/NFDInstance.algo.ts:569","pc":[2637]},{"teal":2733,"source":"contracts/NFDInstance.algo.ts:491","pc":[2638,2639]},{"teal":2736,"source":"contracts/NFDInstance.algo.ts:491","pc":[2640,2641]},{"teal":2737,"source":"contracts/NFDInstance.algo.ts:491","pc":[2642]},{"teal":2742,"source":"contracts/NFDInstance.algo.ts:573","pc":[2643,2644]},{"teal":2743,"source":"contracts/NFDInstance.algo.ts:573","pc":[2645]},{"teal":2744,"source":"contracts/NFDInstance.algo.ts:573","pc":[2646]},{"teal":2745,"source":"contracts/NFDInstance.algo.ts:573","pc":[2647]},{"teal":2746,"source":"contracts/NFDInstance.algo.ts:573","pc":[2648,2649]},{"teal":2747,"source":"contracts/NFDInstance.algo.ts:573","pc":[2650]},{"teal":2748,"source":"contracts/NFDInstance.algo.ts:573","pc":[2651]},{"teal":2751,"source":"contracts/NFDInstance.algo.ts:573","errorMessage":"argument 0 (payment) for purchase must be a pay transaction","pc":[2652]},{"teal":2754,"source":"contracts/NFDInstance.algo.ts:573","pc":[2653,2654,2655]},{"teal":2755,"source":"contracts/NFDInstance.algo.ts:573","pc":[2656]},{"teal":2756,"source":"contracts/NFDInstance.algo.ts:573","pc":[2657]},{"teal":2760,"source":"contracts/NFDInstance.algo.ts:573","pc":[2658,2659,2660]},{"teal":2763,"source":"contracts/NFDInstance.algo.ts:573","pc":[2661]},{"teal":2764,"source":"contracts/NFDInstance.algo.ts:573","pc":[2662,2663]},{"teal":2768,"source":"contracts/NFDInstance.algo.ts:574","pc":[2664,2665,2666]},{"teal":2769,"source":"contracts/NFDInstance.algo.ts:574","pc":[2667]},{"teal":2770,"source":"contracts/NFDInstance.algo.ts:574","pc":[2668]},{"teal":2771,"source":"contracts/NFDInstance.algo.ts:574","pc":[2669]},{"teal":2772,"source":"contracts/NFDInstance.algo.ts:574","pc":[2670]},{"teal":2773,"source":"contracts/NFDInstance.algo.ts:574","pc":[2671]},{"teal":2774,"source":"contracts/NFDInstance.algo.ts:574","pc":[2672]},{"teal":2778,"source":"contracts/NFDInstance.algo.ts:575","pc":[2673,2674,2675]},{"teal":2779,"source":"contracts/NFDInstance.algo.ts:575","pc":[2676]},{"teal":2782,"source":"contracts/NFDInstance.algo.ts:575","errorMessage":"can't be expired","pc":[2677]},{"teal":2786,"source":"contracts/NFDInstance.algo.ts:576","pc":[2678,2679,2680]},{"teal":2789,"source":"contracts/NFDInstance.algo.ts:576","errorMessage":"must be for sale","pc":[2681]},{"teal":2793,"source":"contracts/NFDInstance.algo.ts:577","pc":[2682,2683]},{"teal":2794,"source":"contracts/NFDInstance.algo.ts:577","pc":[2684,2685,2686]},{"teal":2795,"source":"contracts/NFDInstance.algo.ts:577","pc":[2687,2688]},{"teal":2799,"source":"contracts/NFDInstance.algo.ts:578","pc":[2689,2690]},{"teal":2800,"source":"contracts/NFDInstance.algo.ts:578","pc":[2691,2692,2693]},{"teal":2801,"source":"contracts/NFDInstance.algo.ts:578","pc":[2694,2695]},{"teal":2805,"source":"contracts/NFDInstance.algo.ts:579","pc":[2696,2697]},{"teal":2806,"source":"contracts/NFDInstance.algo.ts:579","pc":[2698,2699]},{"teal":2807,"source":"contracts/NFDInstance.algo.ts:579","pc":[2700,2701]},{"teal":2811,"source":"contracts/NFDInstance.algo.ts:580","pc":[2702,2703]},{"teal":2812,"source":"contracts/NFDInstance.algo.ts:580","pc":[2704,2705]},{"teal":2816,"source":"contracts/NFDInstance.algo.ts:581","pc":[2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718]},{"teal":2817,"source":"contracts/NFDInstance.algo.ts:581","pc":[2719,2720]},{"teal":2818,"source":"contracts/NFDInstance.algo.ts:581","pc":[2721,2722,2723]},{"teal":2819,"source":"contracts/NFDInstance.algo.ts:581","pc":[2724]},{"teal":2820,"source":"contracts/NFDInstance.algo.ts:581","pc":[2725]},{"teal":2824,"source":"contracts/NFDInstance.algo.ts:583","pc":[2726,2727]},{"teal":2825,"source":"contracts/NFDInstance.algo.ts:583","pc":[2728,2729]},{"teal":2826,"source":"contracts/NFDInstance.algo.ts:583","pc":[2730,2731]},{"teal":2827,"source":"contracts/NFDInstance.algo.ts:583","pc":[2732]},{"teal":2830,"source":"contracts/NFDInstance.algo.ts:583","errorMessage":"payment sender must be same as purchase caller","pc":[2733]},{"teal":2835,"source":"contracts/NFDInstance.algo.ts:585","pc":[2734,2735]},{"teal":2836,"source":"contracts/NFDInstance.algo.ts:585","pc":[2736]},{"teal":2837,"source":"contracts/NFDInstance.algo.ts:585","pc":[2737]},{"teal":2838,"source":"contracts/NFDInstance.algo.ts:585","pc":[2738]},{"teal":2839,"source":"contracts/NFDInstance.algo.ts:585","pc":[2739,2740,2741]},{"teal":2847,"source":"contracts/NFDInstance.algo.ts:587","pc":[2742,2743]},{"teal":2848,"source":"contracts/NFDInstance.algo.ts:587","pc":[2744,2745]},{"teal":2849,"source":"contracts/NFDInstance.algo.ts:587","pc":[2746,2747]},{"teal":2850,"source":"contracts/NFDInstance.algo.ts:587","pc":[2748]},{"teal":2853,"source":"contracts/NFDInstance.algo.ts:586","errorMessage":"Reserved owner set, but sender isn't the reserved address","pc":[2749]},{"teal":2858,"source":"contracts/NFDInstance.algo.ts:594","pc":[2750,2751]},{"teal":2859,"source":"contracts/NFDInstance.algo.ts:594","pc":[2752,2753]},{"teal":2860,"source":"contracts/NFDInstance.algo.ts:594","pc":[2754,2755]},{"teal":2865,"source":"contracts/NFDInstance.algo.ts:599","pc":[2756,2757]},{"teal":2866,"source":"contracts/NFDInstance.algo.ts:599","pc":[2758,2759,2760]},{"teal":2867,"source":"contracts/NFDInstance.algo.ts:599","pc":[2761,2762]},{"teal":2868,"source":"contracts/NFDInstance.algo.ts:599","pc":[2763,2764]},{"teal":2869,"source":"contracts/NFDInstance.algo.ts:599","pc":[2765]},{"teal":2870,"source":"contracts/NFDInstance.algo.ts:599","pc":[2766,2767,2768]},{"teal":2875,"source":"contracts/NFDInstance.algo.ts:600","pc":[2769,2770]},{"teal":2876,"source":"contracts/NFDInstance.algo.ts:600","pc":[2771,2772]},{"teal":2877,"source":"contracts/NFDInstance.algo.ts:600","pc":[2773,2774,2775]},{"teal":2878,"source":"contracts/NFDInstance.algo.ts:600","pc":[2776]},{"teal":2879,"source":"contracts/NFDInstance.algo.ts:600","pc":[2777,2778]},{"teal":2885,"source":"contracts/NFDInstance.algo.ts:603","pc":[2779,2780]},{"teal":2886,"source":"contracts/NFDInstance.algo.ts:603","pc":[2781,2782,2783]},{"teal":2887,"source":"contracts/NFDInstance.algo.ts:603","pc":[2784]},{"teal":2888,"source":"contracts/NFDInstance.algo.ts:603","pc":[2785]},{"teal":2889,"source":"contracts/NFDInstance.algo.ts:603","pc":[2786]},{"teal":2890,"source":"contracts/NFDInstance.algo.ts:603","pc":[2787,2788,2789]},{"teal":2895,"source":"contracts/NFDInstance.algo.ts:604","pc":[2790,2791]},{"teal":2896,"source":"contracts/NFDInstance.algo.ts:604","pc":[2792,2793]},{"teal":2897,"source":"contracts/NFDInstance.algo.ts:604","pc":[2794]},{"teal":2900,"source":"contracts/NFDInstance.algo.ts:604","errorMessage":"offer must be at least min amount","pc":[2795]},{"teal":2905,"source":"contracts/NFDInstance.algo.ts:607","pc":[2796,2797]},{"teal":2906,"source":"contracts/NFDInstance.algo.ts:607","pc":[2798,2799]},{"teal":2907,"source":"contracts/NFDInstance.algo.ts:607","pc":[2800]},{"teal":2910,"source":"contracts/NFDInstance.algo.ts:607","errorMessage":"offer must be at least sell amount","pc":[2801]},{"teal":2914,"source":"contracts/NFDInstance.algo.ts:610","pc":[2802,2803]},{"teal":2915,"source":"contracts/NFDInstance.algo.ts:610","pc":[2804,2805]},{"teal":2916,"source":"contracts/NFDInstance.algo.ts:610","pc":[2806]},{"teal":2917,"source":"contracts/NFDInstance.algo.ts:610","pc":[2807,2808]},{"teal":2921,"source":"contracts/NFDInstance.algo.ts:611","pc":[2809,2810]},{"teal":2922,"source":"contracts/NFDInstance.algo.ts:611","pc":[2811,2812]},{"teal":2923,"source":"contracts/NFDInstance.algo.ts:611","pc":[2813]},{"teal":2924,"source":"contracts/NFDInstance.algo.ts:611","pc":[2814,2815]},{"teal":2929,"source":"contracts/NFDInstance.algo.ts:614","pc":[2816,2817]},{"teal":2930,"source":"contracts/NFDInstance.algo.ts:614","pc":[2818,2819]},{"teal":2931,"source":"contracts/NFDInstance.algo.ts:614","pc":[2820,2821]},{"teal":2932,"source":"contracts/NFDInstance.algo.ts:614","pc":[2822]},{"teal":2935,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"origOfferamt\"}","pc":[2823]},{"teal":2938,"source":"contracts/NFDInstance.algo.ts:614","pc":[2824,2825]},{"teal":2939,"source":"contracts/NFDInstance.algo.ts:614","pc":[2826,2827]},{"teal":2940,"source":"contracts/NFDInstance.algo.ts:614","pc":[2828,2829]},{"teal":2941,"source":"contracts/NFDInstance.algo.ts:614","pc":[2830]},{"teal":2944,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[2831]},{"teal":2948,"source":"contracts/NFDInstance.algo.ts:617","pc":[2832]},{"teal":2949,"source":"contracts/NFDInstance.algo.ts:617","pc":[2833,2834]},{"teal":2954,"source":"contracts/NFDInstance.algo.ts:618","pc":[2835,2836]},{"teal":2955,"source":"contracts/NFDInstance.algo.ts:618","pc":[2837,2838,2839]},{"teal":2956,"source":"contracts/NFDInstance.algo.ts:618","pc":[2840]},{"teal":2957,"source":"contracts/NFDInstance.algo.ts:618","pc":[2841]},{"teal":2958,"source":"contracts/NFDInstance.algo.ts:618","pc":[2842,2843,2844]},{"teal":2963,"source":"contracts/NFDInstance.algo.ts:620","pc":[2845]},{"teal":2964,"source":"contracts/NFDInstance.algo.ts:620","pc":[2846,2847]},{"teal":2965,"source":"contracts/NFDInstance.algo.ts:618","pc":[2848,2849,2850]},{"teal":2970,"source":"contracts/NFDInstance.algo.ts:624","pc":[2851,2852]},{"teal":2971,"source":"contracts/NFDInstance.algo.ts:624","pc":[2853,2854]},{"teal":2972,"source":"contracts/NFDInstance.algo.ts:624","pc":[2855,2856,2857]},{"teal":2973,"source":"contracts/NFDInstance.algo.ts:624","pc":[2858]},{"teal":2974,"source":"contracts/NFDInstance.algo.ts:624","pc":[2859,2860]},{"teal":2975,"source":"contracts/NFDInstance.algo.ts:624","pc":[2861]},{"teal":2976,"source":"contracts/NFDInstance.algo.ts:624","pc":[2862,2863]},{"teal":2981,"source":"contracts/NFDInstance.algo.ts:627","pc":[2864,2865]},{"teal":2982,"source":"contracts/NFDInstance.algo.ts:627","pc":[2866,2867]},{"teal":2986,"source":"contracts/NFDInstance.algo.ts:628","pc":[2868]},{"teal":2987,"source":"contracts/NFDInstance.algo.ts:628","pc":[2869,2870]},{"teal":2992,"source":"contracts/NFDInstance.algo.ts:629","pc":[2871,2872]},{"teal":2993,"source":"contracts/NFDInstance.algo.ts:629","pc":[2873]},{"teal":2994,"source":"contracts/NFDInstance.algo.ts:629","pc":[2874]},{"teal":2995,"source":"contracts/NFDInstance.algo.ts:629","pc":[2875,2876,2877]},{"teal":3000,"source":"contracts/NFDInstance.algo.ts:630","pc":[2878,2879]},{"teal":3001,"source":"contracts/NFDInstance.algo.ts:630","pc":[2880]},{"teal":3002,"source":"contracts/NFDInstance.algo.ts:630","pc":[2881]},{"teal":3003,"source":"contracts/NFDInstance.algo.ts:630","pc":[2882,2883]},{"teal":3010,"source":"contracts/NFDInstance.algo.ts:632","pc":[2884,2885]},{"teal":3011,"source":"contracts/NFDInstance.algo.ts:632","pc":[2886,2887]},{"teal":3012,"source":"contracts/NFDInstance.algo.ts:632","pc":[2888]},{"teal":3013,"source":"contracts/NFDInstance.algo.ts:632","pc":[2889]},{"teal":3014,"source":"contracts/NFDInstance.algo.ts:632","pc":[2890]},{"teal":3015,"source":"contracts/NFDInstance.algo.ts:632","pc":[2891,2892,2893]},{"teal":3016,"source":"contracts/NFDInstance.algo.ts:633","pc":[2894,2895]},{"teal":3017,"source":"contracts/NFDInstance.algo.ts:633","pc":[2896,2897]},{"teal":3018,"source":"contracts/NFDInstance.algo.ts:633","pc":[2898,2899]},{"teal":3019,"source":"contracts/NFDInstance.algo.ts:633","pc":[2900]},{"teal":3020,"source":"contracts/NFDInstance.algo.ts:632","pc":[2901]},{"teal":3023,"source":"contracts/NFDInstance.algo.ts:633","pc":[2902]},{"teal":3024,"source":"contracts/NFDInstance.algo.ts:633","pc":[2903,2904,2905]},{"teal":3025,"source":"contracts/NFDInstance.algo.ts:634","pc":[2906,2907]},{"teal":3026,"source":"contracts/NFDInstance.algo.ts:634","pc":[2908,2909]},{"teal":3027,"source":"contracts/NFDInstance.algo.ts:634","pc":[2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920]},{"teal":3028,"source":"contracts/NFDInstance.algo.ts:634","pc":[2921]},{"teal":3029,"source":"contracts/NFDInstance.algo.ts:633","pc":[2922]},{"teal":3032,"source":"contracts/NFDInstance.algo.ts:631","pc":[2923,2924,2925]},{"teal":3037,"source":"contracts/NFDInstance.algo.ts:636","pc":[2926,2927]},{"teal":3038,"source":"contracts/NFDInstance.algo.ts:636","pc":[2928,2929]},{"teal":3039,"source":"contracts/NFDInstance.algo.ts:636","pc":[2930,2931]},{"teal":3043,"source":"contracts/NFDInstance.algo.ts:637","pc":[2932,2933]},{"teal":3044,"source":"contracts/NFDInstance.algo.ts:637","pc":[2934,2935]},{"teal":3045,"source":"contracts/NFDInstance.algo.ts:637","pc":[2936,2937]},{"teal":3060,"source":"contracts/NFDInstance.algo.ts:641","pc":[2938]},{"teal":3061,"source":"contracts/NFDInstance.algo.ts:641","pc":[2939,2940]},{"teal":3062,"source":"contracts/NFDInstance.algo.ts:641","pc":[2941,2942]},{"teal":3063,"source":"contracts/NFDInstance.algo.ts:641","pc":[2943,2944,2945,2946,2947,2948]},{"teal":3064,"source":"contracts/NFDInstance.algo.ts:641","pc":[2949,2950]},{"teal":3068,"source":"contracts/NFDInstance.algo.ts:642","pc":[2951,2952]},{"teal":3069,"source":"contracts/NFDInstance.algo.ts:642","pc":[2953,2954]},{"teal":3078,"source":"contracts/NFDInstance.algo.ts:644","pc":[2955,2956]},{"teal":3079,"source":"contracts/NFDInstance.algo.ts:644","pc":[2957]},{"teal":3080,"source":"contracts/NFDInstance.algo.ts:644","pc":[2958]},{"teal":3081,"source":"contracts/NFDInstance.algo.ts:644","pc":[2959]},{"teal":3082,"source":"contracts/NFDInstance.algo.ts:644","pc":[2960]},{"teal":3083,"source":"contracts/NFDInstance.algo.ts:644","pc":[2961,2962,2963]},{"teal":3084,"source":"contracts/NFDInstance.algo.ts:644","pc":[2964]},{"teal":3085,"source":"contracts/NFDInstance.algo.ts:644","pc":[2965]},{"teal":3086,"source":"contracts/NFDInstance.algo.ts:644","pc":[2966,2967]},{"teal":3087,"source":"contracts/NFDInstance.algo.ts:645","pc":[2968,2969,2970]},{"teal":3088,"source":"contracts/NFDInstance.algo.ts:645","pc":[2971]},{"teal":3089,"source":"contracts/NFDInstance.algo.ts:645","pc":[2972,2973]},{"teal":3090,"source":"contracts/NFDInstance.algo.ts:646","pc":[2974]},{"teal":3091,"source":"contracts/NFDInstance.algo.ts:646","pc":[2975]},{"teal":3092,"source":"contracts/NFDInstance.algo.ts:646","pc":[2976,2977]},{"teal":3093,"source":"contracts/NFDInstance.algo.ts:647","pc":[2978,2979]},{"teal":3094,"source":"contracts/NFDInstance.algo.ts:647","pc":[2980,2981]},{"teal":3097,"source":"contracts/NFDInstance.algo.ts:641","pc":[2982]},{"teal":3098,"source":"contracts/NFDInstance.algo.ts:641","pc":[2983,2984]},{"teal":3101,"source":"contracts/NFDInstance.algo.ts:641","pc":[2985]},{"teal":3115,"source":"contracts/NFDInstance.algo.ts:651","pc":[2986,2987,2988,2989,2990,2991]},{"teal":3116,"source":"contracts/NFDInstance.algo.ts:651","pc":[2992]},{"teal":3117,"source":"contracts/NFDInstance.algo.ts:651","pc":[2993]},{"teal":3118,"source":"contracts/NFDInstance.algo.ts:651","pc":[2994,2995,2996,2997]},{"teal":3119,"source":"contracts/NFDInstance.algo.ts:652","pc":[2998,2999,3000]},{"teal":3120,"source":"contracts/NFDInstance.algo.ts:652","pc":[3001]},{"teal":3121,"source":"contracts/NFDInstance.algo.ts:652","pc":[3002,3003,3004]},{"teal":3122,"source":"contracts/NFDInstance.algo.ts:653","pc":[3005,3006]},{"teal":3123,"source":"contracts/NFDInstance.algo.ts:653","pc":[3007]},{"teal":3124,"source":"contracts/NFDInstance.algo.ts:653","pc":[3008]},{"teal":3125,"source":"contracts/NFDInstance.algo.ts:653","pc":[3009]},{"teal":3126,"source":"contracts/NFDInstance.algo.ts:653","pc":[3010]},{"teal":3127,"source":"contracts/NFDInstance.algo.ts:653","pc":[3011,3012,3013]},{"teal":3128,"source":"contracts/NFDInstance.algo.ts:653","pc":[3014]},{"teal":3129,"source":"contracts/NFDInstance.algo.ts:653","pc":[3015]},{"teal":3130,"source":"contracts/NFDInstance.algo.ts:653","pc":[3016,3017,3018]},{"teal":3131,"source":"contracts/NFDInstance.algo.ts:654","pc":[3019]},{"teal":3132,"source":"contracts/NFDInstance.algo.ts:654","pc":[3020]},{"teal":3133,"source":"contracts/NFDInstance.algo.ts:654","pc":[3021,3022,3023]},{"teal":3134,"source":"contracts/NFDInstance.algo.ts:655","pc":[3024,3025]},{"teal":3135,"source":"contracts/NFDInstance.algo.ts:655","pc":[3026,3027,3028]},{"teal":3136,"source":"contracts/NFDInstance.algo.ts:656","pc":[3029,3030]},{"teal":3137,"source":"contracts/NFDInstance.algo.ts:656","pc":[3031]},{"teal":3138,"source":"contracts/NFDInstance.algo.ts:656","pc":[3032,3033,3034]},{"teal":3139,"source":"contracts/NFDInstance.algo.ts:657","pc":[3035,3036]},{"teal":3140,"source":"contracts/NFDInstance.algo.ts:657","pc":[3037]},{"teal":3141,"source":"contracts/NFDInstance.algo.ts:657","pc":[3038,3039,3040]},{"teal":3142,"source":"contracts/NFDInstance.algo.ts:658","pc":[3041,3042]},{"teal":3143,"source":"contracts/NFDInstance.algo.ts:658","pc":[3043]},{"teal":3144,"source":"contracts/NFDInstance.algo.ts:658","pc":[3044,3045,3046]},{"teal":3145,"source":"contracts/NFDInstance.algo.ts:659","pc":[3047,3048]},{"teal":3146,"source":"contracts/NFDInstance.algo.ts:659","pc":[3049,3050,3051]},{"teal":3147,"source":"contracts/NFDInstance.algo.ts:660","pc":[3052,3053]},{"teal":3148,"source":"contracts/NFDInstance.algo.ts:660","pc":[3054]},{"teal":3149,"source":"contracts/NFDInstance.algo.ts:660","pc":[3055,3056,3057]},{"teal":3150,"source":"contracts/NFDInstance.algo.ts:651","pc":[3058]},{"teal":3151,"source":"contracts/NFDInstance.algo.ts:651","pc":[3059]},{"teal":3152,"source":"contracts/NFDInstance.algo.ts:651","pc":[3060]},{"teal":3153,"source":"contracts/NFDInstance.algo.ts:651","pc":[3061]},{"teal":3158,"source":"contracts/NFDInstance.algo.ts:664","pc":[3062,3063]},{"teal":3159,"source":"contracts/NFDInstance.algo.ts:664","pc":[3064]},{"teal":3160,"source":"contracts/NFDInstance.algo.ts:664","pc":[3065]},{"teal":3161,"source":"contracts/NFDInstance.algo.ts:664","pc":[3066,3067,3068]},{"teal":3170,"source":"contracts/NFDInstance.algo.ts:665","pc":[3069]},{"teal":3171,"source":"contracts/NFDInstance.algo.ts:665","pc":[3070]},{"teal":3172,"source":"contracts/NFDInstance.algo.ts:665","pc":[3071,3072]},{"teal":3176,"source":"contracts/NFDInstance.algo.ts:666","pc":[3073,3074]},{"teal":3177,"source":"contracts/NFDInstance.algo.ts:666","pc":[3075,3076]},{"teal":3181,"source":"contracts/NFDInstance.algo.ts:667","pc":[3077,3078]},{"teal":3182,"source":"contracts/NFDInstance.algo.ts:667","pc":[3079,3080]},{"teal":3183,"source":"contracts/NFDInstance.algo.ts:667","pc":[3081,3082]},{"teal":3187,"source":"contracts/NFDInstance.algo.ts:668","pc":[3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101]},{"teal":3188,"source":"contracts/NFDInstance.algo.ts:668","pc":[3102,3103]},{"teal":3191,"source":"contracts/NFDInstance.algo.ts:665","pc":[3104]},{"teal":3192,"source":"contracts/NFDInstance.algo.ts:665","pc":[3105,3106]},{"teal":3195,"source":"contracts/NFDInstance.algo.ts:665","pc":[3107]},{"teal":3206,"source":"contracts/NFDInstance.algo.ts:676","pc":[3108,3109]},{"teal":3207,"source":"contracts/NFDInstance.algo.ts:675","pc":[3110]},{"teal":3208,"source":"contracts/NFDInstance.algo.ts:674","pc":[3111,3112]},{"teal":3209,"source":"contracts/NFDInstance.algo.ts:673","pc":[3113,3114]},{"teal":3210,"source":"contracts/NFDInstance.algo.ts:673","pc":[3115]},{"teal":3211,"source":"contracts/NFDInstance.algo.ts:672","pc":[3116,3117]},{"teal":3212,"source":"contracts/NFDInstance.algo.ts:671","pc":[3118,3119,3120]},{"teal":3216,"source":"contracts/NFDInstance.algo.ts:679","pc":[3121]},{"teal":3217,"source":"contracts/NFDInstance.algo.ts:679","pc":[3122,3123]},{"teal":3218,"source":"contracts/NFDInstance.algo.ts:679","pc":[3124,3125]},{"teal":3219,"source":"contracts/NFDInstance.algo.ts:679","pc":[3126]},{"teal":3220,"source":"contracts/NFDInstance.algo.ts:679","pc":[3127,3128]},{"teal":3221,"source":"contracts/NFDInstance.algo.ts:679","pc":[3129,3130]},{"teal":3222,"source":"contracts/NFDInstance.algo.ts:679","pc":[3131]},{"teal":3223,"source":"contracts/NFDInstance.algo.ts:679","pc":[3132,3133]},{"teal":3224,"source":"contracts/NFDInstance.algo.ts:679","pc":[3134,3135]},{"teal":3225,"source":"contracts/NFDInstance.algo.ts:679","pc":[3136,3137]},{"teal":3226,"source":"contracts/NFDInstance.algo.ts:679","pc":[3138,3139]},{"teal":3227,"source":"contracts/NFDInstance.algo.ts:679","pc":[3140]},{"teal":3232,"source":"contracts/NFDInstance.algo.ts:684","pc":[3141,3142]},{"teal":3233,"source":"contracts/NFDInstance.algo.ts:684","pc":[3143,3144,3145]},{"teal":3234,"source":"contracts/NFDInstance.algo.ts:684","pc":[3146]},{"teal":3235,"source":"contracts/NFDInstance.algo.ts:684","pc":[3147]},{"teal":3236,"source":"contracts/NFDInstance.algo.ts:684","pc":[3148]},{"teal":3237,"source":"contracts/NFDInstance.algo.ts:684","pc":[3149,3150,3151]},{"teal":3244,"source":"contracts/NFDInstance.algo.ts:686","pc":[3152,3153]},{"teal":3245,"source":"contracts/NFDInstance.algo.ts:686","pc":[3154]},{"teal":3246,"source":"contracts/NFDInstance.algo.ts:686","pc":[3155,3156]},{"teal":3247,"source":"contracts/NFDInstance.algo.ts:686","pc":[3157,3158]},{"teal":3248,"source":"contracts/NFDInstance.algo.ts:686","pc":[3159]},{"teal":3249,"source":"contracts/NFDInstance.algo.ts:686","pc":[3160]},{"teal":3250,"source":"contracts/NFDInstance.algo.ts:686","pc":[3161,3162,3163]},{"teal":3251,"source":"contracts/NFDInstance.algo.ts:687","pc":[3164]},{"teal":3252,"source":"contracts/NFDInstance.algo.ts:687","pc":[3165,3166,3167]},{"teal":3253,"source":"contracts/NFDInstance.algo.ts:687","pc":[3168]},{"teal":3254,"source":"contracts/NFDInstance.algo.ts:687","pc":[3169]},{"teal":3255,"source":"contracts/NFDInstance.algo.ts:687","pc":[3170]},{"teal":3256,"source":"contracts/NFDInstance.algo.ts:686","pc":[3171]},{"teal":3259,"source":"contracts/NFDInstance.algo.ts:685","pc":[3172,3173,3174]},{"teal":3268,"source":"contracts/NFDInstance.algo.ts:689","pc":[3175]},{"teal":3269,"source":"contracts/NFDInstance.algo.ts:689","pc":[3176]},{"teal":3270,"source":"contracts/NFDInstance.algo.ts:689","pc":[3177,3178]},{"teal":3274,"source":"contracts/NFDInstance.algo.ts:690","pc":[3179,3180]},{"teal":3275,"source":"contracts/NFDInstance.algo.ts:690","pc":[3181,3182,3183]},{"teal":3276,"source":"contracts/NFDInstance.algo.ts:690","pc":[3184,3185]},{"teal":3280,"source":"contracts/NFDInstance.algo.ts:691","pc":[3186,3187]},{"teal":3281,"source":"contracts/NFDInstance.algo.ts:691","pc":[3188]},{"teal":3282,"source":"contracts/NFDInstance.algo.ts:691","pc":[3189,3190]},{"teal":3286,"source":"contracts/NFDInstance.algo.ts:692","pc":[3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204]},{"teal":3287,"source":"contracts/NFDInstance.algo.ts:692","pc":[3205,3206]},{"teal":3290,"source":"contracts/NFDInstance.algo.ts:689","pc":[3207]},{"teal":3291,"source":"contracts/NFDInstance.algo.ts:689","pc":[3208,3209]},{"teal":3294,"source":"contracts/NFDInstance.algo.ts:689","pc":[3210]},{"teal":3301,"source":"contracts/NFDInstance.algo.ts:698","pc":[3211,3212]},{"teal":3302,"source":"contracts/NFDInstance.algo.ts:698","pc":[3213]},{"teal":3303,"source":"contracts/NFDInstance.algo.ts:698","pc":[3214]},{"teal":3304,"source":"contracts/NFDInstance.algo.ts:698","pc":[3215,3216,3217]},{"teal":3308,"source":"contracts/NFDInstance.algo.ts:711","pc":[3218]},{"teal":3309,"source":"contracts/NFDInstance.algo.ts:711","pc":[3219,3220]},{"teal":3310,"source":"contracts/NFDInstance.algo.ts:711","pc":[3221]},{"teal":3314,"source":"contracts/NFDInstance.algo.ts:712","pc":[3222,3223]},{"teal":3315,"source":"contracts/NFDInstance.algo.ts:712","pc":[3224,3225]},{"teal":3316,"source":"contracts/NFDInstance.algo.ts:712","pc":[3226]},{"teal":3321,"source":"contracts/NFDInstance.algo.ts:713","pc":[3227,3228]},{"teal":3322,"source":"contracts/NFDInstance.algo.ts:713","pc":[3229,3230]},{"teal":3323,"source":"contracts/NFDInstance.algo.ts:713","pc":[3231,3232,3233]},{"teal":3324,"source":"contracts/NFDInstance.algo.ts:713","pc":[3234]},{"teal":3325,"source":"contracts/NFDInstance.algo.ts:713","pc":[3235,3236,3237]},{"teal":3330,"source":"contracts/NFDInstance.algo.ts:714","pc":[3238,3239]},{"teal":3331,"source":"contracts/NFDInstance.algo.ts:714","pc":[3240,3241]},{"teal":3332,"source":"contracts/NFDInstance.algo.ts:714","pc":[3242]},{"teal":3333,"source":"contracts/NFDInstance.algo.ts:714","pc":[3243]},{"teal":3338,"source":"contracts/NFDInstance.algo.ts:716","pc":[3244]},{"teal":3339,"source":"contracts/NFDInstance.algo.ts:716","pc":[3245,3246]},{"teal":3340,"source":"contracts/NFDInstance.algo.ts:716","pc":[3247]},{"teal":3341,"source":"contracts/NFDInstance.algo.ts:716","pc":[3248]},{"teal":3345,"source":"contracts/NFDInstance.algo.ts:717","pc":[3249,3250]},{"teal":3346,"source":"contracts/NFDInstance.algo.ts:717","pc":[3251,3252]},{"teal":3347,"source":"contracts/NFDInstance.algo.ts:717","pc":[3253]},{"teal":3348,"source":"contracts/NFDInstance.algo.ts:717","pc":[3254]},{"teal":3352,"source":"contracts/NFDInstance.algo.ts:718","pc":[3255]},{"teal":3353,"source":"contracts/NFDInstance.algo.ts:718","pc":[3256]},{"teal":3357,"source":"contracts/NFDInstance.algo.ts:719","pc":[3257,3258]},{"teal":3358,"source":"contracts/NFDInstance.algo.ts:719","pc":[3259]},{"teal":3362,"source":"contracts/NFDInstance.algo.ts:720","pc":[3260,3261]},{"teal":3363,"source":"contracts/NFDInstance.algo.ts:720","pc":[3262]},{"teal":3367,"source":"contracts/NFDInstance.algo.ts:721","pc":[3263,3264]},{"teal":3368,"source":"contracts/NFDInstance.algo.ts:721","pc":[3265]},{"teal":3372,"source":"contracts/NFDInstance.algo.ts:722","pc":[3266,3267]},{"teal":3373,"source":"contracts/NFDInstance.algo.ts:722","pc":[3268]},{"teal":3377,"source":"contracts/NFDInstance.algo.ts:723","pc":[3269,3270]},{"teal":3378,"source":"contracts/NFDInstance.algo.ts:723","pc":[3271]},{"teal":3382,"source":"contracts/NFDInstance.algo.ts:725","pc":[3272,3273]},{"teal":3383,"source":"contracts/NFDInstance.algo.ts:725","pc":[3274,3275]},{"teal":3384,"source":"contracts/NFDInstance.algo.ts:725","pc":[3276]},{"teal":3388,"source":"contracts/NFDInstance.algo.ts:726","pc":[3277,3278]},{"teal":3389,"source":"contracts/NFDInstance.algo.ts:726","pc":[3279]},{"teal":3390,"source":"contracts/NFDInstance.algo.ts:726","pc":[3280]},{"teal":3391,"source":"contracts/NFDInstance.algo.ts:573","pc":[3281]},{"teal":3396,"source":"contracts/NFDInstance.algo.ts:729","pc":[3282,3283]},{"teal":3399,"source":"contracts/NFDInstance.algo.ts:730","pc":[3284,3285,3286]},{"teal":3400,"source":"contracts/NFDInstance.algo.ts:730","pc":[3287]},{"teal":3401,"source":"contracts/NFDInstance.algo.ts:730","pc":[3288]},{"teal":3402,"source":"contracts/NFDInstance.algo.ts:730","pc":[3289]},{"teal":3403,"source":"contracts/NFDInstance.algo.ts:730","pc":[3290]},{"teal":3406,"source":"contracts/NFDInstance.algo.ts:730","errorMessage":"argument 0 (address) for isAddressInField must be a address","pc":[3291]},{"teal":3409,"source":"contracts/NFDInstance.algo.ts:730","pc":[3292,3293,3294]},{"teal":3410,"source":"contracts/NFDInstance.algo.ts:730","pc":[3295,3296,3297]},{"teal":3413,"source":"contracts/NFDInstance.algo.ts:729","pc":[3298,3299,3300]},{"teal":3414,"source":"contracts/NFDInstance.algo.ts:729","pc":[3301,3302]},{"teal":3415,"source":"contracts/NFDInstance.algo.ts:729","pc":[3303]},{"teal":3416,"source":"contracts/NFDInstance.algo.ts:729","pc":[3304,3305]},{"teal":3417,"source":"contracts/NFDInstance.algo.ts:729","pc":[3306]},{"teal":3418,"source":"contracts/NFDInstance.algo.ts:729","pc":[3307]},{"teal":3419,"source":"contracts/NFDInstance.algo.ts:729","pc":[3308]},{"teal":3420,"source":"contracts/NFDInstance.algo.ts:729","pc":[3309]},{"teal":3421,"source":"contracts/NFDInstance.algo.ts:729","pc":[3310]},{"teal":3425,"source":"contracts/NFDInstance.algo.ts:729","pc":[3311,3312,3313]},{"teal":3429,"source":"contracts/NFDInstance.algo.ts:731","pc":[3314,3315]},{"teal":3430,"source":"contracts/NFDInstance.algo.ts:731","pc":[3316,3317]},{"teal":3431,"source":"contracts/NFDInstance.algo.ts:731","pc":[3318]},{"teal":3432,"source":"contracts/NFDInstance.algo.ts:731","pc":[3319]},{"teal":3437,"source":"contracts/NFDInstance.algo.ts:732","pc":[3320,3321]},{"teal":3438,"source":"contracts/NFDInstance.algo.ts:732","pc":[3322]},{"teal":3439,"source":"contracts/NFDInstance.algo.ts:732","pc":[3323]},{"teal":3440,"source":"contracts/NFDInstance.algo.ts:732","pc":[3324]},{"teal":3441,"source":"contracts/NFDInstance.algo.ts:732","pc":[3325]},{"teal":3442,"source":"contracts/NFDInstance.algo.ts:732","pc":[3326,3327,3328]},{"teal":3447,"source":"contracts/NFDInstance.algo.ts:733","pc":[3329]},{"teal":3448,"source":"contracts/NFDInstance.algo.ts:733","pc":[3330]},{"teal":3453,"source":"contracts/NFDInstance.algo.ts:735","pc":[3331,3332]},{"teal":3454,"source":"contracts/NFDInstance.algo.ts:735","pc":[3333,3334]},{"teal":3455,"source":"contracts/NFDInstance.algo.ts:735","pc":[3335]},{"teal":3458,"source":"contracts/NFDInstance.algo.ts:735","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[3336]},{"teal":3459,"source":"contracts/NFDInstance.algo.ts:735","pc":[3337,3338,3339]},{"teal":3460,"source":"contracts/NFDInstance.algo.ts:729","pc":[3340]},{"teal":3464,"source":"contracts/NFDInstance.algo.ts:797","pc":[3341,3342,3343]},{"teal":3467,"source":"contracts/NFDInstance.algo.ts:797","pc":[3344]},{"teal":3475,"source":"contracts/NFDInstance.algo.ts:806","pc":[3345]},{"teal":3476,"source":"contracts/NFDInstance.algo.ts:806","pc":[3346]},{"teal":3477,"source":"contracts/NFDInstance.algo.ts:806","pc":[3347,3348]},{"teal":3481,"source":"contracts/NFDInstance.algo.ts:807","pc":[3349,3350]},{"teal":3482,"source":"contracts/NFDInstance.algo.ts:807","pc":[3351,3352]},{"teal":3483,"source":"contracts/NFDInstance.algo.ts:807","pc":[3353]},{"teal":3484,"source":"contracts/NFDInstance.algo.ts:807","pc":[3354,3355]},{"teal":3488,"source":"contracts/NFDInstance.algo.ts:808","pc":[3356,3357]},{"teal":3489,"source":"contracts/NFDInstance.algo.ts:808","pc":[3358,3359]},{"teal":3493,"source":"contracts/NFDInstance.algo.ts:809","pc":[3360,3361,3362,3363,3364,3365,3366,3367]},{"teal":3494,"source":"contracts/NFDInstance.algo.ts:809","pc":[3368,3369]},{"teal":3497,"source":"contracts/NFDInstance.algo.ts:806","pc":[3370]},{"teal":3498,"source":"contracts/NFDInstance.algo.ts:806","pc":[3371,3372]},{"teal":3501,"source":"contracts/NFDInstance.algo.ts:806","pc":[3373]},{"teal":3505,"source":"contracts/NFDInstance.algo.ts:811","pc":[3374,3375]},{"teal":3506,"source":"contracts/NFDInstance.algo.ts:811","pc":[3376,3377]},{"teal":3511,"source":"contracts/NFDInstance.algo.ts:814","pc":[3378,3379]},{"teal":3512,"source":"contracts/NFDInstance.algo.ts:814","pc":[3380,3381,3382]},{"teal":3513,"source":"contracts/NFDInstance.algo.ts:814","pc":[3383]},{"teal":3514,"source":"contracts/NFDInstance.algo.ts:814","pc":[3384]},{"teal":3515,"source":"contracts/NFDInstance.algo.ts:814","pc":[3385]},{"teal":3516,"source":"contracts/NFDInstance.algo.ts:814","pc":[3386,3387,3388]},{"teal":3521,"source":"contracts/NFDInstance.algo.ts:815","pc":[3389,3390]},{"teal":3522,"source":"contracts/NFDInstance.algo.ts:815","pc":[3391]},{"teal":3523,"source":"contracts/NFDInstance.algo.ts:815","pc":[3392,3393]},{"teal":3531,"source":"contracts/NFDInstance.algo.ts:816","pc":[3394]},{"teal":3532,"source":"contracts/NFDInstance.algo.ts:816","pc":[3395]},{"teal":3533,"source":"contracts/NFDInstance.algo.ts:816","pc":[3396,3397]},{"teal":3537,"source":"contracts/NFDInstance.algo.ts:817","pc":[3398,3399]},{"teal":3538,"source":"contracts/NFDInstance.algo.ts:817","pc":[3400,3401]},{"teal":3542,"source":"contracts/NFDInstance.algo.ts:818","pc":[3402,3403]},{"teal":3543,"source":"contracts/NFDInstance.algo.ts:818","pc":[3404,3405]},{"teal":3547,"source":"contracts/NFDInstance.algo.ts:819","pc":[3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417]},{"teal":3548,"source":"contracts/NFDInstance.algo.ts:819","pc":[3418,3419]},{"teal":3551,"source":"contracts/NFDInstance.algo.ts:816","pc":[3420]},{"teal":3552,"source":"contracts/NFDInstance.algo.ts:816","pc":[3421,3422]},{"teal":3555,"source":"contracts/NFDInstance.algo.ts:816","pc":[3423]},{"teal":3560,"source":"contracts/NFDInstance.algo.ts:825","pc":[3424,3425]},{"teal":3561,"source":"contracts/NFDInstance.algo.ts:825","pc":[3426,3427,3428]},{"teal":3562,"source":"contracts/NFDInstance.algo.ts:825","pc":[3429]},{"teal":3563,"source":"contracts/NFDInstance.algo.ts:825","pc":[3430]},{"teal":3564,"source":"contracts/NFDInstance.algo.ts:825","pc":[3431]},{"teal":3565,"source":"contracts/NFDInstance.algo.ts:825","pc":[3432,3433,3434]},{"teal":3570,"source":"contracts/NFDInstance.algo.ts:826","pc":[3435,3436]},{"teal":3571,"source":"contracts/NFDInstance.algo.ts:826","pc":[3437]},{"teal":3575,"source":"contracts/NFDInstance.algo.ts:827","pc":[3438,3439]},{"teal":3576,"source":"contracts/NFDInstance.algo.ts:827","pc":[3440]},{"teal":3577,"source":"contracts/NFDInstance.algo.ts:825","pc":[3441,3442,3443]},{"teal":3582,"source":"contracts/NFDInstance.algo.ts:829","pc":[3444,3445]},{"teal":3583,"source":"contracts/NFDInstance.algo.ts:829","pc":[3446,3447]},{"teal":3584,"source":"contracts/NFDInstance.algo.ts:829","pc":[3448]},{"teal":3585,"source":"contracts/NFDInstance.algo.ts:829","pc":[3449]},{"teal":3589,"source":"contracts/NFDInstance.algo.ts:830","pc":[3450,3451]},{"teal":3590,"source":"contracts/NFDInstance.algo.ts:830","pc":[3452,3453]},{"teal":3591,"source":"contracts/NFDInstance.algo.ts:830","pc":[3454]},{"teal":3592,"source":"contracts/NFDInstance.algo.ts:830","pc":[3455]},{"teal":3596,"source":"contracts/NFDInstance.algo.ts:831","pc":[3456,3457]},{"teal":3597,"source":"contracts/NFDInstance.algo.ts:831","pc":[3458]},{"teal":3601,"source":"contracts/NFDInstance.algo.ts:832","pc":[3459,3460]},{"teal":3602,"source":"contracts/NFDInstance.algo.ts:832","pc":[3461]},{"teal":3610,"source":"contracts/NFDInstance.algo.ts:838","pc":[3462,3463]},{"teal":3611,"source":"contracts/NFDInstance.algo.ts:838","pc":[3464]},{"teal":3612,"source":"contracts/NFDInstance.algo.ts:838","pc":[3465]},{"teal":3613,"source":"contracts/NFDInstance.algo.ts:838","pc":[3466,3467,3468]},{"teal":3622,"source":"contracts/NFDInstance.algo.ts:839","pc":[3469]},{"teal":3623,"source":"contracts/NFDInstance.algo.ts:839","pc":[3470]},{"teal":3624,"source":"contracts/NFDInstance.algo.ts:839","pc":[3471,3472]},{"teal":3628,"source":"contracts/NFDInstance.algo.ts:840","pc":[3473,3474]},{"teal":3629,"source":"contracts/NFDInstance.algo.ts:840","pc":[3475,3476]},{"teal":3633,"source":"contracts/NFDInstance.algo.ts:841","pc":[3477,3478]},{"teal":3634,"source":"contracts/NFDInstance.algo.ts:841","pc":[3479,3480]},{"teal":3638,"source":"contracts/NFDInstance.algo.ts:842","pc":[3481,3482,3483,3484,3485,3486,3487,3488,3489]},{"teal":3639,"source":"contracts/NFDInstance.algo.ts:842","pc":[3490,3491]},{"teal":3642,"source":"contracts/NFDInstance.algo.ts:839","pc":[3492]},{"teal":3643,"source":"contracts/NFDInstance.algo.ts:839","pc":[3493,3494]},{"teal":3646,"source":"contracts/NFDInstance.algo.ts:839","pc":[3495]},{"teal":3649,"source":"contracts/NFDInstance.algo.ts:797","pc":[3496]},{"teal":3654,"source":"contracts/NFDInstance.algo.ts:848","pc":[3497,3498]},{"teal":3657,"source":"contracts/NFDInstance.algo.ts:848","pc":[3499,3500,3501]},{"teal":3658,"source":"contracts/NFDInstance.algo.ts:848","pc":[3502]},{"teal":3659,"source":"contracts/NFDInstance.algo.ts:848","pc":[3503]},{"teal":3660,"source":"contracts/NFDInstance.algo.ts:848","pc":[3504]},{"teal":3661,"source":"contracts/NFDInstance.algo.ts:848","pc":[3505]},{"teal":3662,"source":"contracts/NFDInstance.algo.ts:848","pc":[3506]},{"teal":3666,"source":"contracts/NFDInstance.algo.ts:848","pc":[3507,3508,3509]},{"teal":3670,"source":"contracts/NFDInstance.algo.ts:850","pc":[3510,3511]},{"teal":3671,"source":"contracts/NFDInstance.algo.ts:850","pc":[3512,3513,3514]},{"teal":3672,"source":"contracts/NFDInstance.algo.ts:850","pc":[3515,3516]},{"teal":3673,"source":"contracts/NFDInstance.algo.ts:850","pc":[3517,3518]},{"teal":3674,"source":"contracts/NFDInstance.algo.ts:850","pc":[3519,3520,3521]},{"teal":3675,"source":"contracts/NFDInstance.algo.ts:850","pc":[3522]},{"teal":3676,"source":"contracts/NFDInstance.algo.ts:848","pc":[3523]},{"teal":3681,"source":"contracts/NFDInstance.algo.ts:855","pc":[3524,3525,3526]},{"teal":3682,"source":"contracts/NFDInstance.algo.ts:855","pc":[3527,3528,3529]},{"teal":3685,"source":"contracts/NFDInstance.algo.ts:855","pc":[3530,3531,3532]},{"teal":3686,"source":"contracts/NFDInstance.algo.ts:855","pc":[3533]},{"teal":3687,"source":"contracts/NFDInstance.algo.ts:855","pc":[3534]},{"teal":3691,"source":"contracts/NFDInstance.algo.ts:855","pc":[3535,3536,3537]},{"teal":3698,"source":"contracts/NFDInstance.algo.ts:857","pc":[3538,3539]},{"teal":3699,"source":"contracts/NFDInstance.algo.ts:857","pc":[3540]},{"teal":3700,"source":"contracts/NFDInstance.algo.ts:857","pc":[3541]},{"teal":3701,"source":"contracts/NFDInstance.algo.ts:857","pc":[3542]},{"teal":3702,"source":"contracts/NFDInstance.algo.ts:857","pc":[3543]},{"teal":3703,"source":"contracts/NFDInstance.algo.ts:857","pc":[3544,3545,3546]},{"teal":3704,"source":"contracts/NFDInstance.algo.ts:857","pc":[3547,3548]},{"teal":3705,"source":"contracts/NFDInstance.algo.ts:857","pc":[3549,3550]},{"teal":3706,"source":"contracts/NFDInstance.algo.ts:857","pc":[3551]},{"teal":3707,"source":"contracts/NFDInstance.algo.ts:857","pc":[3552]},{"teal":3711,"source":"contracts/NFDInstance.algo.ts:856","errorMessage":"must pass 32-byte hash that isn't 0","pc":[3553]},{"teal":3718,"source":"contracts/NFDInstance.algo.ts:862","pc":[3554,3555]},{"teal":3719,"source":"contracts/NFDInstance.algo.ts:862","pc":[3556]},{"teal":3720,"source":"contracts/NFDInstance.algo.ts:862","pc":[3557]},{"teal":3721,"source":"contracts/NFDInstance.algo.ts:862","pc":[3558]},{"teal":3722,"source":"contracts/NFDInstance.algo.ts:862","pc":[3559]},{"teal":3723,"source":"contracts/NFDInstance.algo.ts:862","pc":[3560,3561,3562]},{"teal":3724,"source":"contracts/NFDInstance.algo.ts:862","pc":[3563,3564,3565]},{"teal":3725,"source":"contracts/NFDInstance.algo.ts:862","pc":[3566]},{"teal":3729,"source":"contracts/NFDInstance.algo.ts:861","errorMessage":"only txnlab or owner can request an nfd nft hash update","pc":[3567]},{"teal":3738,"source":"contracts/NFDInstance.algo.ts:865","pc":[3568]},{"teal":3739,"source":"contracts/NFDInstance.algo.ts:865","pc":[3569,3570]},{"teal":3740,"source":"contracts/NFDInstance.algo.ts:865","pc":[3571,3572]},{"teal":3744,"source":"contracts/NFDInstance.algo.ts:866","pc":[3573,3574]},{"teal":3745,"source":"contracts/NFDInstance.algo.ts:866","pc":[3575]},{"teal":3746,"source":"contracts/NFDInstance.algo.ts:866","pc":[3576]},{"teal":3747,"source":"contracts/NFDInstance.algo.ts:866","pc":[3577,3578]},{"teal":3751,"source":"contracts/NFDInstance.algo.ts:867","pc":[3579,3580]},{"teal":3752,"source":"contracts/NFDInstance.algo.ts:867","pc":[3581,3582]},{"teal":3756,"source":"contracts/NFDInstance.algo.ts:868","pc":[3583,3584]},{"teal":3757,"source":"contracts/NFDInstance.algo.ts:868","pc":[3585,3586]},{"teal":3761,"source":"contracts/NFDInstance.algo.ts:869","pc":[3587,3588]},{"teal":3762,"source":"contracts/NFDInstance.algo.ts:869","pc":[3589,3590]},{"teal":3765,"source":"contracts/NFDInstance.algo.ts:865","pc":[3591]},{"teal":3766,"source":"contracts/NFDInstance.algo.ts:865","pc":[3592,3593]},{"teal":3769,"source":"contracts/NFDInstance.algo.ts:865","pc":[3594]},{"teal":3770,"source":"contracts/NFDInstance.algo.ts:855","pc":[3595]},{"teal":3775,"source":"contracts/NFDInstance.algo.ts:876","pc":[3596,3597,3598]},{"teal":3776,"source":"contracts/NFDInstance.algo.ts:876","pc":[3599]},{"teal":3777,"source":"contracts/NFDInstance.algo.ts:876","pc":[3600]},{"teal":3778,"source":"contracts/NFDInstance.algo.ts:876","pc":[3601]},{"teal":3779,"source":"contracts/NFDInstance.algo.ts:876","pc":[3602]},{"teal":3782,"source":"contracts/NFDInstance.algo.ts:876","errorMessage":"argument 0 (lock) for contractLock must be a bool","pc":[3603]},{"teal":3783,"source":"contracts/NFDInstance.algo.ts:876","pc":[3604]},{"teal":3784,"source":"contracts/NFDInstance.algo.ts:876","pc":[3605]},{"teal":3787,"source":"contracts/NFDInstance.algo.ts:876","pc":[3606,3607,3608]},{"teal":3788,"source":"contracts/NFDInstance.algo.ts:876","pc":[3609]},{"teal":3789,"source":"contracts/NFDInstance.algo.ts:876","pc":[3610]},{"teal":3793,"source":"contracts/NFDInstance.algo.ts:876","pc":[3611,3612,3613]},{"teal":3797,"source":"contracts/NFDInstance.algo.ts:877","pc":[3614,3615,3616]},{"teal":3801,"source":"contracts/NFDInstance.algo.ts:878","pc":[3617]},{"teal":3802,"source":"contracts/NFDInstance.algo.ts:878","pc":[3618,3619]},{"teal":3803,"source":"contracts/NFDInstance.algo.ts:878","pc":[3620]},{"teal":3804,"source":"contracts/NFDInstance.algo.ts:878","pc":[3621]},{"teal":3808,"source":"contracts/NFDInstance.algo.ts:879","pc":[3622,3623]},{"teal":3809,"source":"contracts/NFDInstance.algo.ts:879","pc":[3624,3625]},{"teal":3810,"source":"contracts/NFDInstance.algo.ts:879","pc":[3626,3627,3628]},{"teal":3811,"source":"contracts/NFDInstance.algo.ts:879","pc":[3629,3630]},{"teal":3812,"source":"contracts/NFDInstance.algo.ts:879","pc":[3631,3632,3633]},{"teal":3815,"source":"contracts/NFDInstance.algo.ts:879","pc":[3634,3635]},{"teal":3818,"source":"contracts/NFDInstance.algo.ts:879","pc":[3636]},{"teal":3819,"source":"contracts/NFDInstance.algo.ts:876","pc":[3637]},{"teal":3824,"source":"contracts/NFDInstance.algo.ts:884","pc":[3638,3639,3640]},{"teal":3825,"source":"contracts/NFDInstance.algo.ts:884","pc":[3641]},{"teal":3828,"source":"contracts/NFDInstance.algo.ts:884","pc":[3642,3643,3644]},{"teal":3829,"source":"contracts/NFDInstance.algo.ts:884","pc":[3645]},{"teal":3830,"source":"contracts/NFDInstance.algo.ts:884","pc":[3646]},{"teal":3831,"source":"contracts/NFDInstance.algo.ts:884","pc":[3647]},{"teal":3832,"source":"contracts/NFDInstance.algo.ts:884","pc":[3648]},{"teal":3835,"source":"contracts/NFDInstance.algo.ts:884","errorMessage":"argument 1 (lock) for segmentLock must be a bool","pc":[3649]},{"teal":3836,"source":"contracts/NFDInstance.algo.ts:884","pc":[3650]},{"teal":3837,"source":"contracts/NFDInstance.algo.ts:884","pc":[3651]},{"teal":3840,"source":"contracts/NFDInstance.algo.ts:884","pc":[3652,3653,3654]},{"teal":3841,"source":"contracts/NFDInstance.algo.ts:884","pc":[3655]},{"teal":3842,"source":"contracts/NFDInstance.algo.ts:884","pc":[3656]},{"teal":3846,"source":"contracts/NFDInstance.algo.ts:884","pc":[3657,3658,3659]},{"teal":3849,"source":"contracts/NFDInstance.algo.ts:884","pc":[3660]},{"teal":3853,"source":"contracts/NFDInstance.algo.ts:885","pc":[3661,3662,3663]},{"teal":3857,"source":"contracts/NFDInstance.algo.ts:886","pc":[3664]},{"teal":3858,"source":"contracts/NFDInstance.algo.ts:886","pc":[3665,3666]},{"teal":3859,"source":"contracts/NFDInstance.algo.ts:886","pc":[3667]},{"teal":3860,"source":"contracts/NFDInstance.algo.ts:886","pc":[3668]},{"teal":3864,"source":"contracts/NFDInstance.algo.ts:887","pc":[3669,3670]},{"teal":3865,"source":"contracts/NFDInstance.algo.ts:887","pc":[3671,3672]},{"teal":3866,"source":"contracts/NFDInstance.algo.ts:887","pc":[3673,3674,3675]},{"teal":3867,"source":"contracts/NFDInstance.algo.ts:887","pc":[3676,3677]},{"teal":3868,"source":"contracts/NFDInstance.algo.ts:887","pc":[3678,3679,3680]},{"teal":3871,"source":"contracts/NFDInstance.algo.ts:887","pc":[3681,3682]},{"teal":3874,"source":"contracts/NFDInstance.algo.ts:887","pc":[3683]},{"teal":3879,"source":"contracts/NFDInstance.algo.ts:888","pc":[3684,3685]},{"teal":3880,"source":"contracts/NFDInstance.algo.ts:888","pc":[3686,3687,3688]},{"teal":3885,"source":"contracts/NFDInstance.algo.ts:889","pc":[3689,3690]},{"teal":3886,"source":"contracts/NFDInstance.algo.ts:889","pc":[3691]},{"teal":3887,"source":"contracts/NFDInstance.algo.ts:888","pc":[3692,3693,3694]},{"teal":3894,"source":"contracts/NFDInstance.algo.ts:892","pc":[3695]},{"teal":3895,"source":"contracts/NFDInstance.algo.ts:892","pc":[3696,3697]},{"teal":3896,"source":"contracts/NFDInstance.algo.ts:892","pc":[3698,3699]},{"teal":3897,"source":"contracts/NFDInstance.algo.ts:892","pc":[3700,3701]},{"teal":3898,"source":"contracts/NFDInstance.algo.ts:892","pc":[3702,3703]},{"teal":3902,"source":"contracts/NFDInstance.algo.ts:893","pc":[3704,3705]},{"teal":3903,"source":"contracts/NFDInstance.algo.ts:893","pc":[3706,3707]},{"teal":3906,"source":"contracts/NFDInstance.algo.ts:892","pc":[3708]},{"teal":3907,"source":"contracts/NFDInstance.algo.ts:892","pc":[3709,3710]},{"teal":3910,"source":"contracts/NFDInstance.algo.ts:892","pc":[3711]},{"teal":3911,"source":"contracts/NFDInstance.algo.ts:892","pc":[3712,3713]},{"teal":3912,"source":"contracts/NFDInstance.algo.ts:892","pc":[3714]},{"teal":3913,"source":"contracts/NFDInstance.algo.ts:892","pc":[3715]},{"teal":3914,"source":"contracts/NFDInstance.algo.ts:892","pc":[3716,3717]},{"teal":3915,"source":"contracts/NFDInstance.algo.ts:892","pc":[3718,3719,3720]},{"teal":3916,"source":"contracts/NFDInstance.algo.ts:892","pc":[3721,3722]},{"teal":3923,"source":"contracts/NFDInstance.algo.ts:896","pc":[3723,3724]},{"teal":3924,"source":"contracts/NFDInstance.algo.ts:896","pc":[3725,3726]},{"teal":3925,"source":"contracts/NFDInstance.algo.ts:896","pc":[3727,3728,3729]},{"teal":3926,"source":"contracts/NFDInstance.algo.ts:896","pc":[3730]},{"teal":3927,"source":"contracts/NFDInstance.algo.ts:896","pc":[3731]},{"teal":3930,"source":"contracts/NFDInstance.algo.ts:895","errorMessage":"amount must be at least NFD_MIN_SEGMENT_USD dollars in algo","pc":[3732]},{"teal":3934,"source":"contracts/NFDInstance.algo.ts:899","pc":[3733,3734]},{"teal":3935,"source":"contracts/NFDInstance.algo.ts:899","pc":[3735,3736]},{"teal":3936,"source":"contracts/NFDInstance.algo.ts:899","pc":[3737]},{"teal":3937,"source":"contracts/NFDInstance.algo.ts:899","pc":[3738]},{"teal":3940,"source":"contracts/NFDInstance.algo.ts:884","pc":[3739]},{"teal":3945,"source":"contracts/NFDInstance.algo.ts:907","pc":[3740,3741,3742]},{"teal":3946,"source":"contracts/NFDInstance.algo.ts:907","pc":[3743]},{"teal":3947,"source":"contracts/NFDInstance.algo.ts:907","pc":[3744]},{"teal":3948,"source":"contracts/NFDInstance.algo.ts:907","pc":[3745]},{"teal":3949,"source":"contracts/NFDInstance.algo.ts:907","pc":[3746]},{"teal":3952,"source":"contracts/NFDInstance.algo.ts:907","errorMessage":"argument 0 (lock) for vaultOptInLock must be a bool","pc":[3747]},{"teal":3953,"source":"contracts/NFDInstance.algo.ts:907","pc":[3748]},{"teal":3954,"source":"contracts/NFDInstance.algo.ts:907","pc":[3749]},{"teal":3957,"source":"contracts/NFDInstance.algo.ts:907","pc":[3750,3751,3752]},{"teal":3958,"source":"contracts/NFDInstance.algo.ts:907","pc":[3753]},{"teal":3959,"source":"contracts/NFDInstance.algo.ts:907","pc":[3754]},{"teal":3963,"source":"contracts/NFDInstance.algo.ts:907","pc":[3755,3756,3757]},{"teal":3967,"source":"contracts/NFDInstance.algo.ts:908","pc":[3758,3759,3760]},{"teal":3971,"source":"contracts/NFDInstance.algo.ts:909","pc":[3761]},{"teal":3972,"source":"contracts/NFDInstance.algo.ts:909","pc":[3762,3763]},{"teal":3973,"source":"contracts/NFDInstance.algo.ts:909","pc":[3764]},{"teal":3974,"source":"contracts/NFDInstance.algo.ts:909","pc":[3765]},{"teal":3978,"source":"contracts/NFDInstance.algo.ts:910","pc":[3766,3767]},{"teal":3979,"source":"contracts/NFDInstance.algo.ts:910","pc":[3768,3769]},{"teal":3980,"source":"contracts/NFDInstance.algo.ts:910","pc":[3770,3771,3772]},{"teal":3981,"source":"contracts/NFDInstance.algo.ts:910","pc":[3773,3774]},{"teal":3982,"source":"contracts/NFDInstance.algo.ts:910","pc":[3775,3776,3777]},{"teal":3985,"source":"contracts/NFDInstance.algo.ts:910","pc":[3778,3779]},{"teal":3988,"source":"contracts/NFDInstance.algo.ts:910","pc":[3780]},{"teal":3989,"source":"contracts/NFDInstance.algo.ts:907","pc":[3781]},{"teal":3994,"source":"contracts/NFDInstance.algo.ts:919","pc":[3782,3783,3784]},{"teal":3995,"source":"contracts/NFDInstance.algo.ts:919","pc":[3785,3786,3787]},{"teal":3998,"source":"contracts/NFDInstance.algo.ts:919","pc":[3788,3789,3790]},{"teal":3999,"source":"contracts/NFDInstance.algo.ts:919","pc":[3791]},{"teal":4000,"source":"contracts/NFDInstance.algo.ts:919","pc":[3792]},{"teal":4004,"source":"contracts/NFDInstance.algo.ts:919","pc":[3793,3794,3795]},{"teal":4007,"source":"contracts/NFDInstance.algo.ts:919","pc":[3796]},{"teal":4008,"source":"contracts/NFDInstance.algo.ts:919","pc":[3797]},{"teal":4012,"source":"contracts/NFDInstance.algo.ts:920","pc":[3798,3799,3800]},{"teal":4017,"source":"contracts/NFDInstance.algo.ts:924","pc":[3801,3802,3803]},{"teal":4018,"source":"contracts/NFDInstance.algo.ts:924","pc":[3804,3805,3806]},{"teal":4026,"source":"contracts/NFDInstance.algo.ts:926","pc":[3807,3808]},{"teal":4027,"source":"contracts/NFDInstance.algo.ts:926","pc":[3809]},{"teal":4028,"source":"contracts/NFDInstance.algo.ts:926","pc":[3810]},{"teal":4029,"source":"contracts/NFDInstance.algo.ts:926","pc":[3811]},{"teal":4032,"source":"contracts/NFDInstance.algo.ts:925","errorMessage":"sender must be owner when vault locked","pc":[3812]},{"teal":4037,"source":"contracts/NFDInstance.algo.ts:931","pc":[3813,3814]},{"teal":4038,"source":"contracts/NFDInstance.algo.ts:931","pc":[3815]},{"teal":4039,"source":"contracts/NFDInstance.algo.ts:931","pc":[3816]},{"teal":4042,"source":"contracts/NFDInstance.algo.ts:931","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[3817]},{"teal":4049,"source":"contracts/NFDInstance.algo.ts:933","pc":[3818,3819]},{"teal":4050,"source":"contracts/NFDInstance.algo.ts:933","pc":[3820]},{"teal":4051,"source":"contracts/NFDInstance.algo.ts:933","pc":[3821]},{"teal":4052,"source":"contracts/NFDInstance.algo.ts:933","pc":[3822,3823]},{"teal":4055,"source":"contracts/NFDInstance.algo.ts:933","pc":[3824,3825]},{"teal":4056,"source":"contracts/NFDInstance.algo.ts:933","pc":[3826,3827]},{"teal":4057,"source":"contracts/NFDInstance.algo.ts:933","pc":[3828]},{"teal":4058,"source":"contracts/NFDInstance.algo.ts:933","pc":[3829]},{"teal":4061,"source":"contracts/NFDInstance.algo.ts:933","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[3830]},{"teal":4064,"source":"contracts/NFDInstance.algo.ts:934","pc":[3831,3832]},{"teal":4065,"source":"contracts/NFDInstance.algo.ts:934","pc":[3833,3834]},{"teal":4066,"source":"contracts/NFDInstance.algo.ts:934","pc":[3835,3836]},{"teal":4067,"source":"contracts/NFDInstance.algo.ts:934","pc":[3837]},{"teal":4070,"source":"contracts/NFDInstance.algo.ts:934","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[3838]},{"teal":4073,"source":"contracts/NFDInstance.algo.ts:935","pc":[3839,3840]},{"teal":4074,"source":"contracts/NFDInstance.algo.ts:935","pc":[3841,3842]},{"teal":4075,"source":"contracts/NFDInstance.algo.ts:935","pc":[3843,3844]},{"teal":4076,"source":"contracts/NFDInstance.algo.ts:935","pc":[3845,3846]},{"teal":4077,"source":"contracts/NFDInstance.algo.ts:935","pc":[3847]},{"teal":4078,"source":"contracts/NFDInstance.algo.ts:935","pc":[3848,3849]},{"teal":4079,"source":"contracts/NFDInstance.algo.ts:935","pc":[3850]},{"teal":4080,"source":"contracts/NFDInstance.algo.ts:935","pc":[3851]},{"teal":4081,"source":"contracts/NFDInstance.algo.ts:935","pc":[3852]},{"teal":4084,"source":"contracts/NFDInstance.algo.ts:935","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * assets.length\"}","pc":[3853]},{"teal":4088,"source":"contracts/NFDInstance.algo.ts:937","pc":[3854]},{"teal":4089,"source":"contracts/NFDInstance.algo.ts:937","pc":[3855,3856]},{"teal":4094,"source":"contracts/NFDInstance.algo.ts:937","pc":[3857,3858]},{"teal":4095,"source":"contracts/NFDInstance.algo.ts:937","pc":[3859,3860]},{"teal":4096,"source":"contracts/NFDInstance.algo.ts:937","pc":[3861]},{"teal":4097,"source":"contracts/NFDInstance.algo.ts:937","pc":[3862,3863]},{"teal":4098,"source":"contracts/NFDInstance.algo.ts:937","pc":[3864]},{"teal":4099,"source":"contracts/NFDInstance.algo.ts:937","pc":[3865]},{"teal":4100,"source":"contracts/NFDInstance.algo.ts:937","pc":[3866,3867,3868]},{"teal":4104,"source":"contracts/NFDInstance.algo.ts:938","pc":[3869,3870]},{"teal":4105,"source":"contracts/NFDInstance.algo.ts:938","pc":[3871,3872]},{"teal":4106,"source":"contracts/NFDInstance.algo.ts:938","pc":[3873]},{"teal":4107,"source":"contracts/NFDInstance.algo.ts:938","pc":[3874,3875]},{"teal":4108,"source":"contracts/NFDInstance.algo.ts:938","pc":[3876,3877]},{"teal":4109,"source":"contracts/NFDInstance.algo.ts:938","pc":[3878]},{"teal":4110,"source":"contracts/NFDInstance.algo.ts:938","pc":[3879]},{"teal":4111,"source":"contracts/NFDInstance.algo.ts:938","pc":[3880,3881]},{"teal":4112,"source":"contracts/NFDInstance.algo.ts:938","pc":[3882]},{"teal":4113,"source":"contracts/NFDInstance.algo.ts:938","pc":[3883,3884]},{"teal":4114,"source":"contracts/NFDInstance.algo.ts:938","pc":[3885]},{"teal":4115,"source":"contracts/NFDInstance.algo.ts:938","pc":[3886]},{"teal":4116,"source":"contracts/NFDInstance.algo.ts:938","pc":[3887,3888]},{"teal":4121,"source":"contracts/NFDInstance.algo.ts:940","pc":[3889,3890]},{"teal":4122,"source":"contracts/NFDInstance.algo.ts:940","pc":[3891,3892]},{"teal":4123,"source":"contracts/NFDInstance.algo.ts:940","pc":[3893,3894]},{"teal":4124,"source":"contracts/NFDInstance.algo.ts:940","pc":[3895]},{"teal":4125,"source":"contracts/NFDInstance.algo.ts:940","pc":[3896]},{"teal":4126,"source":"contracts/NFDInstance.algo.ts:940","pc":[3897]},{"teal":4127,"source":"contracts/NFDInstance.algo.ts:940","pc":[3898,3899,3900]},{"teal":4136,"source":"contracts/NFDInstance.algo.ts:941","pc":[3901]},{"teal":4137,"source":"contracts/NFDInstance.algo.ts:941","pc":[3902,3903]},{"teal":4138,"source":"contracts/NFDInstance.algo.ts:941","pc":[3904,3905]},{"teal":4142,"source":"contracts/NFDInstance.algo.ts:942","pc":[3906,3907]},{"teal":4143,"source":"contracts/NFDInstance.algo.ts:942","pc":[3908,3909]},{"teal":4147,"source":"contracts/NFDInstance.algo.ts:943","pc":[3910,3911]},{"teal":4148,"source":"contracts/NFDInstance.algo.ts:943","pc":[3912,3913]},{"teal":4152,"source":"contracts/NFDInstance.algo.ts:944","pc":[3914]},{"teal":4153,"source":"contracts/NFDInstance.algo.ts:944","pc":[3915,3916]},{"teal":4156,"source":"contracts/NFDInstance.algo.ts:941","pc":[3917]},{"teal":4157,"source":"contracts/NFDInstance.algo.ts:941","pc":[3918,3919]},{"teal":4160,"source":"contracts/NFDInstance.algo.ts:941","pc":[3920]},{"teal":4167,"source":"contracts/NFDInstance.algo.ts:937","pc":[3921,3922]},{"teal":4168,"source":"contracts/NFDInstance.algo.ts:937","pc":[3923]},{"teal":4169,"source":"contracts/NFDInstance.algo.ts:937","pc":[3924]},{"teal":4170,"source":"contracts/NFDInstance.algo.ts:937","pc":[3925,3926]},{"teal":4171,"source":"contracts/NFDInstance.algo.ts:937","pc":[3927,3928,3929]},{"teal":4174,"source":"contracts/NFDInstance.algo.ts:919","pc":[3930]},{"teal":4179,"source":"contracts/NFDInstance.algo.ts:958","pc":[3931,3932,3933]},{"teal":4180,"source":"contracts/NFDInstance.algo.ts:958","pc":[3934,3935,3936]},{"teal":4183,"source":"contracts/NFDInstance.algo.ts:958","pc":[3937,3938,3939]},{"teal":4184,"source":"contracts/NFDInstance.algo.ts:958","pc":[3940]},{"teal":4187,"source":"contracts/NFDInstance.algo.ts:958","pc":[3941,3942,3943]},{"teal":4188,"source":"contracts/NFDInstance.algo.ts:958","pc":[3944,3945,3946]},{"teal":4191,"source":"contracts/NFDInstance.algo.ts:958","pc":[3947,3948,3949]},{"teal":4192,"source":"contracts/NFDInstance.algo.ts:958","pc":[3950]},{"teal":4193,"source":"contracts/NFDInstance.algo.ts:958","pc":[3951]},{"teal":4194,"source":"contracts/NFDInstance.algo.ts:958","pc":[3952]},{"teal":4195,"source":"contracts/NFDInstance.algo.ts:958","pc":[3953]},{"teal":4198,"source":"contracts/NFDInstance.algo.ts:958","errorMessage":"argument 3 (receiver) for vaultSend must be a address","pc":[3954]},{"teal":4201,"source":"contracts/NFDInstance.algo.ts:958","pc":[3955,3956,3957]},{"teal":4202,"source":"contracts/NFDInstance.algo.ts:958","pc":[3958]},{"teal":4205,"source":"contracts/NFDInstance.algo.ts:958","pc":[3959,3960,3961]},{"teal":4206,"source":"contracts/NFDInstance.algo.ts:958","pc":[3962]},{"teal":4207,"source":"contracts/NFDInstance.algo.ts:958","pc":[3963]},{"teal":4211,"source":"contracts/NFDInstance.algo.ts:958","pc":[3964,3965,3966]},{"teal":4214,"source":"contracts/NFDInstance.algo.ts:958","pc":[3967]},{"teal":4215,"source":"contracts/NFDInstance.algo.ts:958","pc":[3968,3969]},{"teal":4219,"source":"contracts/NFDInstance.algo.ts:964","pc":[3970,3971,3972]},{"teal":4223,"source":"contracts/NFDInstance.algo.ts:965","pc":[3973,3974]},{"teal":4224,"source":"contracts/NFDInstance.algo.ts:965","pc":[3975,3976]},{"teal":4225,"source":"contracts/NFDInstance.algo.ts:965","pc":[3977]},{"teal":4226,"source":"contracts/NFDInstance.algo.ts:965","pc":[3978]},{"teal":4231,"source":"contracts/NFDInstance.algo.ts:967","pc":[3979,3980]},{"teal":4232,"source":"contracts/NFDInstance.algo.ts:967","pc":[3981]},{"teal":4233,"source":"contracts/NFDInstance.algo.ts:967","pc":[3982]},{"teal":4234,"source":"contracts/NFDInstance.algo.ts:967","pc":[3983,3984,3985]},{"teal":4239,"source":"contracts/NFDInstance.algo.ts:968","pc":[3986,3987]},{"teal":4240,"source":"contracts/NFDInstance.algo.ts:968","pc":[3988]},{"teal":4241,"source":"contracts/NFDInstance.algo.ts:968","pc":[3989,3990]},{"teal":4242,"source":"contracts/NFDInstance.algo.ts:968","pc":[3991]},{"teal":4243,"source":"contracts/NFDInstance.algo.ts:968","pc":[3992]},{"teal":4244,"source":"contracts/NFDInstance.algo.ts:968","pc":[3993]},{"teal":4247,"source":"contracts/NFDInstance.algo.ts:968","errorMessage":"can't specify other assets if sending algo from vault","pc":[3994]},{"teal":4251,"source":"contracts/NFDInstance.algo.ts:969","pc":[3995,3996]},{"teal":4252,"source":"contracts/NFDInstance.algo.ts:969","pc":[3997]},{"teal":4253,"source":"contracts/NFDInstance.algo.ts:969","pc":[3998]},{"teal":4254,"source":"contracts/NFDInstance.algo.ts:969","pc":[3999]},{"teal":4258,"source":"contracts/NFDInstance.algo.ts:971","pc":[4000,4001]},{"teal":4259,"source":"contracts/NFDInstance.algo.ts:971","pc":[4002,4003]},{"teal":4260,"source":"contracts/NFDInstance.algo.ts:971","pc":[4004]},{"teal":4261,"source":"contracts/NFDInstance.algo.ts:971","pc":[4005,4006]},{"teal":4262,"source":"contracts/NFDInstance.algo.ts:971","pc":[4007,4008,4009]},{"teal":4263,"source":"contracts/NFDInstance.algo.ts:971","pc":[4010]},{"teal":4264,"source":"contracts/NFDInstance.algo.ts:971","pc":[4011,4012]},{"teal":4268,"source":"contracts/NFDInstance.algo.ts:973","pc":[4013,4014]},{"teal":4269,"source":"contracts/NFDInstance.algo.ts:973","pc":[4015,4016]},{"teal":4270,"source":"contracts/NFDInstance.algo.ts:973","pc":[4017]},{"teal":4271,"source":"contracts/NFDInstance.algo.ts:973","pc":[4018,4019]},{"teal":4272,"source":"contracts/NFDInstance.algo.ts:973","pc":[4020]},{"teal":4273,"source":"contracts/NFDInstance.algo.ts:973","pc":[4021,4022]},{"teal":4274,"source":"contracts/NFDInstance.algo.ts:973","pc":[4023]},{"teal":4275,"source":"contracts/NFDInstance.algo.ts:973","pc":[4024]},{"teal":4279,"source":"contracts/NFDInstance.algo.ts:974","pc":[4025]},{"teal":4280,"source":"contracts/NFDInstance.algo.ts:974","pc":[4026]},{"teal":4281,"source":"contracts/NFDInstance.algo.ts:974","pc":[4027,4028]},{"teal":4285,"source":"contracts/NFDInstance.algo.ts:974","pc":[4029,4030]},{"teal":4286,"source":"contracts/NFDInstance.algo.ts:974","pc":[4031,4032]},{"teal":4290,"source":"contracts/NFDInstance.algo.ts:974","pc":[4033,4034]},{"teal":4291,"source":"contracts/NFDInstance.algo.ts:974","pc":[4035,4036]},{"teal":4295,"source":"contracts/NFDInstance.algo.ts:974","pc":[4037,4038]},{"teal":4296,"source":"contracts/NFDInstance.algo.ts:974","pc":[4039,4040]},{"teal":4299,"source":"contracts/NFDInstance.algo.ts:974","pc":[4041]},{"teal":4300,"source":"contracts/NFDInstance.algo.ts:974","pc":[4042,4043]},{"teal":4303,"source":"contracts/NFDInstance.algo.ts:974","pc":[4044]},{"teal":4307,"source":"contracts/NFDInstance.algo.ts:975","pc":[4045]},{"teal":4313,"source":"contracts/NFDInstance.algo.ts:979","pc":[4046,4047]},{"teal":4314,"source":"contracts/NFDInstance.algo.ts:979","pc":[4048]},{"teal":4315,"source":"contracts/NFDInstance.algo.ts:979","pc":[4049]},{"teal":4316,"source":"contracts/NFDInstance.algo.ts:979","pc":[4050,4051,4052]},{"teal":4321,"source":"contracts/NFDInstance.algo.ts:980","pc":[4053,4054]},{"teal":4322,"source":"contracts/NFDInstance.algo.ts:980","pc":[4055]},{"teal":4323,"source":"contracts/NFDInstance.algo.ts:980","pc":[4056,4057]},{"teal":4324,"source":"contracts/NFDInstance.algo.ts:980","pc":[4058]},{"teal":4325,"source":"contracts/NFDInstance.algo.ts:980","pc":[4059]},{"teal":4326,"source":"contracts/NFDInstance.algo.ts:980","pc":[4060]},{"teal":4329,"source":"contracts/NFDInstance.algo.ts:980","errorMessage":"can only send one asset if amount == 0","pc":[4061]},{"teal":4334,"source":"contracts/NFDInstance.algo.ts:982","pc":[4062]},{"teal":4335,"source":"contracts/NFDInstance.algo.ts:982","pc":[4063,4064]},{"teal":4340,"source":"contracts/NFDInstance.algo.ts:982","pc":[4065,4066]},{"teal":4341,"source":"contracts/NFDInstance.algo.ts:982","pc":[4067,4068]},{"teal":4342,"source":"contracts/NFDInstance.algo.ts:982","pc":[4069]},{"teal":4343,"source":"contracts/NFDInstance.algo.ts:982","pc":[4070,4071]},{"teal":4344,"source":"contracts/NFDInstance.algo.ts:982","pc":[4072]},{"teal":4345,"source":"contracts/NFDInstance.algo.ts:982","pc":[4073]},{"teal":4346,"source":"contracts/NFDInstance.algo.ts:982","pc":[4074,4075,4076]},{"teal":4351,"source":"contracts/NFDInstance.algo.ts:986","pc":[4077,4078]},{"teal":4352,"source":"contracts/NFDInstance.algo.ts:986","pc":[4079]},{"teal":4353,"source":"contracts/NFDInstance.algo.ts:986","pc":[4080]},{"teal":4354,"source":"contracts/NFDInstance.algo.ts:986","pc":[4081,4082,4083]},{"teal":4359,"source":"contracts/NFDInstance.algo.ts:987","pc":[4084,4085]},{"teal":4360,"source":"contracts/NFDInstance.algo.ts:987","pc":[4086,4087]},{"teal":4361,"source":"contracts/NFDInstance.algo.ts:986","pc":[4088,4089,4090]},{"teal":4366,"source":"contracts/NFDInstance.algo.ts:989","pc":[4091,4092]},{"teal":4367,"source":"contracts/NFDInstance.algo.ts:989","pc":[4093,4094]},{"teal":4368,"source":"contracts/NFDInstance.algo.ts:989","pc":[4095]},{"teal":4369,"source":"contracts/NFDInstance.algo.ts:989","pc":[4096,4097]},{"teal":4370,"source":"contracts/NFDInstance.algo.ts:989","pc":[4098]},{"teal":4371,"source":"contracts/NFDInstance.algo.ts:989","pc":[4099]},{"teal":4372,"source":"contracts/NFDInstance.algo.ts:989","pc":[4100,4101]},{"teal":4373,"source":"contracts/NFDInstance.algo.ts:989","pc":[4102]},{"teal":4374,"source":"contracts/NFDInstance.algo.ts:989","pc":[4103]},{"teal":4375,"source":"contracts/NFDInstance.algo.ts:989","pc":[4104,4105]},{"teal":4376,"source":"contracts/NFDInstance.algo.ts:989","pc":[4106]},{"teal":4377,"source":"contracts/NFDInstance.algo.ts:989","pc":[4107,4108]},{"teal":4378,"source":"contracts/NFDInstance.algo.ts:989","pc":[4109]},{"teal":4379,"source":"contracts/NFDInstance.algo.ts:989","pc":[4110]},{"teal":4380,"source":"contracts/NFDInstance.algo.ts:989","pc":[4111,4112]},{"teal":4386,"source":"contracts/NFDInstance.algo.ts:992","pc":[4113,4114]},{"teal":4387,"source":"contracts/NFDInstance.algo.ts:992","pc":[4115,4116]},{"teal":4388,"source":"contracts/NFDInstance.algo.ts:992","pc":[4117]},{"teal":4389,"source":"contracts/NFDInstance.algo.ts:992","pc":[4118]},{"teal":4390,"source":"contracts/NFDInstance.algo.ts:992","pc":[4119]},{"teal":4391,"source":"contracts/NFDInstance.algo.ts:992","pc":[4120,4121,4122]},{"teal":4396,"source":"contracts/NFDInstance.algo.ts:993","pc":[4123,4124]},{"teal":4397,"source":"contracts/NFDInstance.algo.ts:993","pc":[4125]},{"teal":4398,"source":"contracts/NFDInstance.algo.ts:993","pc":[4126]},{"teal":4399,"source":"contracts/NFDInstance.algo.ts:993","pc":[4127]},{"teal":4402,"source":"contracts/NFDInstance.algo.ts:993","errorMessage":"receiver must be owner","pc":[4128]},{"teal":4406,"source":"contracts/NFDInstance.algo.ts:994","pc":[4129,4130]},{"teal":4407,"source":"contracts/NFDInstance.algo.ts:994","pc":[4131,4132]},{"teal":4408,"source":"contracts/NFDInstance.algo.ts:994","pc":[4133,4134,4135]},{"teal":4409,"source":"contracts/NFDInstance.algo.ts:995","pc":[4136,4137,4138]},{"teal":4415,"source":"contracts/NFDInstance.algo.ts:997","pc":[4139,4140]},{"teal":4416,"source":"contracts/NFDInstance.algo.ts:997","pc":[4141]},{"teal":4417,"source":"contracts/NFDInstance.algo.ts:997","pc":[4142]},{"teal":4418,"source":"contracts/NFDInstance.algo.ts:997","pc":[4143]},{"teal":4419,"source":"contracts/NFDInstance.algo.ts:997","pc":[4144,4145,4146]},{"teal":4420,"source":"contracts/NFDInstance.algo.ts:997","pc":[4147,4148]},{"teal":4421,"source":"contracts/NFDInstance.algo.ts:997","pc":[4149,4150]},{"teal":4422,"source":"contracts/NFDInstance.algo.ts:997","pc":[4151,4152]},{"teal":4423,"source":"contracts/NFDInstance.algo.ts:997","pc":[4153]},{"teal":4424,"source":"contracts/NFDInstance.algo.ts:997","pc":[4154,4155]},{"teal":4425,"source":"contracts/NFDInstance.algo.ts:997","pc":[4156]},{"teal":4426,"source":"contracts/NFDInstance.algo.ts:997","pc":[4157]},{"teal":4429,"source":"contracts/NFDInstance.algo.ts:997","pc":[4158,4159,4160]},{"teal":4440,"source":"contracts/NFDInstance.algo.ts:999","pc":[4161]},{"teal":4441,"source":"contracts/NFDInstance.algo.ts:999","pc":[4162,4163]},{"teal":4442,"source":"contracts/NFDInstance.algo.ts:999","pc":[4164,4165]},{"teal":4446,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4166,4167]},{"teal":4447,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4168,4169]},{"teal":4451,"source":"contracts/NFDInstance.algo.ts:1001","pc":[4170,4171]},{"teal":4452,"source":"contracts/NFDInstance.algo.ts:1001","pc":[4172,4173]},{"teal":4456,"source":"contracts/NFDInstance.algo.ts:1002","pc":[4174,4175]},{"teal":4457,"source":"contracts/NFDInstance.algo.ts:1002","pc":[4176,4177]},{"teal":4461,"source":"contracts/NFDInstance.algo.ts:1003","pc":[4178,4179]},{"teal":4462,"source":"contracts/NFDInstance.algo.ts:1003","pc":[4180,4181]},{"teal":4466,"source":"contracts/NFDInstance.algo.ts:1004","pc":[4182,4183]},{"teal":4467,"source":"contracts/NFDInstance.algo.ts:1004","pc":[4184,4185]},{"teal":4470,"source":"contracts/NFDInstance.algo.ts:999","pc":[4186]},{"teal":4471,"source":"contracts/NFDInstance.algo.ts:999","pc":[4187,4188]},{"teal":4474,"source":"contracts/NFDInstance.algo.ts:999","pc":[4189]},{"teal":4475,"source":"contracts/NFDInstance.algo.ts:997","pc":[4190,4191,4192]},{"teal":4480,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4193]},{"teal":4481,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4194,4195]},{"teal":4482,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4196,4197]},{"teal":4486,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4198,4199]},{"teal":4487,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4200,4201]},{"teal":4491,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4202,4203]},{"teal":4492,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4204,4205]},{"teal":4496,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4206,4207]},{"teal":4497,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4208,4209]},{"teal":4501,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4210,4211]},{"teal":4502,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4212,4213]},{"teal":4505,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4214]},{"teal":4506,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4215,4216]},{"teal":4509,"source":"contracts/NFDInstance.algo.ts:1007","pc":[4217]},{"teal":4516,"source":"contracts/NFDInstance.algo.ts:982","pc":[4218,4219]},{"teal":4517,"source":"contracts/NFDInstance.algo.ts:982","pc":[4220]},{"teal":4518,"source":"contracts/NFDInstance.algo.ts:982","pc":[4221]},{"teal":4519,"source":"contracts/NFDInstance.algo.ts:982","pc":[4222,4223]},{"teal":4520,"source":"contracts/NFDInstance.algo.ts:982","pc":[4224,4225,4226]},{"teal":4523,"source":"contracts/NFDInstance.algo.ts:958","pc":[4227]},{"teal":4528,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4228,4229]},{"teal":4529,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4230]},{"teal":4530,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4231]},{"teal":4531,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4232]},{"teal":4532,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4233,4234]},{"teal":4533,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4235]},{"teal":4534,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4236]},{"teal":4537,"source":"contracts/NFDInstance.algo.ts:1029","errorMessage":"argument 0 (payment) for renew must be a pay transaction","pc":[4237]},{"teal":4540,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4238,4239,4240]},{"teal":4541,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4241]},{"teal":4542,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4242]},{"teal":4562,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4243,4244,4245]},{"teal":4565,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4246]},{"teal":4566,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4247,4248]},{"teal":4571,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4249,4250]},{"teal":4572,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4251,4252]},{"teal":4573,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4253,4254]},{"teal":4574,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4255]},{"teal":4577,"source":"contracts/NFDInstance.algo.ts:1030","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[4256]},{"teal":4581,"source":"contracts/NFDInstance.algo.ts:1033","pc":[4257,4258]},{"teal":4582,"source":"contracts/NFDInstance.algo.ts:1033","pc":[4259,4260,4261]},{"teal":4583,"source":"contracts/NFDInstance.algo.ts:1033","pc":[4262,4263]},{"teal":4588,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4264,4265]},{"teal":4589,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4266,4267]},{"teal":4590,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4268]},{"teal":4591,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4269,4270,4271]},{"teal":4596,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4272]},{"teal":4597,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4273,4274]},{"teal":4598,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4275,4276]},{"teal":4599,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4277]},{"teal":4600,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4278,4279]},{"teal":4601,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4280,4281]},{"teal":4602,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4282]},{"teal":4603,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4283,4284]},{"teal":4604,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4285,4286]},{"teal":4605,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4287,4288]},{"teal":4606,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4289,4290]},{"teal":4607,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4291]},{"teal":4614,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4292]},{"teal":4615,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4293,4294]},{"teal":4616,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4295,4296]},{"teal":4617,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4297,4298]},{"teal":4618,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4299,4300]},{"teal":4622,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4301,4302]},{"teal":4623,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4303,4304]},{"teal":4626,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4305]},{"teal":4627,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4306,4307]},{"teal":4630,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4308]},{"teal":4631,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4309,4310]},{"teal":4632,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4311]},{"teal":4633,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4312]},{"teal":4634,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4313,4314]},{"teal":4635,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4315,4316,4317]},{"teal":4636,"source":"contracts/NFDInstance.algo.ts:1037","pc":[4318,4319]},{"teal":4640,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4320,4321]},{"teal":4641,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4322,4323]},{"teal":4642,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4324,4325]},{"teal":4643,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4326,4327,4328]},{"teal":4644,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4329]},{"teal":4645,"source":"contracts/NFDInstance.algo.ts:1040","pc":[4330,4331]},{"teal":4649,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4332,4333]},{"teal":4650,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4334,4335,4336]},{"teal":4651,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4337]},{"teal":4652,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4338,4339]},{"teal":4656,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4340,4341]},{"teal":4657,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4342]},{"teal":4658,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4343]},{"teal":4659,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4344]},{"teal":4663,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4345]},{"teal":4664,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4346]},{"teal":4665,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4347,4348]},{"teal":4669,"source":"contracts/NFDInstance.algo.ts:1045","pc":[4349,4350]},{"teal":4670,"source":"contracts/NFDInstance.algo.ts:1045","pc":[4351,4352,4353]},{"teal":4671,"source":"contracts/NFDInstance.algo.ts:1045","pc":[4354,4355]},{"teal":4676,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4356,4357]},{"teal":4677,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4358]},{"teal":4678,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4359]},{"teal":4679,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4360]},{"teal":4680,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4361,4362,4363]},{"teal":4681,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4364,4365,4366]},{"teal":4682,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4367]},{"teal":4685,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4368,4369,4370]},{"teal":4691,"source":"contracts/NFDInstance.algo.ts:1051","pc":[4371,4372]},{"teal":4692,"source":"contracts/NFDInstance.algo.ts:1051","pc":[4373,4374]},{"teal":4693,"source":"contracts/NFDInstance.algo.ts:1051","pc":[4375]},{"teal":4694,"source":"contracts/NFDInstance.algo.ts:1051","pc":[4376,4377,4378]},{"teal":4699,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4379,4380]},{"teal":4700,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4381,4382]},{"teal":4701,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4383]},{"teal":4702,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4384]},{"teal":4703,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4385]},{"teal":4706,"source":"contracts/NFDInstance.algo.ts:1052","errorMessage":"can't claim expired nfd unless all metadata is cleared","pc":[4386]},{"teal":4713,"source":"contracts/NFDInstance.algo.ts:1058","pc":[4387,4388]},{"teal":4714,"source":"contracts/NFDInstance.algo.ts:1058","pc":[4389,4390]},{"teal":4715,"source":"contracts/NFDInstance.algo.ts:1058","pc":[4391,4392]},{"teal":4716,"source":"contracts/NFDInstance.algo.ts:1058","pc":[4393]},{"teal":4719,"source":"contracts/NFDInstance.algo.ts:1058","errorMessage":"must pay at least minimum renewal price","pc":[4394]},{"teal":4724,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4395,4396]},{"teal":4725,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4397]},{"teal":4726,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4398]},{"teal":4727,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4399,4400,4401]},{"teal":4732,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4402,4403]},{"teal":4733,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4404,4405]},{"teal":4734,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4406]},{"teal":4735,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4407]},{"teal":4739,"source":"contracts/NFDInstance.algo.ts:1062","pc":[4408,4409]},{"teal":4740,"source":"contracts/NFDInstance.algo.ts:1062","pc":[4410,4411]},{"teal":4744,"source":"contracts/NFDInstance.algo.ts:1064","pc":[4412,4413]},{"teal":4745,"source":"contracts/NFDInstance.algo.ts:1064","pc":[4414]},{"teal":4749,"source":"contracts/NFDInstance.algo.ts:1065","pc":[4415,4416]},{"teal":4750,"source":"contracts/NFDInstance.algo.ts:1065","pc":[4417]},{"teal":4754,"source":"contracts/NFDInstance.algo.ts:1066","pc":[4418,4419]},{"teal":4755,"source":"contracts/NFDInstance.algo.ts:1066","pc":[4420]},{"teal":4759,"source":"contracts/NFDInstance.algo.ts:1067","pc":[4421,4422]},{"teal":4760,"source":"contracts/NFDInstance.algo.ts:1067","pc":[4423]},{"teal":4761,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4424,4425,4426]},{"teal":4766,"source":"contracts/NFDInstance.algo.ts:1068","pc":[4427,4428,4429]},{"teal":4767,"source":"contracts/NFDInstance.algo.ts:1068","pc":[4430,4431,4432]},{"teal":4772,"source":"contracts/NFDInstance.algo.ts:1070","pc":[4433,4434]},{"teal":4773,"source":"contracts/NFDInstance.algo.ts:1070","pc":[4435,4436]},{"teal":4777,"source":"contracts/NFDInstance.algo.ts:1072","pc":[4437]},{"teal":4778,"source":"contracts/NFDInstance.algo.ts:1072","pc":[4438,4439]},{"teal":4779,"source":"contracts/NFDInstance.algo.ts:1072","pc":[4440,4441]},{"teal":4780,"source":"contracts/NFDInstance.algo.ts:1072","pc":[4442]},{"teal":4784,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4443,4444]},{"teal":4785,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4445,4446]},{"teal":4786,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4447,4448]},{"teal":4787,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4449]},{"teal":4791,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4450,4451]},{"teal":4792,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4452]},{"teal":4797,"source":"contracts/NFDInstance.algo.ts:1075","pc":[4453,4454,4455]},{"teal":4798,"source":"contracts/NFDInstance.algo.ts:1075","pc":[4456,4457,4458]},{"teal":4803,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4459,4460]},{"teal":4804,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4461]},{"teal":4805,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4462]},{"teal":4806,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4463,4464]},{"teal":4807,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4465,4466,4467]},{"teal":4808,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4468]},{"teal":4809,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4469,4470,4471]},{"teal":4810,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4472,4473]},{"teal":4811,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4474]},{"teal":4812,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4475]},{"teal":4813,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4476]},{"teal":4814,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4477]},{"teal":4815,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4478,4479,4480]},{"teal":4816,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4481]},{"teal":4817,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4482]},{"teal":4818,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4483,4484,4485]},{"teal":4819,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4486]},{"teal":4820,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4487]},{"teal":4821,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4488]},{"teal":4822,"source":"contracts/NFDInstance.algo.ts:1077","pc":[4489]},{"teal":4826,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4490,4491]},{"teal":4827,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4492]},{"teal":4836,"source":"contracts/NFDInstance.algo.ts:1082","pc":[4493,4494]},{"teal":4837,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4495,4496]},{"teal":4838,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4497,4498]},{"teal":4839,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4499,4500]},{"teal":4840,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4501,4502]},{"teal":4841,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4503,4504]},{"teal":4842,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4505,4506,4507]},{"teal":4843,"source":"contracts/NFDInstance.algo.ts:1082","pc":[4508]},{"teal":4844,"source":"contracts/NFDInstance.algo.ts:1082","pc":[4509]},{"teal":4848,"source":"contracts/NFDInstance.algo.ts:1085","pc":[4510]},{"teal":4849,"source":"contracts/NFDInstance.algo.ts:1085","pc":[4511,4512]},{"teal":4850,"source":"contracts/NFDInstance.algo.ts:1085","pc":[4513]},{"teal":4851,"source":"contracts/NFDInstance.algo.ts:1085","pc":[4514]},{"teal":4855,"source":"contracts/NFDInstance.algo.ts:1088","pc":[4515,4516]},{"teal":4856,"source":"contracts/NFDInstance.algo.ts:1088","pc":[4517,4518]},{"teal":4857,"source":"contracts/NFDInstance.algo.ts:1088","pc":[4519,4520]},{"teal":4861,"source":"contracts/NFDInstance.algo.ts:1089","pc":[4521,4522]},{"teal":4862,"source":"contracts/NFDInstance.algo.ts:1089","pc":[4523,4524]},{"teal":4866,"source":"contracts/NFDInstance.algo.ts:1091","pc":[4525,4526]},{"teal":4867,"source":"contracts/NFDInstance.algo.ts:1091","pc":[4527,4528]},{"teal":4872,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4529,4530]},{"teal":4873,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4531,4532,4533]},{"teal":4874,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4534]},{"teal":4875,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4535]},{"teal":4876,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4536,4537,4538]},{"teal":4881,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4539,4540]},{"teal":4882,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4541,4542,4543]},{"teal":4883,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4544,4545]},{"teal":4887,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4546,4547]},{"teal":4888,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4548]},{"teal":4889,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4549]},{"teal":4892,"source":"contracts/NFDInstance.algo.ts:1098","errorMessage":"global state value does not exist: parentAppId.globalState(NFD_KEY_OWNER)","pc":[4550]},{"teal":4893,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4551,4552]},{"teal":4897,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4553,4554]},{"teal":4898,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4555,4556]},{"teal":4899,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4557]},{"teal":4900,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4558,4559]},{"teal":4901,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4560]},{"teal":4902,"source":"contracts/NFDInstance.algo.ts:1103","pc":[4561,4562]},{"teal":4906,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4563,4564]},{"teal":4907,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4565,4566]},{"teal":4908,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4567,4568,4569]},{"teal":4909,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4570]},{"teal":4910,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4571]},{"teal":4911,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4572,4573]},{"teal":4912,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4574]},{"teal":4913,"source":"contracts/NFDInstance.algo.ts:1105","pc":[4575,4576]},{"teal":4918,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4577,4578]},{"teal":4919,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4579,4580]},{"teal":4920,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4581,4582,4583]},{"teal":4921,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4584]},{"teal":4922,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4585]},{"teal":4923,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4586,4587,4588]},{"teal":4928,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4589,4590]},{"teal":4929,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4591,4592,4593]},{"teal":4930,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4594]},{"teal":4931,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4595,4596]},{"teal":4937,"source":"contracts/NFDInstance.algo.ts:1109","pc":[4597,4598]},{"teal":4938,"source":"contracts/NFDInstance.algo.ts:1109","pc":[4599,4600]},{"teal":4939,"source":"contracts/NFDInstance.algo.ts:1109","pc":[4601]},{"teal":4940,"source":"contracts/NFDInstance.algo.ts:1109","pc":[4602,4603,4604]},{"teal":4945,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4605,4606]},{"teal":4946,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4607,4608]},{"teal":4951,"source":"contracts/NFDInstance.algo.ts:1113","pc":[4609,4610]},{"teal":4952,"source":"contracts/NFDInstance.algo.ts:1113","pc":[4611,4612]},{"teal":4953,"source":"contracts/NFDInstance.algo.ts:1113","pc":[4613]},{"teal":4954,"source":"contracts/NFDInstance.algo.ts:1113","pc":[4614,4615]},{"teal":4955,"source":"contracts/NFDInstance.algo.ts:1096","pc":[4616,4617,4618]},{"teal":4960,"source":"contracts/NFDInstance.algo.ts:1116","pc":[4619]},{"teal":4961,"source":"contracts/NFDInstance.algo.ts:1116","pc":[4620,4621]},{"teal":4972,"source":"contracts/NFDInstance.algo.ts:1123","pc":[4622,4623]},{"teal":4973,"source":"contracts/NFDInstance.algo.ts:1122","pc":[4624,4625]},{"teal":4974,"source":"contracts/NFDInstance.algo.ts:1121","pc":[4626]},{"teal":4975,"source":"contracts/NFDInstance.algo.ts:1120","pc":[4627,4628]},{"teal":4976,"source":"contracts/NFDInstance.algo.ts:1120","pc":[4629,4630,4631]},{"teal":4977,"source":"contracts/NFDInstance.algo.ts:1119","pc":[4632,4633]},{"teal":4978,"source":"contracts/NFDInstance.algo.ts:1118","pc":[4634,4635,4636]},{"teal":4990,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4637,4638,4639,4640,4641,4642]},{"teal":4991,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4643]},{"teal":4992,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4644]},{"teal":4993,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4645,4646,4647,4648]},{"teal":4994,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4649,4650,4651]},{"teal":4995,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4652]},{"teal":4996,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4653,4654,4655]},{"teal":4997,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4656,4657]},{"teal":4998,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4658]},{"teal":4999,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4659]},{"teal":5000,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4660]},{"teal":5001,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4661]},{"teal":5002,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4662,4663,4664]},{"teal":5003,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4665]},{"teal":5004,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4666]},{"teal":5005,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4667,4668,4669]},{"teal":5006,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4670,4671]},{"teal":5007,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4672,4673,4674]},{"teal":5008,"source":"contracts/NFDInstance.algo.ts:1129","pc":[4675,4676]},{"teal":5009,"source":"contracts/NFDInstance.algo.ts:1129","pc":[4677,4678]},{"teal":5010,"source":"contracts/NFDInstance.algo.ts:1129","pc":[4679,4680,4681]},{"teal":5011,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4682,4683]},{"teal":5012,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4684]},{"teal":5013,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4685,4686,4687]},{"teal":5014,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4688,4689]},{"teal":5015,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4690,4691]},{"teal":5016,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4692]},{"teal":5017,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4693,4694,4695]},{"teal":5018,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4696,4697]},{"teal":5019,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4698]},{"teal":5020,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4699]},{"teal":5021,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4700]},{"teal":5022,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4701,4702,4703]},{"teal":5023,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4704]},{"teal":5024,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4705]},{"teal":5025,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4706]},{"teal":5026,"source":"contracts/NFDInstance.algo.ts:1125","pc":[4707]},{"teal":5027,"source":"contracts/NFDInstance.algo.ts:1029","pc":[4708]},{"teal":5032,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4709,4710,4711]},{"teal":5033,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4712]},{"teal":5034,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4713]},{"teal":5035,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4714]},{"teal":5036,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4715]},{"teal":5039,"source":"contracts/NFDInstance.algo.ts:1137","errorMessage":"argument 0 (address) for setPrimaryAddress must be a address","pc":[4716]},{"teal":5042,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4717,4718,4719]},{"teal":5043,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4720,4721,4722]},{"teal":5046,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4723,4724,4725]},{"teal":5047,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4726]},{"teal":5048,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4727]},{"teal":5052,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4728,4729,4730]},{"teal":5056,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4731,4732,4733]},{"teal":5060,"source":"contracts/NFDInstance.algo.ts:1140","pc":[4734,4735]},{"teal":5061,"source":"contracts/NFDInstance.algo.ts:1140","pc":[4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750]},{"teal":5062,"source":"contracts/NFDInstance.algo.ts:1140","pc":[4751]},{"teal":5063,"source":"contracts/NFDInstance.algo.ts:1140","pc":[4752]},{"teal":5067,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4753]},{"teal":5068,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4754,4755]},{"teal":5069,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4756]},{"teal":5070,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4757]},{"teal":5074,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4758,4759]},{"teal":5075,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4760,4761]},{"teal":5076,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4762,4763,4764]},{"teal":5077,"source":"contracts/NFDInstance.algo.ts:1137","pc":[4765]},{"teal":5082,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4766,4767]},{"teal":5085,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4768,4769,4770]},{"teal":5086,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4771,4772,4773]},{"teal":5089,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4774,4775,4776]},{"teal":5090,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4777,4778,4779]},{"teal":5093,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4780,4781,4782]},{"teal":5094,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4783,4784]},{"teal":5095,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4785]},{"teal":5096,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4786,4787]},{"teal":5097,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4788]},{"teal":5098,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4789]},{"teal":5099,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4790]},{"teal":5100,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4791]},{"teal":5101,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4792]},{"teal":5114,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4793,4794,4795]},{"teal":5117,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4796]},{"teal":5121,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4797,4798]},{"teal":5122,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4799,4800]},{"teal":5123,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4801]},{"teal":5126,"source":"contracts/NFDInstance.algo.ts:1156","errorMessage":"caller must be NFD registry!","pc":[4802]},{"teal":5130,"source":"contracts/NFDInstance.algo.ts:1157","pc":[4803,4804,4805]},{"teal":5134,"source":"contracts/NFDInstance.algo.ts:1158","pc":[4806,4807]},{"teal":5135,"source":"contracts/NFDInstance.algo.ts:1158","pc":[4808,4809,4810]},{"teal":5136,"source":"contracts/NFDInstance.algo.ts:1158","pc":[4811,4812,4813,4814,4815,4816,4817,4818]},{"teal":5137,"source":"contracts/NFDInstance.algo.ts:1158","pc":[4819]},{"teal":5140,"source":"contracts/NFDInstance.algo.ts:1158","errorMessage":"field being verified MUST START with u.cav","pc":[4820]},{"teal":5144,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4821,4822]},{"teal":5145,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4823,4824,4825]},{"teal":5146,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4826,4827]},{"teal":5147,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4828]},{"teal":5150,"source":"contracts/NFDInstance.algo.ts:1159","errorMessage":"destination field MUST START with v.ca[....]","pc":[4829]},{"teal":5154,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4830,4831]},{"teal":5155,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4832,4833]},{"teal":5156,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4834]},{"teal":5157,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4835,4836]},{"teal":5158,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4837]},{"teal":5159,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4838,4839]},{"teal":5160,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4840]},{"teal":5161,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4841,4842]},{"teal":5162,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4843]},{"teal":5165,"source":"contracts/NFDInstance.algo.ts:1160","errorMessage":"destination field must end END with .as","pc":[4844]},{"teal":5172,"source":"contracts/NFDInstance.algo.ts:1162","pc":[4845,4846]},{"teal":5173,"source":"contracts/NFDInstance.algo.ts:1162","pc":[4847]},{"teal":5174,"source":"contracts/NFDInstance.algo.ts:1162","pc":[4848]},{"teal":5175,"source":"contracts/NFDInstance.algo.ts:1162","pc":[4849]},{"teal":5178,"source":"contracts/NFDInstance.algo.ts:1161","errorMessage":"referenced field to add as verified address must have value in box storage","pc":[4850]},{"teal":5182,"source":"contracts/NFDInstance.algo.ts:1165","pc":[4851]},{"teal":5183,"source":"contracts/NFDInstance.algo.ts:1165","pc":[4852,4853]},{"teal":5184,"source":"contracts/NFDInstance.algo.ts:1165","pc":[4854]},{"teal":5185,"source":"contracts/NFDInstance.algo.ts:1165","pc":[4855]},{"teal":5189,"source":"contracts/NFDInstance.algo.ts:1167","pc":[4856,4857]},{"teal":5190,"source":"contracts/NFDInstance.algo.ts:1167","pc":[4858]},{"teal":5193,"source":"contracts/NFDInstance.algo.ts:1167","errorMessage":"box value does not exist: this.boxes(fieldBeingVerified).value","pc":[4859]},{"teal":5194,"source":"contracts/NFDInstance.algo.ts:1167","pc":[4860,4861]},{"teal":5198,"source":"contracts/NFDInstance.algo.ts:1168","pc":[4862,4863]},{"teal":5199,"source":"contracts/NFDInstance.algo.ts:1168","pc":[4864]},{"teal":5207,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4865,4866,4867,4868,4869,4870]},{"teal":5208,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4871]},{"teal":5209,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4872]},{"teal":5210,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4873,4874]},{"teal":5211,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4875,4876,4877]},{"teal":5212,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4878]},{"teal":5213,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4879,4880,4881]},{"teal":5214,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4882,4883]},{"teal":5215,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4884]},{"teal":5216,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4885]},{"teal":5217,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4886]},{"teal":5218,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4887]},{"teal":5219,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4888,4889,4890]},{"teal":5220,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4891]},{"teal":5221,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4892]},{"teal":5222,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4893,4894,4895]},{"teal":5223,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4896,4897]},{"teal":5224,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4898,4899,4900]},{"teal":5225,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4901]},{"teal":5226,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4902]},{"teal":5227,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4903]},{"teal":5228,"source":"contracts/NFDInstance.algo.ts:1170","pc":[4904]},{"teal":5232,"source":"contracts/NFDInstance.algo.ts:1176","pc":[4905,4906]},{"teal":5233,"source":"contracts/NFDInstance.algo.ts:1176","pc":[4907,4908]},{"teal":5234,"source":"contracts/NFDInstance.algo.ts:1176","pc":[4909,4910,4911]},{"teal":5237,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4912,4913]},{"teal":5238,"source":"contracts/NFDInstance.algo.ts:1155","pc":[4914]},{"teal":5243,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4915,4916]},{"teal":5246,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4917,4918,4919]},{"teal":5247,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4920]},{"teal":5248,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4921]},{"teal":5249,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4922]},{"teal":5250,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4923]},{"teal":5253,"source":"contracts/NFDInstance.algo.ts:1187","errorMessage":"argument 0 (mbrRefundDest) for registryRemovingVerifiedAddress must be a address","pc":[4924]},{"teal":5256,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4925,4926,4927]},{"teal":5257,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4928]},{"teal":5258,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4929]},{"teal":5259,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4930]},{"teal":5260,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4931]},{"teal":5263,"source":"contracts/NFDInstance.algo.ts:1187","errorMessage":"argument 1 (address) for registryRemovingVerifiedAddress must be a address","pc":[4932]},{"teal":5266,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4933,4934,4935]},{"teal":5267,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4936,4937,4938]},{"teal":5270,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4939,4940,4941]},{"teal":5271,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4942,4943]},{"teal":5272,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4944]},{"teal":5273,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4945,4946]},{"teal":5274,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4947]},{"teal":5275,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4948]},{"teal":5276,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4949]},{"teal":5277,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4950]},{"teal":5278,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4951]},{"teal":5289,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4952,4953,4954]},{"teal":5292,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4955]},{"teal":5293,"source":"contracts/NFDInstance.algo.ts:1187","pc":[4956]},{"teal":5297,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4957,4958]},{"teal":5298,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4959,4960]},{"teal":5299,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4961]},{"teal":5302,"source":"contracts/NFDInstance.algo.ts:1188","errorMessage":"caller must be NFD registry!","pc":[4962]},{"teal":5307,"source":"contracts/NFDInstance.algo.ts:1190","pc":[4963,4964,4965]},{"teal":5308,"source":"contracts/NFDInstance.algo.ts:1190","pc":[4966]},{"teal":5309,"source":"contracts/NFDInstance.algo.ts:1190","pc":[4967,4968,4969]},{"teal":5314,"source":"contracts/NFDInstance.algo.ts:1191","pc":[4970,4971,4972]},{"teal":5315,"source":"contracts/NFDInstance.algo.ts:1191","pc":[4973]},{"teal":5318,"source":"contracts/NFDInstance.algo.ts:1191","errorMessage":"can't be for sale","pc":[4974]},{"teal":5323,"source":"contracts/NFDInstance.algo.ts:1193","pc":[4975,4976]},{"teal":5324,"source":"contracts/NFDInstance.algo.ts:1193","pc":[4977,4978,4979]},{"teal":5325,"source":"contracts/NFDInstance.algo.ts:1193","pc":[4980,4981]},{"teal":5326,"source":"contracts/NFDInstance.algo.ts:1193","pc":[4982]},{"teal":5329,"source":"contracts/NFDInstance.algo.ts:1193","errorMessage":"verified field MUST START with v.ca[....]","pc":[4983]},{"teal":5336,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4984,4985]},{"teal":5337,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4986,4987]},{"teal":5338,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4988]},{"teal":5339,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4989,4990]},{"teal":5340,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4991]},{"teal":5341,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4992,4993]},{"teal":5342,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4994]},{"teal":5343,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4995,4996]},{"teal":5344,"source":"contracts/NFDInstance.algo.ts:1195","pc":[4997]},{"teal":5347,"source":"contracts/NFDInstance.algo.ts:1194","errorMessage":"verified field must end END with .as","pc":[4998]},{"teal":5351,"source":"contracts/NFDInstance.algo.ts:1198","pc":[4999]},{"teal":5352,"source":"contracts/NFDInstance.algo.ts:1198","pc":[5000,5001]},{"teal":5353,"source":"contracts/NFDInstance.algo.ts:1198","pc":[5002]},{"teal":5354,"source":"contracts/NFDInstance.algo.ts:1198","pc":[5003]},{"teal":5358,"source":"contracts/NFDInstance.algo.ts:1200","pc":[5004,5005]},{"teal":5359,"source":"contracts/NFDInstance.algo.ts:1200","pc":[5006]},{"teal":5362,"source":"contracts/NFDInstance.algo.ts:1200","errorMessage":"box value does not exist: this.boxes(fieldBeingChanged).size","pc":[5007]},{"teal":5363,"source":"contracts/NFDInstance.algo.ts:1200","pc":[5008,5009]},{"teal":5367,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5010,5011]},{"teal":5368,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5012,5013]},{"teal":5369,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5014,5015,5016]},{"teal":5370,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5017,5018]},{"teal":5378,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5019,5020,5021,5022,5023,5024]},{"teal":5379,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5025]},{"teal":5380,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5026]},{"teal":5381,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5027,5028]},{"teal":5382,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5029,5030,5031]},{"teal":5383,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5032]},{"teal":5384,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5033,5034,5035]},{"teal":5385,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5036,5037]},{"teal":5386,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5038]},{"teal":5387,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5039]},{"teal":5388,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5040]},{"teal":5389,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5041]},{"teal":5390,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5042,5043,5044]},{"teal":5391,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5045]},{"teal":5392,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5046]},{"teal":5393,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5047,5048,5049]},{"teal":5394,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5050,5051]},{"teal":5395,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5052,5053,5054]},{"teal":5396,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5055]},{"teal":5397,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5056]},{"teal":5398,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5057]},{"teal":5399,"source":"contracts/NFDInstance.algo.ts:1203","pc":[5058]},{"teal":5404,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5059,5060]},{"teal":5405,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5061]},{"teal":5406,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5062]},{"teal":5407,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5063]},{"teal":5408,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5064]},{"teal":5409,"source":"contracts/NFDInstance.algo.ts:1209","pc":[5065,5066,5067]},{"teal":5418,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5068]},{"teal":5419,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5069]},{"teal":5420,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5070,5071]},{"teal":5424,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5072,5073]},{"teal":5425,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5074,5075]},{"teal":5426,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5076,5077]},{"teal":5427,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5078]},{"teal":5428,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5079,5080]},{"teal":5429,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5081]},{"teal":5430,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5082]},{"teal":5431,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5083]},{"teal":5432,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5084,5085]},{"teal":5436,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5086,5087]},{"teal":5437,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5088,5089]},{"teal":5441,"source":"contracts/NFDInstance.algo.ts:1214","pc":[5090,5091]},{"teal":5442,"source":"contracts/NFDInstance.algo.ts:1214","pc":[5092,5093]},{"teal":5445,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5094]},{"teal":5446,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5095,5096]},{"teal":5449,"source":"contracts/NFDInstance.algo.ts:1211","pc":[5097]},{"teal":5454,"source":"contracts/NFDInstance.algo.ts:1218","pc":[5098,5099]},{"teal":5457,"source":"contracts/NFDInstance.algo.ts:1187","pc":[5100,5101]},{"teal":5460,"source":"contracts/NFDInstance.algo.ts:1187","pc":[5102,5103]},{"teal":5461,"source":"contracts/NFDInstance.algo.ts:1187","pc":[5104]},{"teal":5470,"source":"contracts/NFDInstance.algo.ts:1227","pc":[5105,5106,5107]},{"teal":5477,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5108]},{"teal":5478,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5109,5110]},{"teal":5479,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5111,5112]},{"teal":5480,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5113,5114,5115,5116,5117,5118]},{"teal":5481,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5119,5120]},{"teal":5485,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5121,5122]},{"teal":5486,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5123,5124]},{"teal":5490,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5125,5126]},{"teal":5491,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5127]},{"teal":5492,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5128]},{"teal":5493,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5129]},{"teal":5494,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5130]},{"teal":5495,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5131,5132,5133]},{"teal":5496,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5134]},{"teal":5497,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5135]},{"teal":5498,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5136,5137]},{"teal":5499,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5138,5139]},{"teal":5500,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5140,5141]},{"teal":5503,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5142]},{"teal":5504,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5143,5144]},{"teal":5507,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5145]},{"teal":5508,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5146,5147]},{"teal":5509,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5148]},{"teal":5510,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5149]},{"teal":5511,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5150,5151]},{"teal":5512,"source":"contracts/NFDInstance.algo.ts:1229","pc":[5152,5153,5154]},{"teal":5513,"source":"contracts/NFDInstance.algo.ts:1227","pc":[5155]},{"teal":5517,"source":"contracts/NFDInstance.algo.ts:1241","pc":[5156,5157,5158]},{"teal":5520,"source":"contracts/NFDInstance.algo.ts:1241","pc":[5159]},{"teal":5521,"source":"contracts/NFDInstance.algo.ts:1241","pc":[5160]},{"teal":5525,"source":"contracts/NFDInstance.algo.ts:1242","pc":[5161,5162,5163]},{"teal":5530,"source":"contracts/NFDInstance.algo.ts:1246","pc":[5164,5165,5166]},{"teal":5531,"source":"contracts/NFDInstance.algo.ts:1246","pc":[5167,5168,5169]},{"teal":5536,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5170,5171]},{"teal":5537,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5172]},{"teal":5538,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5173]},{"teal":5539,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5174]},{"teal":5542,"source":"contracts/NFDInstance.algo.ts:1247","errorMessage":"sender must be owner","pc":[5175]},{"teal":5547,"source":"contracts/NFDInstance.algo.ts:1250","pc":[5176,5177]},{"teal":5548,"source":"contracts/NFDInstance.algo.ts:1250","pc":[5178]},{"teal":5549,"source":"contracts/NFDInstance.algo.ts:1250","pc":[5179]},{"teal":5552,"source":"contracts/NFDInstance.algo.ts:1250","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[5180]},{"teal":5559,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5181,5182]},{"teal":5560,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5183]},{"teal":5561,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5184]},{"teal":5562,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5185,5186]},{"teal":5565,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5187,5188]},{"teal":5566,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5189,5190]},{"teal":5567,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5191]},{"teal":5568,"source":"contracts/NFDInstance.algo.ts:1252","pc":[5192]},{"teal":5571,"source":"contracts/NFDInstance.algo.ts:1252","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[5193]},{"teal":5574,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5194,5195]},{"teal":5575,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5196,5197]},{"teal":5576,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5198,5199]},{"teal":5577,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5200]},{"teal":5580,"source":"contracts/NFDInstance.algo.ts:1253","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[5201]},{"teal":5583,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5202,5203]},{"teal":5584,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5204,5205]},{"teal":5585,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5206,5207]},{"teal":5586,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5208,5209]},{"teal":5587,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5210]},{"teal":5588,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5211]},{"teal":5589,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5212]},{"teal":5590,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5213]},{"teal":5593,"source":"contracts/NFDInstance.algo.ts:1254","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * (this.txn.numAppArgs - 1)\"}","pc":[5214]},{"teal":5597,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5215]},{"teal":5598,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5216,5217]},{"teal":5603,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5218,5219]},{"teal":5604,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5220,5221]},{"teal":5605,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5222]},{"teal":5606,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5223,5224,5225]},{"teal":5610,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5226,5227]},{"teal":5611,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5228,5229]},{"teal":5612,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5230]},{"teal":5613,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5231,5232]},{"teal":5618,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5233,5234]},{"teal":5619,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5235,5236]},{"teal":5620,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5237,5238]},{"teal":5621,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5239]},{"teal":5622,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5240]},{"teal":5623,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5241]},{"teal":5624,"source":"contracts/NFDInstance.algo.ts:1259","pc":[5242,5243,5244]},{"teal":5633,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5245]},{"teal":5634,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5246,5247]},{"teal":5635,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5248,5249]},{"teal":5639,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5250,5251]},{"teal":5640,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5252,5253]},{"teal":5644,"source":"contracts/NFDInstance.algo.ts:1262","pc":[5254,5255]},{"teal":5645,"source":"contracts/NFDInstance.algo.ts:1262","pc":[5256,5257]},{"teal":5649,"source":"contracts/NFDInstance.algo.ts:1263","pc":[5258]},{"teal":5650,"source":"contracts/NFDInstance.algo.ts:1263","pc":[5259,5260]},{"teal":5653,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5261]},{"teal":5654,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5262,5263]},{"teal":5657,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5264]},{"teal":5664,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5265,5266]},{"teal":5665,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5267]},{"teal":5666,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5268]},{"teal":5667,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5269,5270]},{"teal":5668,"source":"contracts/NFDInstance.algo.ts:1256","pc":[5271,5272,5273]},{"teal":5671,"source":"contracts/NFDInstance.algo.ts:1241","pc":[5274]},{"teal":5675,"source":"contracts/NFDInstance.algo.ts:1269","pc":[5275,5276,5277]},{"teal":5680,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5278,5279,5280]},{"teal":5681,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5281,5282]},{"teal":5682,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5283]},{"teal":5683,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5284]},{"teal":5684,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5285]},{"teal":5685,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5286]},{"teal":5686,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5287,5288,5289]},{"teal":5691,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5290]},{"teal":5692,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5291]},{"teal":5697,"source":"contracts/NFDInstance.algo.ts:1273","pc":[5292,5293]},{"teal":5698,"source":"contracts/NFDInstance.algo.ts:1273","pc":[5294]},{"teal":5699,"source":"contracts/NFDInstance.algo.ts:1269","pc":[5295]},{"teal":5703,"source":"contracts/NFDInstance.algo.ts:1276","pc":[5296,5297,5298]},{"teal":5708,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5299,5300]},{"teal":5709,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5301,5302]},{"teal":5710,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5303]},{"teal":5711,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5304]},{"teal":5712,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5305]},{"teal":5713,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5306]},{"teal":5714,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5307,5308,5309]},{"teal":5719,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5310]},{"teal":5720,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5311]},{"teal":5725,"source":"contracts/NFDInstance.algo.ts:1280","pc":[5312,5313]},{"teal":5726,"source":"contracts/NFDInstance.algo.ts:1280","pc":[5314,5315]},{"teal":5727,"source":"contracts/NFDInstance.algo.ts:1280","pc":[5316]},{"teal":5730,"source":"contracts/NFDInstance.algo.ts:1280","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5317]},{"teal":5731,"source":"contracts/NFDInstance.algo.ts:1276","pc":[5318]},{"teal":5735,"source":"contracts/NFDInstance.algo.ts:1283","pc":[5319,5320,5321]},{"teal":5740,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5322,5323,5324]},{"teal":5741,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5325,5326]},{"teal":5742,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5327]},{"teal":5743,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5328]},{"teal":5744,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5329]},{"teal":5745,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5330]},{"teal":5746,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5331,5332,5333]},{"teal":5751,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5334]},{"teal":5752,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5335]},{"teal":5757,"source":"contracts/NFDInstance.algo.ts:1287","pc":[5336,5337]},{"teal":5758,"source":"contracts/NFDInstance.algo.ts:1287","pc":[5338]},{"teal":5759,"source":"contracts/NFDInstance.algo.ts:1287","pc":[5339]},{"teal":5760,"source":"contracts/NFDInstance.algo.ts:1283","pc":[5340]},{"teal":5764,"source":"contracts/NFDInstance.algo.ts:1290","pc":[5341,5342,5343]},{"teal":5768,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5344,5345]},{"teal":5769,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5346,5347]},{"teal":5770,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5348,5349]},{"teal":5771,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5350]},{"teal":5772,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5351]},{"teal":5773,"source":"contracts/NFDInstance.algo.ts:1293","pc":[5352]},{"teal":5774,"source":"contracts/NFDInstance.algo.ts:1290","pc":[5353]},{"teal":5778,"source":"contracts/NFDInstance.algo.ts:1309","pc":[5354,5355,5356]},{"teal":5781,"source":"contracts/NFDInstance.algo.ts:1309","pc":[5357]},{"teal":5785,"source":"contracts/NFDInstance.algo.ts:1311","pc":[5358,5359]},{"teal":5786,"source":"contracts/NFDInstance.algo.ts:1311","pc":[5360,5361,5362]},{"teal":5787,"source":"contracts/NFDInstance.algo.ts:1311","pc":[5363,5364]},{"teal":5791,"source":"contracts/NFDInstance.algo.ts:1313","pc":[5365,5366]},{"teal":5792,"source":"contracts/NFDInstance.algo.ts:1313","pc":[5367,5368,5369]},{"teal":5793,"source":"contracts/NFDInstance.algo.ts:1313","pc":[5370]},{"teal":5796,"source":"contracts/NFDInstance.algo.ts:1313","errorMessage":"internal fields can never be deleted","pc":[5371]},{"teal":5801,"source":"contracts/NFDInstance.algo.ts:1316","pc":[5372,5373]},{"teal":5802,"source":"contracts/NFDInstance.algo.ts:1316","pc":[5374,5375,5376]},{"teal":5807,"source":"contracts/NFDInstance.algo.ts:1317","pc":[5377]},{"teal":5808,"source":"contracts/NFDInstance.algo.ts:1317","pc":[5378,5379,5380]},{"teal":5813,"source":"contracts/NFDInstance.algo.ts:1320","pc":[5381]},{"teal":5814,"source":"contracts/NFDInstance.algo.ts:1320","pc":[5382,5383,5384]},{"teal":5815,"source":"contracts/NFDInstance.algo.ts:1320","pc":[5385]},{"teal":5816,"source":"contracts/NFDInstance.algo.ts:1320","pc":[5386]},{"teal":5817,"source":"contracts/NFDInstance.algo.ts:1320","pc":[5387]},{"teal":5820,"source":"contracts/NFDInstance.algo.ts:1320","errorMessage":"must be owned","pc":[5388]},{"teal":5825,"source":"contracts/NFDInstance.algo.ts:1322","pc":[5389,5390,5391]},{"teal":5826,"source":"contracts/NFDInstance.algo.ts:1322","pc":[5392]},{"teal":5827,"source":"contracts/NFDInstance.algo.ts:1322","pc":[5393,5394,5395]},{"teal":5832,"source":"contracts/NFDInstance.algo.ts:1323","pc":[5396,5397,5398]},{"teal":5833,"source":"contracts/NFDInstance.algo.ts:1323","pc":[5399]},{"teal":5836,"source":"contracts/NFDInstance.algo.ts:1323","errorMessage":"can't be for sale","pc":[5400]},{"teal":5840,"source":"contracts/NFDInstance.algo.ts:1324","pc":[5401,5402,5403]},{"teal":5846,"source":"contracts/NFDInstance.algo.ts:1327","pc":[5404,5405]},{"teal":5847,"source":"contracts/NFDInstance.algo.ts:1327","pc":[5406,5407,5408]},{"teal":5848,"source":"contracts/NFDInstance.algo.ts:1327","pc":[5409,5410,5411]},{"teal":5853,"source":"contracts/NFDInstance.algo.ts:1328","pc":[5412]},{"teal":5854,"source":"contracts/NFDInstance.algo.ts:1328","pc":[5413,5414,5415]},{"teal":5860,"source":"contracts/NFDInstance.algo.ts:1330","pc":[5416,5417]},{"teal":5861,"source":"contracts/NFDInstance.algo.ts:1330","pc":[5418,5419,5420]},{"teal":5862,"source":"contracts/NFDInstance.algo.ts:1330","pc":[5421,5422,5423]},{"teal":5868,"source":"contracts/NFDInstance.algo.ts:1333","pc":[5424,5425]},{"teal":5869,"source":"contracts/NFDInstance.algo.ts:1333","pc":[5426]},{"teal":5870,"source":"contracts/NFDInstance.algo.ts:1333","pc":[5427,5428]},{"teal":5871,"source":"contracts/NFDInstance.algo.ts:1333","pc":[5429]},{"teal":5872,"source":"contracts/NFDInstance.algo.ts:1333","pc":[5430,5431,5432]},{"teal":5877,"source":"contracts/NFDInstance.algo.ts:1335","pc":[5433]},{"teal":5878,"source":"contracts/NFDInstance.algo.ts:1335","pc":[5434,5435,5436]},{"teal":5883,"source":"contracts/NFDInstance.algo.ts:1337","pc":[5437,5438]},{"teal":5884,"source":"contracts/NFDInstance.algo.ts:1337","pc":[5439,5440,5441]},{"teal":5885,"source":"contracts/NFDInstance.algo.ts:1337","pc":[5442,5443]},{"teal":5886,"source":"contracts/NFDInstance.algo.ts:1337","pc":[5444]},{"teal":5887,"source":"contracts/NFDInstance.algo.ts:1337","pc":[5445,5446,5447]},{"teal":5892,"source":"contracts/NFDInstance.algo.ts:1339","pc":[5448]},{"teal":5896,"source":"contracts/NFDInstance.algo.ts:1309","pc":[5449,5450]},{"teal":5897,"source":"contracts/NFDInstance.algo.ts:1309","pc":[5451]},{"teal":5901,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5452,5453,5454]},{"teal":5904,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5455]},{"teal":5905,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5456,5457]},{"teal":5909,"source":"contracts/NFDInstance.algo.ts:1355","pc":[5458,5459]},{"teal":5910,"source":"contracts/NFDInstance.algo.ts:1355","pc":[5460,5461,5462]},{"teal":5911,"source":"contracts/NFDInstance.algo.ts:1355","pc":[5463,5464]},{"teal":5915,"source":"contracts/NFDInstance.algo.ts:1357","pc":[5465,5466]},{"teal":5916,"source":"contracts/NFDInstance.algo.ts:1357","pc":[5467,5468,5469]},{"teal":5917,"source":"contracts/NFDInstance.algo.ts:1357","pc":[5470]},{"teal":5920,"source":"contracts/NFDInstance.algo.ts:1357","errorMessage":"internal fields can never be updated","pc":[5471]},{"teal":5924,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5472,5473]},{"teal":5925,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5474,5475,5476]},{"teal":5926,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5477,5478]},{"teal":5930,"source":"contracts/NFDInstance.algo.ts:1359","pc":[5479,5480]},{"teal":5931,"source":"contracts/NFDInstance.algo.ts:1359","pc":[5481,5482,5483]},{"teal":5932,"source":"contracts/NFDInstance.algo.ts:1359","pc":[5484,5485]},{"teal":5937,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5486,5487]},{"teal":5938,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5488]},{"teal":5939,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5489,5490,5491]},{"teal":5940,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5492,5493]},{"teal":5941,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5494]},{"teal":5942,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5495,5496,5497]},{"teal":5943,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5498,5499]},{"teal":5944,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5500]},{"teal":5945,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5501,5502,5503]},{"teal":5946,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5504,5505]},{"teal":5947,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5506]},{"teal":5948,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5507]},{"teal":5949,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5508]},{"teal":5950,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5509]},{"teal":5953,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5510]},{"teal":5956,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5511]},{"teal":5959,"source":"contracts/NFDInstance.algo.ts:1361","pc":[5512,5513,5514]},{"teal":5964,"source":"contracts/NFDInstance.algo.ts:1362","pc":[5515]},{"teal":5965,"source":"contracts/NFDInstance.algo.ts:1362","pc":[5516,5517,5518]},{"teal":5970,"source":"contracts/NFDInstance.algo.ts:1365","pc":[5519]},{"teal":5971,"source":"contracts/NFDInstance.algo.ts:1365","pc":[5520,5521,5522]},{"teal":5972,"source":"contracts/NFDInstance.algo.ts:1365","pc":[5523]},{"teal":5973,"source":"contracts/NFDInstance.algo.ts:1365","pc":[5524]},{"teal":5974,"source":"contracts/NFDInstance.algo.ts:1365","pc":[5525]},{"teal":5977,"source":"contracts/NFDInstance.algo.ts:1365","errorMessage":"must be owned","pc":[5526]},{"teal":5981,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5527,5528,5529]},{"teal":5982,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5530]},{"teal":5985,"source":"contracts/NFDInstance.algo.ts:1366","errorMessage":"can't be for sale","pc":[5531]},{"teal":5989,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5532,5533]},{"teal":5990,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5534]},{"teal":5991,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5535]},{"teal":5992,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5536]},{"teal":5995,"source":"contracts/NFDInstance.algo.ts:1367","errorMessage":"sender must be owner","pc":[5537]},{"teal":6000,"source":"contracts/NFDInstance.algo.ts:1369","pc":[5538,5539]},{"teal":6001,"source":"contracts/NFDInstance.algo.ts:1369","pc":[5540,5541,5542]},{"teal":6006,"source":"contracts/NFDInstance.algo.ts:1370","pc":[5543]},{"teal":6007,"source":"contracts/NFDInstance.algo.ts:1370","pc":[5544,5545,5546]},{"teal":6013,"source":"contracts/NFDInstance.algo.ts:1373","pc":[5547,5548]},{"teal":6014,"source":"contracts/NFDInstance.algo.ts:1373","pc":[5549]},{"teal":6015,"source":"contracts/NFDInstance.algo.ts:1373","pc":[5550,5551]},{"teal":6016,"source":"contracts/NFDInstance.algo.ts:1373","pc":[5552]},{"teal":6017,"source":"contracts/NFDInstance.algo.ts:1373","pc":[5553,5554,5555]},{"teal":6023,"source":"contracts/NFDInstance.algo.ts:1374","pc":[5556,5557]},{"teal":6024,"source":"contracts/NFDInstance.algo.ts:1374","pc":[5558,5559,5560]},{"teal":6025,"source":"contracts/NFDInstance.algo.ts:1374","pc":[5561,5562]},{"teal":6026,"source":"contracts/NFDInstance.algo.ts:1374","pc":[5563]},{"teal":6027,"source":"contracts/NFDInstance.algo.ts:1374","pc":[5564,5565,5566]},{"teal":6031,"source":"contracts/NFDInstance.algo.ts:1375","errorMessage":"updating v.caAlgo field isn't allowed via regular field update","pc":[5567]},{"teal":6038,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5568,5569]},{"teal":6039,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5570]},{"teal":6040,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5571,5572,5573]},{"teal":6041,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5574,5575]},{"teal":6042,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5576]},{"teal":6043,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5577]},{"teal":6044,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5578]},{"teal":6045,"source":"contracts/NFDInstance.algo.ts:1379","pc":[5579]},{"teal":6051,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5580,5581]},{"teal":6054,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5582,5583]},{"teal":6055,"source":"contracts/NFDInstance.algo.ts:1353","pc":[5584]},{"teal":6059,"source":"contracts/NFDInstance.algo.ts:1383","pc":[5585,5586,5587]},{"teal":6063,"source":"contracts/NFDInstance.algo.ts:1384","pc":[5588,5589]},{"teal":6064,"source":"contracts/NFDInstance.algo.ts:1384","pc":[5590,5591,5592,5593]},{"teal":6065,"source":"contracts/NFDInstance.algo.ts:1384","pc":[5594]},{"teal":6066,"source":"contracts/NFDInstance.algo.ts:1383","pc":[5595]},{"teal":6070,"source":"contracts/NFDInstance.algo.ts:1388","pc":[5596,5597,5598]},{"teal":6074,"source":"contracts/NFDInstance.algo.ts:1389","pc":[5599,5600]},{"teal":6075,"source":"contracts/NFDInstance.algo.ts:1389","pc":[5601,5602,5603,5604]},{"teal":6076,"source":"contracts/NFDInstance.algo.ts:1389","pc":[5605]},{"teal":6077,"source":"contracts/NFDInstance.algo.ts:1388","pc":[5606]},{"teal":6081,"source":"contracts/NFDInstance.algo.ts:1393","pc":[5607,5608,5609]},{"teal":6085,"source":"contracts/NFDInstance.algo.ts:1394","pc":[5610,5611]},{"teal":6086,"source":"contracts/NFDInstance.algo.ts:1394","pc":[5612,5613,5614,5615]},{"teal":6087,"source":"contracts/NFDInstance.algo.ts:1394","pc":[5616]},{"teal":6088,"source":"contracts/NFDInstance.algo.ts:1393","pc":[5617]},{"teal":6092,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5618,5619,5620]},{"teal":6096,"source":"contracts/NFDInstance.algo.ts:1398","pc":[5621,5622]},{"teal":6097,"source":"contracts/NFDInstance.algo.ts:1398","pc":[5623,5624,5625]},{"teal":6098,"source":"contracts/NFDInstance.algo.ts:1398","pc":[5626]},{"teal":6099,"source":"contracts/NFDInstance.algo.ts:1398","pc":[5627]},{"teal":6100,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5628]},{"teal":6104,"source":"contracts/NFDInstance.algo.ts:1402","pc":[5629,5630,5631]},{"teal":6107,"source":"contracts/NFDInstance.algo.ts:1402","pc":[5632]},{"teal":6111,"source":"contracts/NFDInstance.algo.ts:1403","pc":[5633,5634]},{"teal":6112,"source":"contracts/NFDInstance.algo.ts:1403","pc":[5635,5636,5637]},{"teal":6113,"source":"contracts/NFDInstance.algo.ts:1403","pc":[5638,5639]},{"teal":6118,"source":"contracts/NFDInstance.algo.ts:1404","pc":[5640,5641]},{"teal":6119,"source":"contracts/NFDInstance.algo.ts:1404","pc":[5642]},{"teal":6120,"source":"contracts/NFDInstance.algo.ts:1404","pc":[5643]},{"teal":6121,"source":"contracts/NFDInstance.algo.ts:1404","pc":[5644,5645,5646]},{"teal":6126,"source":"contracts/NFDInstance.algo.ts:1406","pc":[5647]},{"teal":6127,"source":"contracts/NFDInstance.algo.ts:1406","pc":[5648,5649,5650]},{"teal":6132,"source":"contracts/NFDInstance.algo.ts:1408","pc":[5651,5652]},{"teal":6133,"source":"contracts/NFDInstance.algo.ts:1408","pc":[5653,5654]},{"teal":6134,"source":"contracts/NFDInstance.algo.ts:1408","pc":[5655]},{"teal":6138,"source":"contracts/NFDInstance.algo.ts:1402","pc":[5656,5657]},{"teal":6139,"source":"contracts/NFDInstance.algo.ts:1402","pc":[5658]},{"teal":6143,"source":"contracts/NFDInstance.algo.ts:1416","pc":[5659,5660,5661]},{"teal":6147,"source":"contracts/NFDInstance.algo.ts:1417","pc":[5662,5663]},{"teal":6148,"source":"contracts/NFDInstance.algo.ts:1417","pc":[5664,5665,5666]},{"teal":6149,"source":"contracts/NFDInstance.algo.ts:1417","pc":[5667,5668]},{"teal":6150,"source":"contracts/NFDInstance.algo.ts:1417","pc":[5669]},{"teal":6151,"source":"contracts/NFDInstance.algo.ts:1416","pc":[5670]},{"teal":6155,"source":"contracts/NFDInstance.algo.ts:1420","pc":[5671,5672,5673]},{"teal":6159,"source":"contracts/NFDInstance.algo.ts:1421","pc":[5674,5675,5676]},{"teal":6163,"source":"contracts/NFDInstance.algo.ts:1422","pc":[5677,5678,5679]},{"teal":6164,"source":"contracts/NFDInstance.algo.ts:1420","pc":[5680]},{"teal":6168,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5681,5682,5683]},{"teal":6172,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5684,5685,5686]},{"teal":6173,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5687]},{"teal":6176,"source":"contracts/NFDInstance.algo.ts:1426","errorMessage":"can't be for sale","pc":[5688]},{"teal":6180,"source":"contracts/NFDInstance.algo.ts:1427","pc":[5689,5690,5691]},{"teal":6181,"source":"contracts/NFDInstance.algo.ts:1427","pc":[5692]},{"teal":6184,"source":"contracts/NFDInstance.algo.ts:1427","errorMessage":"can't be expired","pc":[5693]},{"teal":6185,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5694]},{"teal":6189,"source":"contracts/NFDInstance.algo.ts:1431","pc":[5695,5696,5697]},{"teal":6192,"source":"contracts/NFDInstance.algo.ts:1431","pc":[5698]},{"teal":6196,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5699]},{"teal":6197,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5700,5701]},{"teal":6202,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5702,5703]},{"teal":6203,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5704,5705]},{"teal":6204,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5706]},{"teal":6205,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5707,5708,5709]},{"teal":6210,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5710,5711]},{"teal":6211,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5712,5713]},{"teal":6212,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5714]},{"teal":6213,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5715]},{"teal":6214,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5716,5717]},{"teal":6215,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5718]},{"teal":6216,"source":"contracts/NFDInstance.algo.ts:1433","pc":[5719,5720,5721]},{"teal":6221,"source":"contracts/NFDInstance.algo.ts:1434","pc":[5722]},{"teal":6222,"source":"contracts/NFDInstance.algo.ts:1434","pc":[5723,5724,5725]},{"teal":6229,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5726,5727]},{"teal":6230,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5728]},{"teal":6231,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5729]},{"teal":6232,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5730,5731]},{"teal":6233,"source":"contracts/NFDInstance.algo.ts:1432","pc":[5732,5733,5734]},{"teal":6238,"source":"contracts/NFDInstance.algo.ts:1437","pc":[5735]},{"teal":6242,"source":"contracts/NFDInstance.algo.ts:1431","pc":[5736,5737]},{"teal":6243,"source":"contracts/NFDInstance.algo.ts:1431","pc":[5738]},{"teal":6256,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5739,5740,5741]},{"teal":6259,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5742]},{"teal":6260,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5743]},{"teal":6264,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5744,5745]},{"teal":6265,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5746,5747]},{"teal":6266,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5748]},{"teal":6267,"source":"contracts/config.algo.ts:5","pc":[5749,5750]},{"teal":6268,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5751]},{"teal":6269,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5752,5753]},{"teal":6270,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5754]},{"teal":6271,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5755,5756]},{"teal":6275,"source":"contracts/NFDInstance.algo.ts:1452","pc":[5757,5758]},{"teal":6276,"source":"contracts/NFDInstance.algo.ts:1452","pc":[5759,5760]},{"teal":6277,"source":"contracts/NFDInstance.algo.ts:1452","pc":[5761]},{"teal":6278,"source":"contracts/NFDInstance.algo.ts:1452","pc":[5762,5763]},{"teal":6285,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5764,5765]},{"teal":6286,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5766,5767]},{"teal":6287,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5768,5769]},{"teal":6288,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5770,5771]},{"teal":6289,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5772]},{"teal":6290,"source":"contracts/config.algo.ts:5","pc":[5773,5774]},{"teal":6291,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5775]},{"teal":6292,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5776]},{"teal":6293,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5777]},{"teal":6296,"source":"contracts/NFDInstance.algo.ts:1454","errorMessage":"max expiration exceeded parameters defined by registry","pc":[5778]},{"teal":6300,"source":"contracts/NFDInstance.algo.ts:1458","pc":[5779,5780]},{"teal":6303,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5781,5782]},{"teal":6306,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5783,5784]},{"teal":6307,"source":"contracts/NFDInstance.algo.ts:1450","pc":[5785]},{"teal":6311,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5786,5787,5788]},{"teal":6314,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5789]},{"teal":6315,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5790]},{"teal":6319,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5791,5792]},{"teal":6320,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5793,5794]},{"teal":6321,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5795]},{"teal":6322,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5796,5797]},{"teal":6323,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5798,5799]},{"teal":6327,"source":"contracts/NFDInstance.algo.ts:1463","pc":[5800,5801]},{"teal":6330,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5802,5803]},{"teal":6333,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5804,5805]},{"teal":6334,"source":"contracts/NFDInstance.algo.ts:1461","pc":[5806]},{"teal":6338,"source":"contracts/NFDInstance.algo.ts:1466","pc":[5807,5808,5809]},{"teal":6341,"source":"contracts/NFDInstance.algo.ts:1466","pc":[5810]},{"teal":6342,"source":"contracts/NFDInstance.algo.ts:1466","pc":[5811]},{"teal":6346,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5812,5813]},{"teal":6347,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5814,5815]},{"teal":6348,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5816]},{"teal":6349,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5817]},{"teal":6350,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5818,5819]},{"teal":6351,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5820]},{"teal":6352,"source":"contracts/NFDInstance.algo.ts:1469","pc":[5821,5822]},{"teal":6357,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5823,5824]},{"teal":6358,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5825]},{"teal":6359,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5826]},{"teal":6360,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5827,5828,5829]},{"teal":6365,"source":"contracts/NFDInstance.algo.ts:1472","pc":[5830,5831]},{"teal":6366,"source":"contracts/NFDInstance.algo.ts:1472","pc":[5832,5833]},{"teal":6367,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5834,5835,5836]},{"teal":6372,"source":"contracts/NFDInstance.algo.ts:1475","pc":[5837,5838]},{"teal":6373,"source":"contracts/NFDInstance.algo.ts:1475","pc":[5839,5840]},{"teal":6379,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5841,5842]},{"teal":6380,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5843,5844]},{"teal":6381,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5845]},{"teal":6382,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5846,5847,5848]},{"teal":6387,"source":"contracts/NFDInstance.algo.ts:1478","pc":[5849]},{"teal":6398,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5850]},{"teal":6399,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5851,5852]},{"teal":6400,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5853,5854]},{"teal":6404,"source":"contracts/NFDInstance.algo.ts:1481","pc":[5855,5856]},{"teal":6405,"source":"contracts/NFDInstance.algo.ts:1481","pc":[5857]},{"teal":6406,"source":"contracts/NFDInstance.algo.ts:1481","pc":[5858]},{"teal":6407,"source":"contracts/NFDInstance.algo.ts:1481","pc":[5859,5860]},{"teal":6411,"source":"contracts/NFDInstance.algo.ts:1482","pc":[5861]},{"teal":6412,"source":"contracts/NFDInstance.algo.ts:1482","pc":[5862,5863]},{"teal":6416,"source":"contracts/NFDInstance.algo.ts:1483","pc":[5864,5865]},{"teal":6417,"source":"contracts/NFDInstance.algo.ts:1483","pc":[5866,5867]},{"teal":6421,"source":"contracts/NFDInstance.algo.ts:1484","pc":[5868,5869]},{"teal":6422,"source":"contracts/NFDInstance.algo.ts:1484","pc":[5870,5871]},{"teal":6426,"source":"contracts/NFDInstance.algo.ts:1485","pc":[5872,5873]},{"teal":6427,"source":"contracts/NFDInstance.algo.ts:1485","pc":[5874,5875]},{"teal":6430,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5876]},{"teal":6431,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5877,5878]},{"teal":6434,"source":"contracts/NFDInstance.algo.ts:1480","pc":[5879]},{"teal":6435,"source":"contracts/NFDInstance.algo.ts:1466","pc":[5880]},{"teal":6445,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5881,5882,5883]},{"teal":6448,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5884]},{"teal":6449,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5885]},{"teal":6453,"source":"contracts/NFDInstance.algo.ts:1497","pc":[5886,5887]},{"teal":6454,"source":"contracts/NFDInstance.algo.ts:1497","pc":[5888]},{"teal":6455,"source":"contracts/NFDInstance.algo.ts:1497","pc":[5889]},{"teal":6456,"source":"contracts/NFDInstance.algo.ts:1497","pc":[5890]},{"teal":6457,"source":"contracts/NFDInstance.algo.ts:1497","pc":[5891,5892]},{"teal":6461,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5893]},{"teal":6462,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5894,5895]},{"teal":6467,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5896,5897]},{"teal":6468,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5898,5899]},{"teal":6469,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5900]},{"teal":6470,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5901,5902,5903]},{"teal":6475,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5904,5905]},{"teal":6476,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5906,5907]},{"teal":6477,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5908]},{"teal":6478,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5909]},{"teal":6479,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5910]},{"teal":6480,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5911]},{"teal":6481,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5912,5913]},{"teal":6482,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5914]},{"teal":6483,"source":"contracts/NFDInstance.algo.ts:1499","pc":[5915,5916,5917]},{"teal":6488,"source":"contracts/NFDInstance.algo.ts:1500","pc":[5918]},{"teal":6489,"source":"contracts/NFDInstance.algo.ts:1500","pc":[5919,5920,5921]},{"teal":6496,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5922,5923]},{"teal":6497,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5924]},{"teal":6498,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5925]},{"teal":6499,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5926,5927]},{"teal":6500,"source":"contracts/NFDInstance.algo.ts:1498","pc":[5928,5929,5930]},{"teal":6505,"source":"contracts/NFDInstance.algo.ts:1503","pc":[5931]},{"teal":6509,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5932,5933]},{"teal":6512,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5934,5935]},{"teal":6513,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5936]},{"teal":6517,"source":"contracts/NFDInstance.algo.ts:1507","pc":[5937,5938,5939]},{"teal":6520,"source":"contracts/NFDInstance.algo.ts:1507","pc":[5940]},{"teal":6521,"source":"contracts/NFDInstance.algo.ts:1507","pc":[5941,5942]},{"teal":6525,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5943,5944]},{"teal":6526,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5945]},{"teal":6529,"source":"contracts/NFDInstance.algo.ts:1508","errorMessage":"box value does not exist: this.boxes(key).value","pc":[5946]},{"teal":6530,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5947,5948]},{"teal":6534,"source":"contracts/NFDInstance.algo.ts:1510","pc":[5949,5950]},{"teal":6535,"source":"contracts/NFDInstance.algo.ts:1510","pc":[5951,5952]},{"teal":6536,"source":"contracts/NFDInstance.algo.ts:1510","pc":[5953]},{"teal":6537,"source":"contracts/NFDInstance.algo.ts:1510","pc":[5954]},{"teal":6541,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5955,5956]},{"teal":6542,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5957]},{"teal":6543,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5958,5959]},{"teal":6544,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5960]},{"teal":6547,"source":"contracts/NFDInstance.algo.ts:1512","errorMessage":"address 'set' should already have at least two values","pc":[5961]},{"teal":6552,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5962,5963]},{"teal":6553,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5964,5965,5966]},{"teal":6554,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5967,5968]},{"teal":6555,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5969]},{"teal":6556,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5970,5971,5972]},{"teal":6561,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5973]},{"teal":6566,"source":"contracts/NFDInstance.algo.ts:1519","pc":[5974,5975]},{"teal":6567,"source":"contracts/NFDInstance.algo.ts:1519","pc":[5976]},{"teal":6568,"source":"contracts/NFDInstance.algo.ts:1519","pc":[5977]},{"teal":6569,"source":"contracts/NFDInstance.algo.ts:1519","pc":[5978]},{"teal":6570,"source":"contracts/NFDInstance.algo.ts:1519","pc":[5979,5980]},{"teal":6574,"source":"contracts/NFDInstance.algo.ts:1520","pc":[5981]},{"teal":6575,"source":"contracts/NFDInstance.algo.ts:1520","pc":[5982,5983]},{"teal":6579,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5984]},{"teal":6580,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5985,5986]},{"teal":6585,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5987,5988]},{"teal":6586,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5989,5990]},{"teal":6587,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5991]},{"teal":6588,"source":"contracts/NFDInstance.algo.ts:1522","pc":[5992,5993,5994]},{"teal":6593,"source":"contracts/NFDInstance.algo.ts:1523","pc":[5995,5996]},{"teal":6594,"source":"contracts/NFDInstance.algo.ts:1523","pc":[5997,5998]},{"teal":6595,"source":"contracts/NFDInstance.algo.ts:1523","pc":[5999]},{"teal":6596,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6000]},{"teal":6597,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6001]},{"teal":6598,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6002]},{"teal":6599,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6003,6004]},{"teal":6600,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6005]},{"teal":6601,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6006,6007,6008]},{"teal":6606,"source":"contracts/NFDInstance.algo.ts:1524","pc":[6009,6010]},{"teal":6607,"source":"contracts/NFDInstance.algo.ts:1524","pc":[6011,6012]},{"teal":6608,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6013,6014,6015]},{"teal":6615,"source":"contracts/NFDInstance.algo.ts:1522","pc":[6016,6017]},{"teal":6616,"source":"contracts/NFDInstance.algo.ts:1522","pc":[6018]},{"teal":6617,"source":"contracts/NFDInstance.algo.ts:1522","pc":[6019]},{"teal":6618,"source":"contracts/NFDInstance.algo.ts:1522","pc":[6020,6021]},{"teal":6619,"source":"contracts/NFDInstance.algo.ts:1522","pc":[6022,6023,6024]},{"teal":6624,"source":"contracts/NFDInstance.algo.ts:1528","pc":[6025,6026]},{"teal":6625,"source":"contracts/NFDInstance.algo.ts:1528","pc":[6027]},{"teal":6626,"source":"contracts/NFDInstance.algo.ts:1528","pc":[6028]},{"teal":6629,"source":"contracts/NFDInstance.algo.ts:1528","errorMessage":"address must be found in set in order to move it","pc":[6029]},{"teal":6633,"source":"contracts/NFDInstance.algo.ts:1530","pc":[6030,6031]},{"teal":6634,"source":"contracts/NFDInstance.algo.ts:1530","pc":[6032,6033,6034]},{"teal":6635,"source":"contracts/NFDInstance.algo.ts:1530","pc":[6035,6036]},{"teal":6639,"source":"contracts/NFDInstance.algo.ts:1532","pc":[6037,6038]},{"teal":6640,"source":"contracts/NFDInstance.algo.ts:1532","pc":[6039]},{"teal":6641,"source":"contracts/NFDInstance.algo.ts:1532","pc":[6040,6041]},{"teal":6642,"source":"contracts/NFDInstance.algo.ts:1532","pc":[6042]},{"teal":6643,"source":"contracts/NFDInstance.algo.ts:1532","pc":[6043,6044]},{"teal":6647,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6045,6046]},{"teal":6648,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6047,6048]},{"teal":6649,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6049,6050]},{"teal":6650,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6051]},{"teal":6651,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6052]},{"teal":6652,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6053,6054]},{"teal":6653,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6055]},{"teal":6654,"source":"contracts/NFDInstance.algo.ts:1534","pc":[6056]},{"teal":6655,"source":"contracts/NFDInstance.algo.ts:1507","pc":[6057]},{"teal":6665,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6058,6059,6060]},{"teal":6668,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6061]},{"teal":6669,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6062,6063]},{"teal":6674,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6064,6065]},{"teal":6675,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6066]},{"teal":6676,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6067]},{"teal":6677,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6068]},{"teal":6678,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6069]},{"teal":6679,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6070,6071,6072]},{"teal":6684,"source":"contracts/NFDInstance.algo.ts:1547","pc":[6073,6074]},{"teal":6685,"source":"contracts/NFDInstance.algo.ts:1547","pc":[6075,6076]},{"teal":6686,"source":"contracts/NFDInstance.algo.ts:1547","pc":[6077]},{"teal":6690,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6078]},{"teal":6691,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6079,6080,6081]},{"teal":6696,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6082,6083]},{"teal":6697,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6084]},{"teal":6698,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6085,6086]},{"teal":6702,"source":"contracts/NFDInstance.algo.ts:1551","pc":[6087,6088]},{"teal":6703,"source":"contracts/NFDInstance.algo.ts:1551","pc":[6089]},{"teal":6704,"source":"contracts/NFDInstance.algo.ts:1551","pc":[6090,6091]},{"teal":6708,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6092,6093]},{"teal":6709,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6094]},{"teal":6712,"source":"contracts/NFDInstance.algo.ts:1552","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6095]},{"teal":6713,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6096,6097]},{"teal":6717,"source":"contracts/NFDInstance.algo.ts:1553","pc":[6098,6099]},{"teal":6718,"source":"contracts/NFDInstance.algo.ts:1553","pc":[6100]},{"teal":6719,"source":"contracts/NFDInstance.algo.ts:1553","pc":[6101,6102]},{"teal":6720,"source":"contracts/NFDInstance.algo.ts:1553","pc":[6103]},{"teal":6721,"source":"contracts/NFDInstance.algo.ts:1553","pc":[6104,6105]},{"teal":6725,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6106,6107]},{"teal":6726,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6108]},{"teal":6727,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6109,6110]},{"teal":6728,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6111]},{"teal":6729,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6112]},{"teal":6730,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6113]},{"teal":6733,"source":"contracts/NFDInstance.algo.ts:1555","errorMessage":"existing set must be multiple of key being added","pc":[6114]},{"teal":6737,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6115]},{"teal":6738,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6116,6117]},{"teal":6743,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6118,6119]},{"teal":6744,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6120,6121]},{"teal":6745,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6122]},{"teal":6746,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6123,6124,6125]},{"teal":6750,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6126,6127]},{"teal":6751,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6128,6129]},{"teal":6752,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6130,6131]},{"teal":6753,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6132]},{"teal":6754,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6133,6134]},{"teal":6755,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6135]},{"teal":6756,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6136,6137]},{"teal":6761,"source":"contracts/NFDInstance.algo.ts:1559","pc":[6138,6139]},{"teal":6762,"source":"contracts/NFDInstance.algo.ts:1559","pc":[6140,6141]},{"teal":6763,"source":"contracts/NFDInstance.algo.ts:1559","pc":[6142]},{"teal":6764,"source":"contracts/NFDInstance.algo.ts:1559","pc":[6143,6144,6145]},{"teal":6769,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6146,6147]},{"teal":6770,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6148,6149]},{"teal":6771,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6150,6151]},{"teal":6772,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6152]},{"teal":6773,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6153,6154]},{"teal":6774,"source":"contracts/NFDInstance.algo.ts:1561","pc":[6155]},{"teal":6778,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6156]},{"teal":6779,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6157,6158,6159]},{"teal":6785,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6160,6161]},{"teal":6786,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6162,6163]},{"teal":6787,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6164]},{"teal":6788,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6165,6166,6167]},{"teal":6793,"source":"contracts/NFDInstance.algo.ts:1565","pc":[6168]},{"teal":6794,"source":"contracts/NFDInstance.algo.ts:1565","pc":[6169,6170,6171]},{"teal":6801,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6172,6173]},{"teal":6802,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6174]},{"teal":6803,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6175]},{"teal":6804,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6176,6177]},{"teal":6805,"source":"contracts/NFDInstance.algo.ts:1556","pc":[6178,6179,6180]},{"teal":6811,"source":"contracts/NFDInstance.algo.ts:1569","pc":[6181,6182]},{"teal":6812,"source":"contracts/NFDInstance.algo.ts:1569","pc":[6183]},{"teal":6813,"source":"contracts/NFDInstance.algo.ts:1569","pc":[6184,6185,6186]},{"teal":6814,"source":"contracts/NFDInstance.algo.ts:1569","pc":[6187]},{"teal":6815,"source":"contracts/NFDInstance.algo.ts:1569","pc":[6188,6189,6190]},{"teal":6820,"source":"contracts/NFDInstance.algo.ts:1570","pc":[6191,6192]},{"teal":6821,"source":"contracts/NFDInstance.algo.ts:1570","pc":[6193]},{"teal":6825,"source":"contracts/NFDInstance.algo.ts:1571","pc":[6194,6195]},{"teal":6826,"source":"contracts/NFDInstance.algo.ts:1571","pc":[6196,6197]},{"teal":6827,"source":"contracts/NFDInstance.algo.ts:1571","pc":[6198,6199]},{"teal":6828,"source":"contracts/NFDInstance.algo.ts:1571","pc":[6200]},{"teal":6829,"source":"contracts/NFDInstance.algo.ts:1571","pc":[6201]},{"teal":6833,"source":"contracts/NFDInstance.algo.ts:1572","pc":[6202]},{"teal":6834,"source":"contracts/NFDInstance.algo.ts:1572","pc":[6203,6204,6205]},{"teal":6839,"source":"contracts/NFDInstance.algo.ts:1575","pc":[6206]},{"teal":6843,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6207,6208]},{"teal":6846,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6209,6210]},{"teal":6847,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6211]},{"teal":6857,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6212,6213,6214]},{"teal":6860,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6215]},{"teal":6861,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6216,6217]},{"teal":6865,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6218,6219]},{"teal":6866,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6220]},{"teal":6869,"source":"contracts/NFDInstance.algo.ts:1586","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6221]},{"teal":6870,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6222,6223]},{"teal":6874,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6224,6225]},{"teal":6875,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6226]},{"teal":6876,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6227]},{"teal":6877,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6228]},{"teal":6878,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6229,6230]},{"teal":6882,"source":"contracts/NFDInstance.algo.ts:1589","pc":[6231,6232]},{"teal":6883,"source":"contracts/NFDInstance.algo.ts:1589","pc":[6233,6234]},{"teal":6884,"source":"contracts/NFDInstance.algo.ts:1589","pc":[6235]},{"teal":6885,"source":"contracts/NFDInstance.algo.ts:1589","pc":[6236]},{"teal":6889,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6237]},{"teal":6890,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6238,6239]},{"teal":6895,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6240,6241]},{"teal":6896,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6242,6243]},{"teal":6897,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6244]},{"teal":6898,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6245,6246,6247]},{"teal":6903,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6248,6249]},{"teal":6904,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6250,6251]},{"teal":6905,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6252]},{"teal":6906,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6253]},{"teal":6907,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6254]},{"teal":6908,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6255]},{"teal":6909,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6256,6257]},{"teal":6910,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6258]},{"teal":6911,"source":"contracts/NFDInstance.algo.ts:1592","pc":[6259,6260,6261]},{"teal":6917,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6262,6263]},{"teal":6918,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6264,6265]},{"teal":6919,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6266]},{"teal":6920,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6267]},{"teal":6921,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6268]},{"teal":6922,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6269,6270,6271]},{"teal":6927,"source":"contracts/NFDInstance.algo.ts:1594","pc":[6272,6273]},{"teal":6928,"source":"contracts/NFDInstance.algo.ts:1594","pc":[6274]},{"teal":6933,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6275,6276]},{"teal":6934,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6277]},{"teal":6935,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6278]},{"teal":6936,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6279,6280,6281]},{"teal":6941,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6282,6283]},{"teal":6942,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6284,6285]},{"teal":6943,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6286]},{"teal":6944,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6287,6288]},{"teal":6945,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6289]},{"teal":6946,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6290]},{"teal":6947,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6291]},{"teal":6948,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6292]},{"teal":6952,"source":"contracts/NFDInstance.algo.ts:1600","pc":[6293]},{"teal":6953,"source":"contracts/NFDInstance.algo.ts:1600","pc":[6294,6295]},{"teal":6957,"source":"contracts/NFDInstance.algo.ts:1601","pc":[6296,6297]},{"teal":6958,"source":"contracts/NFDInstance.algo.ts:1601","pc":[6298,6299]},{"teal":6962,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6300]},{"teal":6963,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6301,6302]},{"teal":6968,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6303,6304]},{"teal":6969,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6305,6306]},{"teal":6970,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6307]},{"teal":6971,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6308]},{"teal":6972,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6309]},{"teal":6973,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6310,6311,6312]},{"teal":6978,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6313,6314]},{"teal":6979,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6315,6316]},{"teal":6980,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6317]},{"teal":6981,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6318]},{"teal":6982,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6319]},{"teal":6983,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6320]},{"teal":6984,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6321,6322]},{"teal":6985,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6323]},{"teal":6986,"source":"contracts/NFDInstance.algo.ts:1603","pc":[6324,6325,6326]},{"teal":6991,"source":"contracts/NFDInstance.algo.ts:1604","pc":[6327]},{"teal":6992,"source":"contracts/NFDInstance.algo.ts:1604","pc":[6328,6329]},{"teal":6993,"source":"contracts/NFDInstance.algo.ts:1605","pc":[6330,6331,6332]},{"teal":7000,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6333,6334]},{"teal":7001,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6335]},{"teal":7002,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6336]},{"teal":7003,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6337,6338]},{"teal":7004,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6339,6340,6341]},{"teal":7010,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6342,6343]},{"teal":7011,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6344,6345,6346]},{"teal":7016,"source":"contracts/NFDInstance.algo.ts:1609","pc":[6347,6348]},{"teal":7017,"source":"contracts/NFDInstance.algo.ts:1609","pc":[6349]},{"teal":7024,"source":"contracts/NFDInstance.algo.ts:1612","pc":[6350]},{"teal":7025,"source":"contracts/NFDInstance.algo.ts:1612","pc":[6351,6352,6353]},{"teal":7030,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6354,6355]},{"teal":7031,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6356,6357]},{"teal":7032,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6358]},{"teal":7033,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6359]},{"teal":7034,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6360,6361]},{"teal":7035,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6362]},{"teal":7039,"source":"contracts/NFDInstance.algo.ts:1616","pc":[6363]},{"teal":7040,"source":"contracts/NFDInstance.algo.ts:1616","pc":[6364,6365,6366]},{"teal":7047,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6367,6368]},{"teal":7048,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6369]},{"teal":7049,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6370]},{"teal":7050,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6371,6372]},{"teal":7051,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6373,6374,6375]},{"teal":7056,"source":"contracts/NFDInstance.algo.ts:1619","pc":[6376]},{"teal":7060,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6377,6378]},{"teal":7063,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6379,6380]},{"teal":7064,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6381]},{"teal":7068,"source":"contracts/NFDInstance.algo.ts:1622","pc":[6382,6383,6384]},{"teal":7072,"source":"contracts/NFDInstance.algo.ts:1624","pc":[6385,6386]},{"teal":7073,"source":"contracts/NFDInstance.algo.ts:1624","pc":[6387]},{"teal":7074,"source":"contracts/NFDInstance.algo.ts:1624","pc":[6388]},{"teal":7075,"source":"contracts/NFDInstance.algo.ts:1624","pc":[6389]},{"teal":7078,"source":"contracts/NFDInstance.algo.ts:1624","errorMessage":"sender must be owner","pc":[6390]},{"teal":7079,"source":"contracts/NFDInstance.algo.ts:1622","pc":[6391]},{"teal":7082,"source":"contracts/NFDInstance.algo.ts:17","pc":[6392,6393,6394,6395,6396,6397]},{"teal":7083,"source":"contracts/NFDInstance.algo.ts:17","pc":[6398,6399,6400]},{"teal":7084,"source":"contracts/NFDInstance.algo.ts:17","pc":[6401,6402,6403,6404]},{"teal":7087,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for create NoOp","pc":[6405]},{"teal":7090,"source":"contracts/NFDInstance.algo.ts:17","pc":[6406,6407,6408,6409,6410,6411]},{"teal":7091,"source":"contracts/NFDInstance.algo.ts:17","pc":[6412,6413,6414,6415,6416,6417]},{"teal":7092,"source":"contracts/NFDInstance.algo.ts:17","pc":[6418,6419,6420,6421,6422,6423]},{"teal":7093,"source":"contracts/NFDInstance.algo.ts:17","pc":[6424,6425,6426,6427,6428,6429]},{"teal":7094,"source":"contracts/NFDInstance.algo.ts:17","pc":[6430,6431,6432,6433,6434,6435]},{"teal":7095,"source":"contracts/NFDInstance.algo.ts:17","pc":[6436,6437,6438,6439,6440,6441]},{"teal":7096,"source":"contracts/NFDInstance.algo.ts:17","pc":[6442,6443,6444,6445,6446,6447]},{"teal":7097,"source":"contracts/NFDInstance.algo.ts:17","pc":[6448,6449,6450,6451,6452,6453]},{"teal":7098,"source":"contracts/NFDInstance.algo.ts:17","pc":[6454,6455,6456,6457,6458,6459]},{"teal":7099,"source":"contracts/NFDInstance.algo.ts:17","pc":[6460,6461,6462,6463,6464,6465]},{"teal":7100,"source":"contracts/NFDInstance.algo.ts:17","pc":[6466,6467,6468,6469,6470,6471]},{"teal":7101,"source":"contracts/NFDInstance.algo.ts:17","pc":[6472,6473,6474,6475,6476,6477]},{"teal":7102,"source":"contracts/NFDInstance.algo.ts:17","pc":[6478,6479,6480,6481,6482,6483]},{"teal":7103,"source":"contracts/NFDInstance.algo.ts:17","pc":[6484,6485,6486,6487,6488,6489]},{"teal":7104,"source":"contracts/NFDInstance.algo.ts:17","pc":[6490,6491,6492,6493,6494,6495]},{"teal":7105,"source":"contracts/NFDInstance.algo.ts:17","pc":[6496,6497,6498,6499,6500,6501]},{"teal":7106,"source":"contracts/NFDInstance.algo.ts:17","pc":[6502,6503,6504,6505,6506,6507]},{"teal":7107,"source":"contracts/NFDInstance.algo.ts:17","pc":[6508,6509,6510,6511,6512,6513]},{"teal":7108,"source":"contracts/NFDInstance.algo.ts:17","pc":[6514,6515,6516,6517,6518,6519]},{"teal":7109,"source":"contracts/NFDInstance.algo.ts:17","pc":[6520,6521,6522,6523,6524,6525]},{"teal":7110,"source":"contracts/NFDInstance.algo.ts:17","pc":[6526,6527,6528,6529,6530,6531]},{"teal":7111,"source":"contracts/NFDInstance.algo.ts:17","pc":[6532,6533,6534,6535,6536,6537]},{"teal":7112,"source":"contracts/NFDInstance.algo.ts:17","pc":[6538,6539,6540,6541,6542,6543]},{"teal":7113,"source":"contracts/NFDInstance.algo.ts:17","pc":[6544,6545,6546,6547,6548,6549]},{"teal":7114,"source":"contracts/NFDInstance.algo.ts:17","pc":[6550,6551,6552]},{"teal":7115,"source":"contracts/NFDInstance.algo.ts:17","pc":[6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6602]},{"teal":7118,"source":"contracts/NFDInstance.algo.ts:17","pc":[6603,6604,6605]},{"teal":7119,"source":"contracts/NFDInstance.algo.ts:17","pc":[6606]},{"teal":7120,"source":"contracts/NFDInstance.algo.ts:17","pc":[6607]},{"teal":7123,"source":"contracts/NFDInstance.algo.ts:17","pc":[6608,6609,6610,6611,6612,6613]},{"teal":7124,"source":"contracts/NFDInstance.algo.ts:17","pc":[6614,6615,6616]},{"teal":7125,"source":"contracts/NFDInstance.algo.ts:17","pc":[6617,6618,6619,6620]},{"teal":7128,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for call UpdateApplication","pc":[6621]},{"teal":7131,"source":"contracts/NFDInstance.algo.ts:17","pc":[6622,6623,6624]},{"teal":7132,"source":"contracts/NFDInstance.algo.ts:17","pc":[6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636]},{"teal":7133,"source":"contracts/NFDInstance.algo.ts:17","pc":[6637,6638]},{"teal":7134,"source":"contracts/NFDInstance.algo.ts:17","pc":[6639]},{"teal":7135,"source":"contracts/NFDInstance.algo.ts:17","pc":[6640]},{"teal":7136,"source":"contracts/NFDInstance.algo.ts:17","pc":[6641]},{"teal":7140,"source":"contracts/NFDInstance.algo.ts:17","pc":[6642,6643,6644]},{"teal":7141,"source":"contracts/NFDInstance.algo.ts:17","pc":[6645,6646]},{"teal":7142,"source":"contracts/NFDInstance.algo.ts:17","pc":[6647]},{"teal":7143,"source":"contracts/NFDInstance.algo.ts:17","pc":[6648]},{"teal":7144,"source":"contracts/NFDInstance.algo.ts:17","pc":[6649,6650,6651]},{"teal":7145,"source":"contracts/NFDInstance.algo.ts:17","pc":[6652,6653]},{"teal":7146,"source":"contracts/NFDInstance.algo.ts:17","pc":[6654]},{"teal":7149,"source":"contracts/NFDInstance.algo.ts:17","pc":[6655,6656]},{"teal":7150,"source":"contracts/NFDInstance.algo.ts:17","pc":[6657,6658]},{"teal":7151,"source":"contracts/NFDInstance.algo.ts:17","pc":[6659]},{"teal":7152,"source":"contracts/NFDInstance.algo.ts:17","pc":[6660]},{"teal":7153,"source":"contracts/NFDInstance.algo.ts:17","pc":[6661]},{"teal":7154,"source":"contracts/NFDInstance.algo.ts:17","pc":[6662,6663,6664]},{"teal":7155,"source":"contracts/NFDInstance.algo.ts:17","pc":[6665,6666]},{"teal":7156,"source":"contracts/NFDInstance.algo.ts:17","pc":[6667,6668]},{"teal":7157,"source":"contracts/NFDInstance.algo.ts:17","pc":[6669]},{"teal":7158,"source":"contracts/NFDInstance.algo.ts:17","pc":[6670,6671,6672]},{"teal":7159,"source":"contracts/NFDInstance.algo.ts:17","pc":[6673,6674,6675]},{"teal":7162,"source":"contracts/NFDInstance.algo.ts:17","pc":[6676]},{"teal":7165,"source":"contracts/NFDInstance.algo.ts:17","pc":[6677,6678]},{"teal":7166,"source":"contracts/NFDInstance.algo.ts:17","pc":[6679,6680]},{"teal":7167,"source":"contracts/NFDInstance.algo.ts:17","pc":[6681]},{"teal":7168,"source":"contracts/NFDInstance.algo.ts:17","pc":[6682,6683,6684]},{"teal":7169,"source":"contracts/NFDInstance.algo.ts:17","pc":[6685]},{"teal":7170,"source":"contracts/NFDInstance.algo.ts:17","pc":[6686]},{"teal":7173,"source":"contracts/NFDInstance.algo.ts:17","pc":[6687,6688,6689]},{"teal":7174,"source":"contracts/NFDInstance.algo.ts:17","pc":[6690,6691]},{"teal":7175,"source":"contracts/NFDInstance.algo.ts:17","pc":[6692,6693]},{"teal":7176,"source":"contracts/NFDInstance.algo.ts:17","pc":[6694]},{"teal":7177,"source":"contracts/NFDInstance.algo.ts:17","pc":[6695,6696]},{"teal":7178,"source":"contracts/NFDInstance.algo.ts:17","pc":[6697,6698]},{"teal":7179,"source":"contracts/NFDInstance.algo.ts:17","pc":[6699]},{"teal":7182,"source":"contracts/NFDInstance.algo.ts:17","pc":[6700,6701,6702]},{"teal":7183,"source":"contracts/NFDInstance.algo.ts:17","pc":[6703,6704]},{"teal":7184,"source":"contracts/NFDInstance.algo.ts:17","pc":[6705,6706]},{"teal":7185,"source":"contracts/NFDInstance.algo.ts:17","pc":[6707]},{"teal":7186,"source":"contracts/NFDInstance.algo.ts:17","pc":[6708,6709]},{"teal":7187,"source":"contracts/NFDInstance.algo.ts:17","pc":[6710,6711]},{"teal":7188,"source":"contracts/NFDInstance.algo.ts:17","pc":[6712]},{"teal":7189,"source":"contracts/NFDInstance.algo.ts:17","pc":[6713]},{"teal":7190,"source":"contracts/NFDInstance.algo.ts:17","pc":[6714,6715]},{"teal":7191,"source":"contracts/NFDInstance.algo.ts:17","pc":[6716]},{"teal":7192,"source":"contracts/NFDInstance.algo.ts:17","pc":[6717]},{"teal":7193,"source":"contracts/NFDInstance.algo.ts:17","pc":[6718]},{"teal":7194,"source":"contracts/NFDInstance.algo.ts:17","pc":[6719,6720,6721]},{"teal":7195,"source":"contracts/NFDInstance.algo.ts:17","pc":[6722,6723]},{"teal":7196,"source":"contracts/NFDInstance.algo.ts:17","pc":[6724,6725]},{"teal":7197,"source":"contracts/NFDInstance.algo.ts:17","pc":[6726]},{"teal":7198,"source":"contracts/NFDInstance.algo.ts:17","pc":[6727]},{"teal":7199,"source":"contracts/NFDInstance.algo.ts:17","pc":[6728,6729]},{"teal":7200,"source":"contracts/NFDInstance.algo.ts:17","pc":[6730,6731]},{"teal":7201,"source":"contracts/NFDInstance.algo.ts:17","pc":[6732,6733]},{"teal":7202,"source":"contracts/NFDInstance.algo.ts:17","pc":[6734,6735]},{"teal":7203,"source":"contracts/NFDInstance.algo.ts:17","pc":[6736]}],"pcOffsetMethod":"cblocks"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgMiAzMiBUTVBMX3JlZ2lzdHJ5QXBwSWQgOCAzIDYgMzY1IDQwMCA0IDEwIDI1MDAgNSA4NjQwMCAxMDAwMDAwIDEwMF8wMDAgNTAwIDEwMDAgMjAwIFRNUExfYWRtaW5Bc2FJZApieXRlY2Jsb2NrIDB4ICJpLm93bmVyLmEiICJpLnRpbWVDaGFuZ2VkIiAiaS5taW50aW5nIiAiaS5uYW1lIiAiaS5jb21taXNzaW9uMUFnZW50LmEiICJpLnNlbGxhbXQiICJpLmNvbW1pc3Npb24xIiAiaS5yZXNlcnZlZE93bmVyLmEiICJpLnNlZ21lbnRBZ2VudC5hIiAiaS5zZWxsZXIuYSIgMHgxNTFmN2M3NSAiaS5taW50aW5nS2lja29mZkNyZWF0b3IuYSIgImkubWludGluZ0tpY2tvZmZBbW91bnQiIDB4MGE4MTAxIDB4MzEgImkuY29tbWlzc2lvbjJBZ2VudC5hIiAiaS5leHBpcmF0aW9uVGltZSIgImkuYXNhaWQiICIxIiAiaS52YXVsdE9wdEluTG9ja2VkIiAiaS5zZWdtZW50TG9ja2VkIiAiaS5jb21taXNzaW9uMiIgMHgzMCAiMCIgImkuY29udHJhY3RMb2NrZWQiICJpLmhpZ2hlc3RTb2xkQW10IiAiaS5wYXJlbnRBcHBJRCIgMHgyZSAweDAwICIyIiAweDYyNmY3ODUyNjU2Njc1NmU2NCAiaS5zZWdtZW50UHJpY2VVc2QiIDB4NzYyZTYzNjE0MTZjNjc2ZiAiaS50aW1lUHVyY2hhc2VkIiAiaS5zZWdtZW50Q291bnQiIDB4NDM2NWVkOTAgMHg3MDNiOGNlNyAweDc2MmU2MzYxIDB4MmU2MTczICJpLnZlciIgMHgwMDBhIDB4MDAyYQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDYuMQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vICEhISEgV0FSTklORzogVGhpcyBjb250cmFjdCBpcyAqTk9UKiBBUkM0IGNvbXBsaWFudC4gSXQgbWF5IGNvbnRhaW4gQUJJIG1ldGhvZHMsIGJ1dCBpdCBhbHNvIGFsbG93cyBhcHAgY2FsbHMgd2hlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXMgTk9UIG1hdGNoIGFuIEFCSSBzZWxlY3RvcgoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50YyA3IC8vIDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHNlZ21lbnRSb290QXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKCWJ0b2kKCgkvLyBjb21taXNzaW9uMlBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA5CglidG9pCgoJLy8gY29tbWlzc2lvbjJBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA4CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKGNvbW1pc3Npb24yQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBjb21taXNzaW9uMVBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA3CglidG9pCgoJLy8gY29tbWlzc2lvbjFBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDUgKGNvbW1pc3Npb24xQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleHBUaW1lOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBwdXJjaGFzZUFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYnV5ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgOCAoYnV5ZXIpIGZvciBjcmVhdGVBcHBsaWNhdGlvbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gc2VsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDkgKHNlbGxlcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbihzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24obmZkTmFtZTogc3RyaW5nLCBzZWxsZXI6IEFkZHJlc3MsIGJ1eWVyOiBBZGRyZXNzLCBwdXJjaGFzZUFtb3VudDogdWludDY0LCBleHBUaW1lOiB1aW50NjQsIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcywgY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NCwgY29tbWlzc2lvbjJBZGRyOiBBZGRyZXNzLCBjb21taXNzaW9uMlBjdDogdWludDY0LCBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQsIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMTEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDYKCS8vIGFzc2VydChwdXJjaGFzZUFtb3VudCA+IDApCglmcmFtZV9kaWcgLTQgLy8gcHVyY2hhc2VBbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlID0gTkZEX0xPQ0tFRF9WQUxfRkFMU0UKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYnl0ZWMgMjQgLy8gIjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikudmFsdWUgPSBORkRfQ1VSUkVOVF9WRVJTSU9OCglieXRlYyA0MCAvLyAiaS52ZXIiCglwdXNoYnl0ZXMgIjMuOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNSRUFURUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCXB1c2hieXRlcyAiaS50aW1lQ3JlYXRlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTMKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FUFVSQ0hBU0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAzNCAvLyAiaS50aW1lUHVyY2hhc2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTkFNRSkudmFsdWUgPSBuZmROYW1lCglieXRlYyA0IC8vICJpLm5hbWUiCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlID0gcmF3Qnl0ZXMoYnV5ZXIpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgLTMgLy8gYnV5ZXI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTcKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMoc2VsbGVyKQoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglmcmFtZV9kaWcgLTIgLy8gc2VsbGVyOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLnZhbHVlID0gaXRvYihwdXJjaGFzZUFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtNCAvLyBwdXJjaGFzZUFtb3VudDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OQoJLy8gY29tbWlzc2lvbjFBZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgLTYgLy8gY29tbWlzc2lvbjFBZGRyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAKCS8vIGFzc2VydChjb21taXNzaW9uMVBjdCA+PSAxICYmIGNvbW1pc3Npb24xUGN0IDw9IDUwMCwgJ2NvbW1pc3Npb24gbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUwJScpCglmcmFtZV9kaWcgLTcgLy8gY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtNyAvLyBjb21taXNzaW9uMVBjdDogdWludDY0CglpbnRjIDE3IC8vIDUwMAoJPD0KCSYmCgoqc2tpcF9hbmQwOgoJLy8gY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHJhd0J5dGVzKGNvbW1pc3Npb24xQWRkcikKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJZnJhbWVfZGlnIC02IC8vIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjFQY3QpCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJZnJhbWVfZGlnIC03IC8vIGNvbW1pc3Npb24xUGN0OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYzCgkvLyBjb21taXNzaW9uMkFkZHIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAtOCAvLyBjb21taXNzaW9uMkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NAoJLy8gYXNzZXJ0KGNvbW1pc3Npb24yUGN0ID49IDEgJiYgY29tbWlzc2lvbjJQY3QgPD0gNTAwLCAnY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlJykKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC05IC8vIGNvbW1pc3Npb24yUGN0OiB1aW50NjQKCWludGMgMTcgLy8gNTAwCgk8PQoJJiYKCipza2lwX2FuZDE6CgkvLyBjb21taXNzaW9uIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MCUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoY29tbWlzc2lvbjJBZGRyKQoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJZnJhbWVfZGlnIC04IC8vIGNvbW1pc3Npb24yQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjJQY3QpCglieXRlYyAyMiAvLyAiaS5jb21taXNzaW9uMiIKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmMV9lbmQ6CgoqaWYwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ0FURUdPUlkpLnZhbHVlID0gJ2NvbW1vbicKCXB1c2hieXRlcyAiaS5jYXRlZ29yeSIKCXB1c2hieXRlcyAweDYzNmY2ZDZkNmY2ZSAvLyAiY29tbW9uIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NBTEVUWVBFKS52YWx1ZSA9ICdidXlJdE5vdycKCXB1c2hieXRlcyAiaS5zYWxlVHlwZSIKCXB1c2hieXRlcyAweDYyNzU3OTQ5NzQ0ZTZmNzcgLy8gImJ1eUl0Tm93IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoZXhwVGltZSkKCWJ5dGVjIDE3IC8vICJpLmV4cGlyYXRpb25UaW1lIgoJZnJhbWVfZGlnIC01IC8vIGV4cFRpbWU6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3NQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzcKCS8vIHNlZ21lbnRSb290QXBwSWQgIT09IDAKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1BBUkVOVF9JRCkudmFsdWUgPSBpdG9iKHNlZ21lbnRSb290QXBwSWQpCglieXRlYyAyNyAvLyAiaS5wYXJlbnRBcHBJRCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxCgkvLyBwYXJlbnROYW1lID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldEV4KHNlZ21lbnRSb290QXBwSWQsIE5GRF9LRVlfTkFNRSkKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWZyYW1lX2J1cnkgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KGV4dHJhY3QzKG5mZE5hbWUsIGxlbihuZmROYW1lKSAtIGxlbihwYXJlbnROYW1lKSAtIDEsIGxlbihwYXJlbnROYW1lKSArIDEpID09PSAnLicgKyBwYXJlbnROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJbGVuCglmcmFtZV9kaWcgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJY29uY2F0Cgk9PQoJYXNzZXJ0CgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoc2VnbWVudFJvb3RBcHBJZCwgTkZEX0tFWV9JU1NFR01FTlRMT0NLRUQpID09PSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjEgLy8gImkuc2VnbWVudExvY2tlZCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWJ5dGVjIDI0IC8vICIwIgoJPT0KCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgICAgICBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICAncGFyZW50IGNvbW1pc3Npb24gYWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwYXJlbnQgYXBwIGlkIGlzIHNldCBhbmQgcGFyZW50IGlzIHVubG9ja2VkJywKCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyBwYXJlbnQgY29tbWlzc2lvbiBhZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBhcmVudCBhcHAgaWQgaXMgc2V0IGFuZCBwYXJlbnQgaXMgdW5sb2NrZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChzZWdtZW50Um9vdEFwcElkLCBORkRfS0VZX1NFTExFUikgPT09IHJhd0J5dGVzKHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHIpLAoJLy8gICAgICAgICAgICAgICAgICAgICAidGhlIHNlZ21lbnQgY29tbWlzc2lvbiBhZ2VudCBzaG91bGQgYmUgdGhlIHBhcmVudCBuZmQncyBzZWxsZXIiLAoJLy8gICAgICAgICAgICAgICAgICkKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIC0xMCAvLyBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXRFeAoJZnJhbWVfZGlnIC0xMSAvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBBZGRyZXNzCgk9PQoKCS8vIHRoZSBzZWdtZW50IGNvbW1pc3Npb24gYWdlbnQgc2hvdWxkIGJlIHRoZSBwYXJlbnQgbmZkJ3Mgc2VsbGVyCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoc2VnbWVudFJvb3RDb21taXNzaW9uQWRkcikKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoqaWYzX2VuZDoKCippZjJfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gdmVyc2lvbk51bTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oc3RyaW5nKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKHZlcnNpb25OdW06IHN0cmluZyk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTAKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlICE9PSBORkRfTE9DS0VEX1ZBTF9UUlVFLCAnY29udHJhY3QgbXVzdCBiZSB1bmxvY2tlZCB0byB1cGdyYWRlJykKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDE5IC8vICIxIgoJIT0KCgkvLyBjb250cmFjdCBtdXN0IGJlIHVubG9ja2VkIHRvIHVwZ3JhZGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMwoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9WRVJTSU9OKS52YWx1ZSA9IHZlcnNpb25OdW0KCWJ5dGVjIDQwIC8vICJpLnZlciIKCWZyYW1lX2RpZyAtMSAvLyB2ZXJzaW9uTnVtOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvbkNhbGwoKTogdm9pZApvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjAKCS8vIGFzc2VydCghdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmV4aXN0cywgImNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUiKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoKCS8vIGNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUKCWFzc2VydAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09ICdnYXMnCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAweDY3NjE3MyAvLyAiZ2FzIgoJPT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiTkZEIGNhbid0IGJlIGV4cGlyZWQgZm9yIHRoZXNlIHYxL3YyIG9wZXJhdGlvbnMiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBORkQgY2FuJ3QgYmUgZXhwaXJlZCBmb3IgdGhlc2UgdjEvdjIgb3BlcmF0aW9ucwoJYXNzZXJ0CgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA+PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX1VQREFURV9GSUVMRAoJdHhuIE51bUFwcEFyZ3MKCWludGMgNiAvLyAzCgk+PQoJZHVwCglieiAqc2tpcF9hbmQyCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2ZpZWxkIgoJPT0KCSYmCgoqc2tpcF9hbmQyOgoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMwoJLy8gdGhpcy51cGRhdGVGaWVsZHNGcm9tQXJncygpCgljYWxsc3ViIHVwZGF0ZUZpZWxkc0Zyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM0CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmNV9lbmQ6CgkvLyAqaWY2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID49IDEgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfREVMRVRFX0ZJRUxECgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDMKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJkZWxldGVfZmllbGQiCgk9PQoJJiYKCipza2lwX2FuZDM6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxCgkvLyB0aGlzLmRlbGV0ZUZpZWxkc0Zyb21BcmdzKCkKCWNhbGxzdWIgZGVsZXRlRmllbGRzRnJvbUFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY2X2VuZDoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDQKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDIgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfUkVBRF9QUk9QRVJUWQoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ0Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAicmVhZF9wcm9wZXJ0eSIKCT09CgkmJgoKKnNraXBfYW5kNDoKCWJ6ICppZjdfZW5kCgoJLy8gKmlmN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkKCS8vIGxvZyh0aGlzLnJlYWRGaWVsZCh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdIGFzIGJ5dGVzKSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiByZWFkRmllbGQKCWxvZwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MAoJLy8gcmV0dXJuCglyZXRzdWIKCippZjdfZW5kOgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9VUERBVEVfSEFTSAoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ1Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2hhc2giCgk9PQoJJiYKCipza2lwX2FuZDU6CglieiAqaWY4X2VuZAoKCS8vICppZjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0CgkvLyB0aGlzLnVwZGF0ZUhhc2godGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcykKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiB1cGRhdGVIYXNoCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmOF9lbmQ6CgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAyICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX0NPTlRSQUNUX0xPQ0sKCXR4biBOdW1BcHBBcmdzCglpbnRjIDIgLy8gMgoJPT0KCWR1cAoJYnogKnNraXBfYW5kNgoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglwdXNoYnl0ZXMgImNvbnRyYWN0X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDY6CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwCgkvLyB0aGlzLmNvbnRyYWN0TG9jayh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdID09PSAnMScpCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIGNvbnRyYWN0TG9jawoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MQoJLy8gcmV0dXJuCglyZXRzdWIKCippZjlfZW5kOgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjYKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDMgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfU0VHTUVOVF9MT0NLCgl0eG4gTnVtQXBwQXJncwoJaW50YyA2IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDcKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJzZWdtZW50X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDc6CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjcKCS8vIHRoaXMuc2VnbWVudExvY2sodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSA9PT0gJzEnLCBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIHNlZ21lbnRMb2NrCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTY4CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTBfZW5kOgoJLy8gKmlmMTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzUKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPj0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9WQVVMVF9PUFRJTgoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ4Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidmF1bHRfb3B0aW4iCgk9PQoJJiYKCipza2lwX2FuZDg6CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzYKCS8vIHRoaXMudmF1bHRPcHRJbkZyb21BcmdzKCkKCWNhbGxzdWIgdmF1bHRPcHRJbkZyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTc3CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTFfZW5kOgoJLy8gdW5rbm93biBtZXRob2QKCWVycgoJcmV0c3ViCgovLyBnYXMoKXZvaWQKKmFiaV9yb3V0ZV9nYXM6CgkvLyBleGVjdXRlIGdhcygpdm9pZAoJY2FsbHN1YiBnYXMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdhcygpOiB2b2lkCmdhczoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX21pbnRBc2E6CgkvLyB1cmw6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoJY2FsbHN1YiBtaW50QXNhCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtaW50QXNhKG5mZE5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpOiB2b2lkCm1pbnRBc2E6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTEKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykudmFsdWUgPT09IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQSkKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxOSAvLyAiMSIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTMKCS8vIGFzc2V0ID0gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ05GRCcsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE5hbWU6IG5mZE5hbWUsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMCwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0VVJMOiB1cmwsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA2IC8vICBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk0CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAnTkZEJwoJcHVzaGJ5dGVzIDB4NGU0NjQ0IC8vICJORkQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTUKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogbmZkTmFtZQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTYKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludGMgMSAvLyAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTcKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTgKCS8vIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMQoJaW50YyAxIC8vIDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk5CgkvLyBjb25maWdBc3NldFVSTDogdXJsCglmcmFtZV9kaWcgLTIgLy8gdXJsOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDAKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjAxCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIwMgoJLy8gY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRDbGF3YmFjawoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCWZyYW1lX2J1cnkgMCAvLyBhc3NldDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjA0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlID0gaXRvYihhc3NldC5pZCkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJZnJhbWVfZGlnIDAgLy8gYXNzZXQ6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BPU1RBU0EKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWJ5dGVjIDMwIC8vICIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDYKCS8vIGxvZyhpdG9iKGFzc2V0LmlkKSkKCWZyYW1lX2RpZyAwIC8vIGFzc2V0OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZUZpZWxkczoKCS8vIGZpZWxkTmFtZXM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoJY2FsbHN1YiBkZWxldGVGaWVsZHMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGRlbGV0ZUZpZWxkcyhmaWVsZE5hbWVzOiBieXRlc1tdKTogdm9pZApkZWxldGVGaWVsZHM6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE3CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE4CgkvLyBib3hDb3N0cyA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gYm94Q29zdHM6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZE5hbWVzLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gaSA8IGZpZWxkTmFtZXMubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWVzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyMAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMTkgLy8gMjAwCgk8CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTJfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjIzCgkvLyBuYW1lID0gZmllbGROYW1lc1tpXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZXM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjUKCS8vIGJveFNpemUgPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNCAvLyBib3hTaXplOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjYKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNwoJLy8gYm94Q29zdHMgKz0gU0NCT1hfUEVSQk9YICsgKG5hbWUubGVuZ3RoICsgYm94U2l6ZSkgKiBTQ0JPWF9QRVJCWVRFCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgNCAvLyBib3hTaXplOiB1aW50NjQKCSsKCWludGMgOSAvLyA0MDAKCSoKCSsKCSsKCWZyYW1lX2J1cnkgMSAvLyBib3hDb3N0czogdWludDY0CgoqZm9yXzBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTkKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWYxM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyOQoJLy8gYm94Q29zdHMgPiAwCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTNfZW5kCgoJLy8gKmlmMTNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMwCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBib3hDb3N0cywKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMxCgkvLyBhbW91bnQ6IGJveENvc3RzCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMgoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMwoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTNfZW5kOgoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCmRlbGV0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzOQoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQxCgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0MgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDMKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0NAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDUKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQ3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfdXBkYXRlU2VnbWVudENvdW50OgoJLy8gY2hpbGROZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCgljYWxsc3ViIHVwZGF0ZVNlZ21lbnRDb3VudAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlU2VnbWVudENvdW50KGNoaWxkTmZkTmFtZTogc3RyaW5nLCBjaGlsZE5mZEFwcElEOiB1aW50NjQpOiB2b2lkCnVwZGF0ZVNlZ21lbnRDb3VudDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNTgKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoY2hpbGROZmRBcHBJRCwgTkZEX0tFWV9NSU5USU5HKSA9PT0gTkZEX01JTlRJTkdfU1RBVEVfUE9TVEFTQSwKCS8vICAgICAgICAgICAgICdjaGlsZCBORkQgTVVTVCBzdGlsbCBiZSBpbiBwcmUtY2xhaW0gc3RhdGUhJywKCS8vICAgICAgICAgKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglieXRlYyAzMCAvLyAiMiIKCT09CgoJLy8gY2hpbGQgTkZEIE1VU1Qgc3RpbGwgYmUgaW4gcHJlLWNsYWltIHN0YXRlIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjYzCgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjQKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChjaGlsZE5mZEFwcElELCBORkRfS0VZX05BTUUpID09PSBjaGlsZE5mZE5hbWUsCgkvLyAgICAgICAgICAgICAncGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlJywKCS8vICAgICAgICAgKQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglmcmFtZV9kaWcgLTEgLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCT09CgoJLy8gcGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzAKCS8vIHRoaXNQYXJlbnROYW1lID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzUKCS8vIGluZGV4Q2hlY2tTdG9wID0gbGVuKGNoaWxkTmZkTmFtZSkgLSBsZW4odGhpc1BhcmVudE5hbWUpIC0gMQoJZnJhbWVfZGlnIC0xIC8vIGNoaWxkTmZkTmFtZTogc3RyaW5nCglsZW4KCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2J1cnkgMSAvLyBpbmRleENoZWNrU3RvcDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjc2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICBleHRyYWN0MyhjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wLCBsZW4odGhpc1BhcmVudE5hbWUpICsgMSkgPT09ICcuJyArIHRoaXNQYXJlbnROYW1lLAoJLy8gICAgICAgICAgICAgJ3BhcmVudCBtdXN0IGJlIHN1ZmZpeCBvZiBjaGlsZCcsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDEgLy8gaW5kZXhDaGVja1N0b3A6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdGhpc1BhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWNvbmNhdAoJPT0KCgkvLyBwYXJlbnQgbXVzdCBiZSBzdWZmaXggb2YgY2hpbGQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4MAoJLy8gYXNzZXJ0KHRoaXMubm9QZXJpb2RCZWZvcmVJbmRleChjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wKSkKCWZyYW1lX2RpZyAxIC8vIGluZGV4Q2hlY2tTdG9wOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBub1BlcmlvZEJlZm9yZUluZGV4Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UQ09VTlQpLnZhbHVlID0gaXRvYih0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9TRUdNRU5UQ09VTlQpICsgMSkKCWJ5dGVjIDM1IC8vICJpLnNlZ21lbnRDb3VudCIKCWR1cAoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdldEZpZWxkVXBkYXRlQ29zdChieXRlW11bXSl1aW50NjQKKmFiaV9yb3V0ZV9nZXRGaWVsZFVwZGF0ZUNvc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZEFuZFZhbHM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBnZXRGaWVsZFVwZGF0ZUNvc3QoYnl0ZVtdW10pdWludDY0CgljYWxsc3ViIGdldEZpZWxkVXBkYXRlQ29zdAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldEZpZWxkVXBkYXRlQ29zdChmaWVsZEFuZFZhbHM6IGJ5dGVzW10pOiB1aW50NjQKZ2V0RmllbGRVcGRhdGVDb3N0OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4NwoJLy8gY29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gY29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjg4CgkvLyByZW1vdmVkQ29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTEKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MgoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDQgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MwoJLy8gZXhpc3RzID0gdGhpcy5ib3hlcyhuYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCglmcmFtZV9idXJ5IDUgLy8gZXhpc3RzOiBib29sCgoJLy8gKmlmMTRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTUKCS8vIGxlbih2YWx1ZSkgPT09IDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxNF9lbmQKCgkvLyAqaWYxNF9jb25zZXF1ZW50CgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5NgoJLy8gZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5OAoJLy8gcmVtb3ZlZENvc3QgKz0gU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChsZW4obmFtZSkgKyB0aGlzLmJveGVzKG5hbWUpLnNpemUpCglmcmFtZV9kaWcgMSAvLyByZW1vdmVkQ29zdDogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgMyAvLyBuYW1lOiBieXRlW10KCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMobmFtZSkuc2l6ZQoJYXNzZXJ0CgkrCgkqCgkrCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKKmlmMTVfZW5kOgoJYiAqZm9yXzJfY29udGludWUKCippZjE0X2VuZDoKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzAyCgkvLyAhZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCSEKCWJ6ICppZjE2X2VuZAoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNAoJLy8gY29zdCArPSBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGxlbihuYW1lKSArIGxlbih2YWx1ZSkpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDMgLy8gbmFtZTogYnl0ZVtdCglsZW4KCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJKwoJKgoJKwoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoJYiAqZm9yXzJfY29udGludWUKCippZjE2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNwoJLy8gZXhpc3RpbmdMZW5ndGggPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNiAvLyBleGlzdGluZ0xlbmd0aDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDgKCS8vIGxlbih2YWx1ZSkgPD0gZXhpc3RpbmdMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJPD0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDkKCS8vIHJlbW92ZWRDb3N0ICs9IFNDQk9YX1BFUkJZVEUgKiAoZXhpc3RpbmdMZW5ndGggLSBsZW4odmFsdWUpKQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJZnJhbWVfZGlnIDQgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCgktCgkqCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJYiAqaWYxN19lbmQKCippZjE3X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTEKCS8vIGNvc3QgKz0gU0NCT1hfUEVSQllURSAqIChsZW4odmFsdWUpIC0gZXhpc3RpbmdMZW5ndGgpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJLQoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoKKmlmMTdfZW5kOgoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpICs9IDIKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTUKCS8vIHJlbW92ZWRDb3N0ID4gY29zdAoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY29zdDogdWludDY0Cgk+CglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTYKCS8vIHJldHVybiAwCglpbnRjIDAgLy8gMAoJYiAqZ2V0RmllbGRVcGRhdGVDb3N0KnJldHVybgoKKmlmMThfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzE4CgkvLyByZXR1cm4gY29zdCAtIHJlbW92ZWRDb3N0CglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWRDb3N0OiB1aW50NjQKCS0KCipnZXRGaWVsZFVwZGF0ZUNvc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUZpZWxkczoKCS8vIGZpZWxkQW5kVmFsczogYnl0ZVtdW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIHVwZGF0ZUZpZWxkcyhieXRlW11bXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUZpZWxkcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlRmllbGRzKGZpZWxkQW5kVmFsczogYnl0ZXNbXSk6IHZvaWQKdXBkYXRlRmllbGRzOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyMgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzIzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI4CgkvLyBnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyAqaWYyMF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyOQoJLy8gZmllbGRBbmRWYWxzLmxlbmd0aCA9PT0gMiAmJiBmaWVsZEFuZFZhbHNbMF0gPT09IE5GRF9GSUVMRF9DQV9UT19WRVJJRlkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCWludGMgMCAvLyAwCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCT09CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDIgLy8gMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJcHVzaGJ5dGVzICJ1LmNhdi5hbGdvLmEiCgk9PQoJJiYKCipza2lwX2FuZDk6CglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzAKCS8vIHRoaXMuYm94ZXMoZmllbGRBbmRWYWxzWzBdKS52YWx1ZSA9IGZpZWxkQW5kVmFsc1sxXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQW5kVmFsczogYnl0ZXNbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMiAvLyAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAxMCAvLyA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMxCgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMjBfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMzCgkvLyBhc3NlcnQoZmFsc2UsICdpbnZhbGlkIHVwZGF0ZSBjYWxsIGJ5IHJlZ2lzdHJ5JykKCWludGMgMCAvLyAwCgoJLy8gaW52YWxpZCB1cGRhdGUgY2FsbCBieSByZWdpc3RyeQoJYXNzZXJ0CgoqaWYxOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzYKCS8vIGFkbWluUmlnaHRzID0gdGhpcy5pc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpCgljYWxsc3ViIGlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5CglmcmFtZV9idXJ5IDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzgKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMzOQoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM0MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNDQKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ1CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ2CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjFfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCnVwZGF0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1MgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzUzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU1CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAyKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1NgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNTcKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OAoJLy8gdmFsdWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2kgKyAxXSBhcyBieXRlcwoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJdHhuYXMgQXBwbGljYXRpb25BcmdzCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNjMKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY0CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY1CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjJfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyByZWFkRmllbGQoYnl0ZVtdKWJ5dGVbXQoqYWJpX3JvdXRlX3JlYWRGaWVsZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIGZpZWxkTmFtZTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgcmVhZEZpZWxkKGJ5dGVbXSlieXRlW10KCWNhbGxzdWIgcmVhZEZpZWxkCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlYWRGaWVsZChmaWVsZE5hbWU6IGJ5dGVzKTogYnl0ZXMKcmVhZEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NAoJLy8gdHJ1c3RUeXBlID0gZXh0cmFjdDMoZmllbGROYW1lLCAwLCAyKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogYnl0ZXMKCWV4dHJhY3QgMCAyCglmcmFtZV9idXJ5IDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NgoJLy8gdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNJbnRlcm5hbEZpZWxkCglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzcKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KGZpZWxkTmFtZSkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CgliICpyZWFkRmllbGQqcmV0dXJuCgoqaWYyM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuaXNVc2VyRmllbGQodHJ1c3RUeXBlKSB8fCB0aGlzLmlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGUpLAoJLy8gICAgICAgICAgICAgJ211c3QgYmUgdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIGZpZWxkIHRvIGZldGNoJywKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNVc2VyRmllbGQKCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCgl8fAoKKnNraXBfb3IwOgoJLy8gbXVzdCBiZSB1c2VyLWRlZmluZWQgb3IgdmVyaWZpZWQgZmllbGQgdG8gZmV0Y2gKCWFzc2VydAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzgzCgkvLyB0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODQKCS8vIHJldHVybiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWFzc2VydAoJYiAqcmVhZEZpZWxkKnJldHVybgoKKmlmMjRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg3CgkvLyBib3hOYW1lID0gZmllbGROYW1lICsgJ18wMCcKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglwdXNoYnl0ZXMgMHg1ZjMwMzAgLy8gIl8wMCIKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg4CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNV9lbmQKCgkvLyAqaWYyNV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODkKCS8vIHJldHVybiAnJwoJYnl0ZWMgMCAvLyAgIiIKCWIgKnJlYWRGaWVsZCpyZXR1cm4KCippZjI1X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM5MgoJLy8gcmV0VmFsdWUgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIHJldFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTMKCS8vIG5hbWVQcmVmaXggPSBmaWVsZE5hbWUgKyAnXzAnCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJcHVzaGJ5dGVzIDB4NWYzMCAvLyAiXzAiCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBuYW1lUHJlZml4OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgMTA7IGkgKz0gMSkKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgk8CglieiAqZm9yXzVfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk1CgkvLyBib3hOYW1lID0gbmFtZVByZWZpeCArIGkudG9TdHJpbmcoKQoJZnJhbWVfZGlnIDMgLy8gbmFtZVByZWZpeDogYnl0ZVtdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk2CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgliICpmb3JfNV9lbmQKCippZjI2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQwMAoJLy8gcmV0VmFsdWUgPSBjb25jYXQocmV0VmFsdWUsIHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUpCglmcmFtZV9kaWcgMiAvLyByZXRWYWx1ZTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJY29uY2F0CglmcmFtZV9idXJ5IDIgLy8gcmV0VmFsdWU6IGJ5dGVbXQoKKmZvcl81X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl81CgoqZm9yXzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDAyCgkvLyByZXR1cm4gcmV0VmFsdWUKCWZyYW1lX2RpZyAyIC8vIHJldFZhbHVlOiBieXRlW10KCipyZWFkRmllbGQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBvZmZlckZvclNhbGUodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX29mZmVyRm9yU2FsZToKCS8vIHJlc2VydmVkRm9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHJlc2VydmVkRm9yKSBmb3Igb2ZmZXJGb3JTYWxlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBzZWxsQW1vdW50OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9mZmVyRm9yU2FsZSh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIG9mZmVyRm9yU2FsZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gb2ZmZXJGb3JTYWxlKHNlbGxBbW91bnQ6IHVpbnQ2NCwgcmVzZXJ2ZWRGb3I6IEFkZHJlc3MpOiB2b2lkCm9mZmVyRm9yU2FsZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA4CgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCBzZWxsIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3Qgc2VsbCBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA5CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTAKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTEKCS8vIG91ckJveENvdW50ID0gdGhpcy5hcHAuYWRkcmVzcy50b3RhbEJveGVzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBvdXJCb3hDb3VudDogdWludDY0CgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTYKCS8vIG91ckJveENvdW50ID4gMAoJZnJhbWVfZGlnIDAgLy8gb3VyQm94Q291bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQxNwoJLy8gbG9nKCdib3ggY291bnQ6JyArIG91ckJveENvdW50LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2MjZmNzgyMDYzNmY3NTZlNzQzYSAvLyAiYm94IGNvdW50OiIKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoqaWYyN19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTkKCS8vIGFzc2VydChvdXJCb3hDb3VudCA9PT0gMCwgJ2NhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluJykKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluCglhc3NlcnQKCgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyMgoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpICE9PSAwCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyOF9lbmQKCgkvLyAqaWYyOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MjMKCS8vIGFzc2VydChzZWxsQW1vdW50ID49IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnbXVzdCBiZSBzb2xkIGZvciBhdCBsZWFzdCBNSU4gYW1vdW50JykKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPj0KCgkvLyBtdXN0IGJlIHNvbGQgZm9yIGF0IGxlYXN0IE1JTiBhbW91bnQKCWFzc2VydAoKKmlmMjhfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS52YWx1ZSA9IGl0b2Ioc2VsbEFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDIKCS8vIHJlc2VydmVkRm9yICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIHJhd0J5dGVzKHJlc2VydmVkRm9yKSAhPT0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKQoJZnJhbWVfZGlnIC0yIC8vIHJlc2VydmVkRm9yOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCSE9CgkmJgoKKnNraXBfYW5kMTA6CglieiAqaWYyOV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHJlc2VydmVkRm9yKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDUKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpID4gMCAmJgoJLy8gICAgICAgICAgICAgc2VsbEFtb3VudCA8PSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDExCglmcmFtZV9kaWcgLTEgLy8gc2VsbEFtb3VudDogdWludDY0CglieXRlYyAxMyAvLyAiaS5taW50aW5nS2lja29mZkFtb3VudCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPD0KCSYmCgoqc2tpcF9hbmQxMToKCWJ6ICppZjI5X2Vsc2UKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikudmFsdWUKCWJ5dGVjIDggLy8gImkucmVzZXJ2ZWRPd25lci5hIgoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJYXBwX2dsb2JhbF9wdXQKCWIgKmlmMjlfZW5kCgoqaWYyOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoqaWYyOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NTMKCS8vIHRoaXMubmZkX29mZmVyRm9yU2FsZS5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGFtb3VudDogc2VsbEFtb3VudCwKCS8vICAgICAgICAgICAgIHJlc2VydmVkRm9yOiByZXNlcnZlZEZvciwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGMyNGI1YWQ2IC8vIG5mZF9vZmZlckZvclNhbGUodWludDY0LHN0cmluZyxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyByZXNlcnZlZEZvcjogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBjYW5jZWxTYWxlKCl2b2lkCiphYmlfcm91dGVfY2FuY2VsU2FsZToKCS8vIGV4ZWN1dGUgY2FuY2VsU2FsZSgpdm9pZAoJY2FsbHN1YiBjYW5jZWxTYWxlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjYW5jZWxTYWxlKCk6IHZvaWQKY2FuY2VsU2FsZToKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZCIpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoKCS8vIGNhbid0IHVwZGF0ZSBmaWVsZHMgaWYgTkZEIGV4cGlyZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDY3CgkvLyBhc3NlcnQodGhpcy5pc0ZvclNhbGUoKSwgJ211c3QgYmUgZm9yIHNhbGUnKQoJY2FsbHN1YiBpc0ZvclNhbGUKCgkvLyBtdXN0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjgKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMX0FNT1VOVCkuZGVsZXRlKCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ3MwoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gcG9zdE9mZmVyKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3Bvc3RPZmZlcjoKCS8vIG5vdGU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZlcjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwb3N0T2ZmZXIodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIHBvc3RPZmZlcgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcG9zdE9mZmVyKG9mZmVyOiB1aW50NjQsIG5vdGU6IHN0cmluZyk6IHZvaWQKcG9zdE9mZmVyOgoJcHJvdG8gMiAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDgwCgkvLyB0aGlzLm5mZF9wb3N0ZWRPZmZlci5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICAgICAgICBhbW91bnQ6IG9mZmVyLAoJLy8gICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDUyNTMyYjcwIC8vIG5mZF9wb3N0ZWRPZmZlcih1aW50NjQsc3RyaW5nLGFkZHJlc3MsdWludDY0LHN0cmluZykKCWJ5dGVjIDAgLy8gIGluaXRpYWwgaGVhZAoJYnl0ZWMgMCAvLyAgaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDM0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBvZmZlcjogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gbm90ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbWludFBheW91dCh1aW50NjQsdWludDY0KSh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpCiphYmlfcm91dGVfbWludFBheW91dDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG9uZVllYXJQcmljZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtaW50UGF5b3V0KHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkKCWNhbGxzdWIgbWludFBheW91dAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG1pbnRQYXlvdXQob25lWWVhclByaWNlOiB1aW50NjQsIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NCk6IFBheW91dEluZm8KbWludFBheW91dDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDYKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0OTIKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDkzCgkvLyBhc3NlcnQodGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpID09PSBORkRfTUlOVElOR19TVEFURV9QT1NUQVNBKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJYnl0ZWMgMzAgLy8gIjIiCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDk1CgkvLyBvZmZlckFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5OAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAwIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAzCgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkpID4gMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMwX2Vsc2UKCgkvLyAqaWYzMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MDcKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUwOQoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIG9mZmVyQW10KSAvIG9uZVllYXJQcmljZQoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJKgoJZnJhbWVfZGlnIC0xIC8vIG9uZVllYXJQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTEKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IChleHRyYURheXMgKiBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvKSAvIDM2NQoJZnJhbWVfZGlnIDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCSoKCWludGMgOCAvLyAzNjUKCS8KCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEyCgkvLyBncm9zc1RvVHJlYXN1cnkgPCBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJPAoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEzCgkvLyBncm9zc1RvVHJlYXN1cnkgPSBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgLTIgLy8gc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCippZjMxX2VuZDoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE1CgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0Cgk+PQoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE2CgkvLyBncm9zc1RvVHJlYXN1cnkgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CgoqaWYzMl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTkKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgPSBvZmZlckFtdCAtIGdyb3NzVG9UcmVhc3VyeQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzBfZW5kCgoqaWYzMF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIyCgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjMwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyNgoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTI3CgkvLyB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkgPT09IDAKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMzNfZWxzZQoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyOQoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWYzM19lbmQKCippZjMzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzMKCS8vIGNvbW1pc3Npb25Ub1BheSA9IChncm9zc1RvVHJlYXN1cnkgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSoKCWludGMgMTggLy8gMTAwMAoJLwoJZnJhbWVfYnVyeSA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgoqaWYzM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzYKCS8vIGNvbW1pc3Npb25BZ2VudCA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzNwoJLy8gc2VnbWVudFJvb3RPd25lciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQwCgkvLyBjb21taXNzaW9uQWdlbnQgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpLnZhbHVlKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKKmlmMzRfZW5kOgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NDIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmV4aXN0cwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU0MwoJLy8gc2VnbWVudFJvb3RPd25lciA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlKQoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDYgLy8gc2VnbWVudFJvb3RPd25lcjogYWRkcmVzcwoKKmlmMzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQ3CgkvLyB0aGlzLmRvUGF5b3V0cygKCS8vICAgICAgICAgICAgIGdyb3NzVG9UcmVhc3VyeSwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VHTUVOVF9DT01NSVNTSU9OX0FHRU5UKS52YWx1ZSksCgkvLyAgICAgICAgICkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmRlbGV0ZSgpCglieXRlYyA5IC8vICJpLnNlZ21lbnRBZ2VudC5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjQKCS8vIHJldHVybiB7CgkvLyAgICAgICAgICAgICBhbW91bnRUb1NlbGxlcjogZ3Jvc3NUb1RyZWFzdXJ5IC0gY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgY29tbWlzc2lvbkFkZHJlc3M6IGNvbW1pc3Npb25BZ2VudCwKCS8vICAgICAgICAgICAgIGFtb3VudFRvQ29tbWlzc2lvbjogY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgc2VnbWVudFJvb3RPd25lcjogc2VnbWVudFJvb3RPd25lciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvU2VnbWVudFJvb3Q6IHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgIH0KCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJLQoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gY29tbWlzc2lvbkFnZW50OiBhZGRyZXNzCgljb25jYXQKCWZyYW1lX2RpZyA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA2CglyZXRzdWIKCi8vIHB1cmNoYXNlKHBheSl2b2lkCiphYmlfcm91dGVfcHVyY2hhc2U6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHB1cmNoYXNlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHVyY2hhc2UocGF5KXZvaWQKCWNhbGxzdWIgcHVyY2hhc2UKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHB1cmNoYXNlKHBheW1lbnQ6IFBheVR4bik6IHZvaWQKcHVyY2hhc2U6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzUKCS8vIGFzc2VydCghdGhpcy5pc0V4cGlyZWQoKSwgImNhbid0IGJlIGV4cGlyZWQiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBjYW4ndCBiZSBleHBpcmVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzYKCS8vIGFzc2VydCh0aGlzLmlzRm9yU2FsZSgpLCAnbXVzdCBiZSBmb3Igc2FsZScpCgljYWxsc3ViIGlzRm9yU2FsZQoKCS8vIG11c3QgYmUgZm9yIHNhbGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU3NwoJLy8gc2VsbEFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gc2VsbEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc4CgkvLyByZXNlcnZlZE93bmVyID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1JFU0VSVkVEX09XTkVSKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglmcmFtZV9idXJ5IDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc5CgkvLyBvZmZlckFtdCA9IHBheW1lbnQuYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgwCgkvLyBvcmlnT2ZmZXJhbXQgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgxCgkvLyBsb2coJ29yaWdfb2ZmZXI6JyArIG9mZmVyQW10LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2ZjcyNjk2NzVmNmY2NjY2NjU3MjNhIC8vICJvcmlnX29mZmVyOiIKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgzCgkvLyBhc3NlcnQocGF5bWVudC5zZW5kZXIgPT09IHRoaXMudHhuLnNlbmRlciwgJ3BheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXInKQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHBheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXIKCWFzc2VydAoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTg1CgkvLyBsZW4ocmVzZXJ2ZWRPd25lcikgPiAwCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJlc2VydmVkT3duZXIgPT09IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKSwKCS8vICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQgb3duZXIgc2V0LCBidXQgc2VuZGVyIGlzbid0IHRoZSByZXNlcnZlZCBhZGRyZXNzIiwKCS8vICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoKCS8vIFJlc2VydmVkIG93bmVyIHNldCwgYnV0IHNlbmRlciBpc24ndCB0aGUgcmVzZXJ2ZWQgYWRkcmVzcwoJYXNzZXJ0CgoqaWYzNl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OTQKCS8vIHJlc2VydmVkT3duZXIgPSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfYnVyeSAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTk5CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpID09PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAwCgkvLyBvZmZlckFtdCArPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSsKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoqaWYzN19lbmQ6CgkvLyAqaWYzOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYwMwoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpID4gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDQKCS8vIGFzc2VydChvZmZlckFtdCA+IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBtaW4gYW1vdW50JykKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPgoKCS8vIG9mZmVyIG11c3QgYmUgYXQgbGVhc3QgbWluIGFtb3VudAoJYXNzZXJ0CgoqaWYzOF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDcKCS8vIGFzc2VydChvZmZlckFtdCA+PSBzZWxsQW10LCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudCcpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCT49CgoJLy8gb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjEwCgkvLyByZWZ1bmRBbXQgPSBvZmZlckFtdCAtIHNlbGxBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNlbGxBbXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA0IC8vIHJlZnVuZEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjExCgkvLyBvZmZlckFtdCAtPSByZWZ1bmRBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CgktCglmcmFtZV9idXJ5IDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxNAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgYW1vdW50OiBvcmlnT2ZmZXJhbXQsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJvcmlnT2ZmZXJhbXQifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MTcKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxOAoJLy8gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfQ09NTUlTU0lPTjEpID09PSAwCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjM5X2Vsc2UKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjAKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzlfZW5kCgoqaWYzOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjI0CgkvLyBjb21taXNzaW9uVG9QYXkgPSAob2ZmZXJBbXQgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJKgoJaW50YyAxOCAvLyAxMDAwCgkvCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyNwoJLy8gY29udkZlZUFkZHIgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyOAoJLy8gY29udkZlZSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjkKCS8vIHRoaXMudHhuLmdyb3VwSW5kZXggPj0gMgoJdHhuIEdyb3VwSW5kZXgKCWludGMgMiAvLyAyCgk+PQoJYnogKmlmNDBfZW5kCgoJLy8gKmlmNDBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMwCgkvLyBjb252RmVlVHhuID0gdGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMl0KCXR4biBHcm91cEluZGV4CglpbnRjIDIgLy8gMgoJLQoJZnJhbWVfYnVyeSA4IC8vIGNvbnZGZWVUeG46IHR4bgoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMyCgkvLyBjb252RmVlVHhuLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCAmJgoJLy8gICAgICAgICAgICAgICAgIGNvbnZGZWVUeG4uc2VuZGVyID09PSB0aGlzLnR4bi5zZW5kZXIgJiYKCS8vICAgICAgICAgICAgICAgICBjb252RmVlVHhuLm5vdGUgPT09ICdjb252LiBmZWUnCglmcmFtZV9kaWcgOCAvLyBjb252RmVlVHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTIKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJJiYKCipza2lwX2FuZDEyOgoJZHVwCglieiAqc2tpcF9hbmQxMwoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBOb3RlCglwdXNoYnl0ZXMgMHg2MzZmNmU3NjJlMjA2NjY1NjUgLy8gImNvbnYuIGZlZSIKCT09CgkmJgoKKnNraXBfYW5kMTM6CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MzYKCS8vIGNvbnZGZWVBZGRyID0gY29udkZlZVR4bi5yZWNlaXZlcgoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBSZWNlaXZlcgoJZnJhbWVfYnVyeSA2IC8vIGNvbnZGZWVBZGRyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjM3CgkvLyBjb252RmVlID0gY29udkZlZVR4bi5hbW91bnQKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoqaWY0MV9lbmQ6CgoqaWY0MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDEKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUub3duZXJzaGlwQ2hhbmdlZD4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgICAgICB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGYyMmM1N2YyIC8vIG1ldGhvZCAib3duZXJzaGlwQ2hhbmdlZChzdHJpbmcsdWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjQzCgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHJlc2VydmVkT3duZXIpLAoJLy8gICAgICAgICAgICAgXQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NTEKCS8vIHRoaXMubmZkX3B1cmNoYXNlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGJ1eWVyOiBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIHNlbGxBbW91bnQ6IHNlbGxBbXQsCgkvLyAgICAgICAgICAgICBvZmZlckFtb3VudDogb2ZmZXJBbXQsCgkvLyAgICAgICAgICAgICBvdmVycGF5bWVudFJlZnVuZDogcmVmdW5kQW10LAoJLy8gICAgICAgICAgICAgY29udkZlZUFkZHI6IGNvbnZGZWVBZGRyLAoJLy8gICAgICAgICAgICAgY29udkZlZUFtb3VudDogY29udkZlZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDc4ZGM4OWUzIC8vIG5mZF9wdXJjaGFzZWQodWludDY0LHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDA4YSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDcgLy8gY29udkZlZTogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNvbmNhdAoJbG9nCgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjQKCS8vIHJlZnVuZEFtdCA+IDAKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY1CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiByZWZ1bmRBbXQsCgkvLyAgICAgICAgICAgICAgICAgcmVjZWl2ZXI6IHBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdvdmVycGF5bWVudFJlZnVuZCcsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjYKCS8vIGFtb3VudDogcmVmdW5kQW10CglmcmFtZV9kaWcgNCAvLyByZWZ1bmRBbXQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjcKCS8vIHJlY2VpdmVyOiBwYXltZW50LnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY4CgkvLyBub3RlOiAnb3ZlcnBheW1lbnRSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2Zjc2NjU3MjcwNjE3OTZkNjU2ZTc0NTI2NTY2NzU2ZTY0IC8vICJvdmVycGF5bWVudFJlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY3MQoJLy8gdGhpcy5kb1BheW91dHMoCgkvLyAgICAgICAgICAgICBvZmZlckFtdCwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIDAsCgkvLyAgICAgICAgICAgICBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICApCglnbG9iYWwgWmVyb0FkZHJlc3MKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgNSAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJY2FsbHN1YiBkb1BheW91dHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NzkKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg0CgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKSkgIT09IDAKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjQzX2VuZAoKCS8vICppZjQzX2NvbnNlcXVlbnQKCS8vICppZjQ0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpLnZhbHVlICE9PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikgJiYKCS8vICAgICAgICAgICAgICAgICBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpKSA9PT0gMAoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJPT0KCSYmCgoqc2tpcF9hbmQxNDoKCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY4OQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpLAoJLy8gICAgICAgICAgICAgICAgICAgICByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSksCgkvLyAgICAgICAgICAgICAgICAgICAgIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEgLy8gIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5MAoJLy8gYW1vdW50OiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjkxCgkvLyByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2OTIKCS8vIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2NTczNjM3MjZmNzc1MjY1NjY3NTZlNjQgLy8gImVzY3Jvd1JlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQ0X2VuZDoKCippZjQzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5OAoJLy8gdGhpcy5jbGF3QXNhRnJvbVRvKEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLCB0aGlzLmFwcC5hZGRyZXNzKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MTEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUgPSByZXNlcnZlZE93bmVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEyCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHJlc2VydmVkT3duZXIKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEzCgkvLyBvZmZlckFtdCA+IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX0hJR0hFU1RfU09MRF9BTU9VTlQpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglieXRlYyAyNiAvLyAiaS5oaWdoZXN0U29sZEFtdCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPgoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVQVVJDSEFTRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDM0IC8vICJpLnRpbWVQdXJjaGFzZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS5kZWxldGUoKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikuZGVsZXRlKCkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyNQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjYKCS8vIGxvZyhpdG9iKG9mZmVyQW10KSkKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9pc0FkZHJlc3NJbkZpZWxkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgaXNBZGRyZXNzSW5GaWVsZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKCWNhbGxzdWIgaXNBZGRyZXNzSW5GaWVsZAoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaXNBZGRyZXNzSW5GaWVsZChmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KaXNBZGRyZXNzSW5GaWVsZDoKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczMQoJLy8gYXNzZXJ0KGFkZHJlc3MgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MzIKCS8vICF0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzMzCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjQ2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczNQoJLy8gcmV0dXJuIHRoaXMuZmluZEFkZHJJbkJ5dGVzKHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZSwgYWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZQoJYXNzZXJ0CgljYWxsc3ViIGZpbmRBZGRySW5CeXRlcwoJcmV0c3ViCgovLyBkb1BheW91dHMoZ3Jvc3NUb1NlbGxlcjogdWludDY0LCBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzLCBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NCwgc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0LCBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmRvUGF5b3V0czoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA2CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICBhbW91bnQ6IGdyb3NzVG9TZWxsZXIgLSBjb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogc2VsbGVyQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICdzZWxsZXInLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MDcKCS8vIGFtb3VudDogZ3Jvc3NUb1NlbGxlciAtIGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0xIC8vIGdyb3NzVG9TZWxsZXI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgwOAoJLy8gcmVjZWl2ZXI6IHNlbGxlckFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA5CgkvLyBub3RlOiAnc2VsbGVyJwoJcHVzaGJ5dGVzIDB4NzM2NTZjNmM2NTcyIC8vICJzZWxsZXIiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODExCgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTQKCS8vIGxlbih0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpKSAhPT0gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDdfZW5kCgoJLy8gKmlmNDdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE1CgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkudmFsdWUpCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gY29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgICAgICBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogY29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ2NvbW1pc3Npb24nLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE3CgkvLyBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOAoJLy8gcmVjZWl2ZXI6IGNvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgMCAvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOQoJLy8gbm90ZTogJ2NvbW1pc3Npb24nCglwdXNoYnl0ZXMgMHg2MzZmNmQ2ZDY5NzM3MzY5NmY2ZSAvLyAiY29tbWlzc2lvbiIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNQoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkpID09PSAwCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDhfZWxzZQoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS5kZWxldGUoKQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWFwcF9nbG9iYWxfZGVsCgliICppZjQ4X2VuZAoKKmlmNDhfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkudmFsdWUKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjEpLnZhbHVlID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWJ5dGVjIDIyIC8vICJpLmNvbW1pc3Npb24yIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLmRlbGV0ZSgpCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNDhfZW5kOgoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MzgKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgIT09IDAKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDlfZW5kCgoJLy8gKmlmNDlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODM5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBzZWdtZW50Q29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ3NlZ21lbnQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQwCgkvLyBhbW91bnQ6IHNlZ21lbnRDb21taXNzaW9uVG9QYXkKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQxCgkvLyByZWNlaXZlcjogc2VnbWVudENvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQyCgkvLyBub3RlOiAnc2VnbWVudCcKCXB1c2hieXRlcyAweDczNjU2NzZkNjU2ZTc0IC8vICJzZWdtZW50IgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJcmV0c3ViCgovLyBnZXRSZW5ld1ByaWNlKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRSZW5ld1ByaWNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRSZW5ld1ByaWNlKCl1aW50NjQKCWNhbGxzdWIgZ2V0UmVuZXdQcmljZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFJlbmV3UHJpY2UoKTogdWludDY0CmdldFJlbmV3UHJpY2U6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTAKCS8vIHJldHVybiB0aGlzLmdldFJlbmV3UHJpY2VEYXRhKHRoaXMudHhuLnNlbmRlcikub25lWWVhclByaWNlCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCXJldHN1YgoKLy8gdXBkYXRlSGFzaChieXRlW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUhhc2g6CgkvLyBoYXNoOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVIYXNoKGJ5dGVbXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUhhc2gKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUhhc2goaGFzaDogYnl0ZXMpOiB2b2lkCnVwZGF0ZUhhc2g6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGxlbihoYXNoKSA9PT0gMzIgJiYgQWRkcmVzcy5mcm9tQnl0ZXMoaGFzaCkgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICAgICAgICAibXVzdCBwYXNzIDMyLWJ5dGUgaGFzaCB0aGF0IGlzbid0IDAiLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQxNQoJZnJhbWVfZGlnIC0xIC8vIGhhc2g6IGJ5dGVzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgkmJgoKKnNraXBfYW5kMTU6CgkvLyBtdXN0IHBhc3MgMzItYnl0ZSBoYXNoIHRoYXQgaXNuJ3QgMAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODYxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICByYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpID09PSB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlIHx8IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKSwKCS8vICAgICAgICAgICAgICdvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlJywKCS8vICAgICAgICAgKQoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCWNhbGxzdWIgaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkKCXx8Cgoqc2tpcF9vcjE6CgkvLyBvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjUKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkpLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiBBZGRyZXNzLmZyb21CeXRlcyhoYXNoKSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDYgLy8gIGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjYKCS8vIGNvbmZpZ0Fzc2V0OiBBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjcKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY4CgkvLyBjb25maWdBc3NldFJlc2VydmU6IEFkZHJlc3MuZnJvbUJ5dGVzKGhhc2gpCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY5CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBjb250cmFjdExvY2soYm9vbCl2b2lkCiphYmlfcm91dGVfY29udHJhY3RMb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciBjb250cmFjdExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgY29udHJhY3RMb2NrKGJvb2wpdm9pZAoJY2FsbHN1YiBjb250cmFjdExvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNvbnRyYWN0TG9jayhsb2NrOiBib29sZWFuKTogdm9pZApjb250cmFjdExvY2s6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NzcKCS8vIHRoaXMuYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODc4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg3OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJZnJhbWVfZGlnIC0xIC8vIGxvY2s6IGJvb2xlYW4KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJYnl0ZWMgMTUgLy8gICIxIgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglieXRlYyAyMyAvLyAgIjAiCgoqdGVybmFyeTBfZW5kOgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3NlZ21lbnRMb2NrOgoJLy8gdXNkUHJpY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGxvY2s6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCAxIChsb2NrKSBmb3Igc2VnbWVudExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzZWdtZW50TG9jawoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc2VnbWVudExvY2sobG9jazogYm9vbGVhbiwgdXNkUHJpY2U6IHVpbnQ2NCk6IHZvaWQKc2VnbWVudExvY2s6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4NQoJLy8gdGhpcy5hc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBhc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4ODYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNTRUdNRU5UTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDIxIC8vICJpLnNlZ21lbnRMb2NrZWQiCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKnRlcm5hcnkxX2ZhbHNlCglieXRlYyAxNSAvLyAgIjEiCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWJ5dGVjIDIzIC8vICAiMCIKCip0ZXJuYXJ5MV9lbmQ6CglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg4CgkvLyBsb2NrCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKmlmNTBfZWxzZQoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfVVNEX1BSSUNFKS5kZWxldGUoKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJYXBwX2dsb2JhbF9kZWwKCWIgKmlmNTBfZW5kCgoqaWY1MF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODkyCgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAzNyAvLyAgbWV0aG9kICJnZXRDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTMKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHVzZFByaWNlID49IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJblVzZCwKCS8vICAgICAgICAgICAgICAgICAnYW1vdW50IG11c3QgYmUgYXQgbGVhc3QgTkZEX01JTl9TRUdNRU5UX1VTRCBkb2xsYXJzIGluIGFsZ28nLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCA4CglidG9pCgk+PQoKCS8vIGFtb3VudCBtdXN0IGJlIGF0IGxlYXN0IE5GRF9NSU5fU0VHTUVOVF9VU0QgZG9sbGFycyBpbiBhbGdvCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX1VTRF9QUklDRSkudmFsdWUgPSBpdG9iKHVzZFByaWNlKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoqaWY1MF9lbmQ6CglyZXRzdWIKCi8vIHZhdWx0T3B0SW5Mb2NrKGJvb2wpdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW5Mb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciB2YXVsdE9wdEluTG9jayBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnRjIDAgLy8gMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSB2YXVsdE9wdEluTG9jayhib29sKXZvaWQKCWNhbGxzdWIgdmF1bHRPcHRJbkxvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW5Mb2NrKGxvY2s6IGJvb2xlYW4pOiB2b2lkCnZhdWx0T3B0SW5Mb2NrOgoJcHJvdG8gMSAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTA4CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVDSEFOR0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAyIC8vICJpLnRpbWVDaGFuZ2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9JU1ZBVUxUT1BUSU5MT0NLRUQpLnZhbHVlID0gbG9jayA/ICcxJyA6ICcwJwoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWZyYW1lX2RpZyAtMSAvLyBsb2NrOiBib29sZWFuCglieiAqdGVybmFyeTJfZmFsc2UKCWJ5dGVjIDE1IC8vICAiMSIKCWIgKnRlcm5hcnkyX2VuZAoKKnRlcm5hcnkyX2ZhbHNlOgoJYnl0ZWMgMjMgLy8gICIwIgoKKnRlcm5hcnkyX2VuZDoKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHZhdWx0T3B0SW4odWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW46CgkvLyBhc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmF1bHRPcHRJbih1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0T3B0SW4KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW4oYXNzZXRzOiBBc3NldElEW10pOiB2b2lkCnZhdWx0T3B0SW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTIwCgkvLyB0aGlzLm5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBub3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MjQKCS8vIHRoaXMuaXNWYXVsdEF1dG9PcHRJbkxvY2tlZCgpCgljYWxsc3ViIGlzVmF1bHRBdXRvT3B0SW5Mb2NrZWQKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkyNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsCgkvLyAgICAgICAgICAgICAgICAgJ3NlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkJywKCS8vICAgICAgICAgICAgICkKCXR4biBTZW5kZXIKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkCglhc3NlcnQKCippZjUxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkzMQoJLy8gYXNzZXJ0KHRoaXMudHhuLmdyb3VwSW5kZXggPiAwLCAncGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSJykKCXR4biBHcm91cEluZGV4CglpbnRjIDAgLy8gMAoJPgoKCS8vIHBhcnQgb2Ygb3B0LWluIGZvciBuZXcgYXNzZXQsIG11c3QgaGF2ZSBwcmlvciB0eG4gcGF5aW5nIE1CUgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTMzCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogYXNzZXRzLmxlbmd0aCwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogYXNzZXRzLmxlbmd0aCJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpIDwgYXNzZXRzLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzgKCS8vIGFzc2V0SWQgPSBhc3NldHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBhc3NldHM6IEFzc2V0SURbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAgaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDEgLy8gYXNzZXRJZDogdWludDY0CgoJLy8gKmlmNTJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDAKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY1Ml9lbmQKCgkvLyAqaWY1Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDEKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDIKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDEgLy8gYXNzZXRJZDogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0NAoJLy8gYXNzZXRBbW91bnQ6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNTJfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoJcmV0c3ViCgovLyB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCiphYmlfcm91dGVfdmF1bHRTZW5kOgoJLy8gb3RoZXJBc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglleHRyYWN0IDIgMAoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBub3RlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMyAocmVjZWl2ZXIpIGZvciB2YXVsdFNlbmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0U2VuZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdmF1bHRTZW5kKGFtb3VudDogdWludDY0LCByZWNlaXZlcjogQWRkcmVzcywgbm90ZTogc3RyaW5nLCBhc3NldDogdWludDY0LCBvdGhlckFzc2V0czogQXNzZXRJRFtdKTogdm9pZAp2YXVsdFNlbmQ6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY0CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NQoJLy8gYXNzZXJ0KHJlY2VpdmVyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyAqaWY1M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NwoJLy8gYXNzZXQgPT09IDAKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjUzX2VuZAoKCS8vICppZjUzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2OAoJLy8gYXNzZXJ0KG90aGVyQXNzZXRzLmxlbmd0aCA9PT0gMCwgImNhbid0IHNwZWNpZnkgb3RoZXIgYXNzZXRzIGlmIHNlbmRpbmcgYWxnbyBmcm9tIHZhdWx0IikKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBzcGVjaWZ5IG90aGVyIGFzc2V0cyBpZiBzZW5kaW5nIGFsZ28gZnJvbSB2YXVsdAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY5CgkvLyBhc3NlcnQoYW1vdW50ID4gMCkKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3MQoJLy8gbWluQmFsYW5jZSA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSArIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWJ5dGVjIDEzIC8vICJpLm1pbnRpbmdLaWNrb2ZmQW1vdW50IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsYW5jZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTczCgkvLyBhc3NlcnQodGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlIC0gYW1vdW50ID49IG1pbkJhbGFuY2UpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJLQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsYW5jZTogdWludDY0Cgk+PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyBzZW5kUGF5bWVudCh7IHJlY2VpdmVyOiByZWNlaXZlciwgYW1vdW50OiBhbW91bnQsIG5vdGU6IG5vdGUgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3NAoJLy8gYW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzQKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzUKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY1M19lbmQ6CgkvLyAqaWY1NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3OQoJLy8gYW1vdW50ICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNTRfZW5kCgoJLy8gKmlmNTRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTgwCgkvLyBhc3NlcnQob3RoZXJBc3NldHMubGVuZ3RoID09PSAwLCAnY2FuIG9ubHkgc2VuZCBvbmUgYXNzZXQgaWYgYW1vdW50ID09IDAnKQoJZnJhbWVfZGlnIC01IC8vIG90aGVyQXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IHNlbmQgb25lIGFzc2V0IGlmIGFtb3VudCA9PSAwCglhc3NlcnQKCippZjU0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4MgoJLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8PSBvdGhlckFzc2V0cy5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgPD0gb3RoZXJBc3NldHMubGVuZ3RoCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCgk8PQoJYnogKmZvcl83X2VuZAoKCS8vICppZjU1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTg2CgkvLyBpID09PSAwCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNTVfZWxzZQoKCS8vICppZjU1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4NwoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChhc3NldCkKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJYiAqaWY1NV9lbmQKCippZjU1X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODkKCS8vIGFzc2V0SWQgPSBvdGhlckFzc2V0c1tpIC0gMV0KCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoKKmlmNTVfZW5kOgoJLy8gKmlmNTZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTIKCS8vIGFzc2V0SWQuaWQgPT09IGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCT09CglieiAqaWY1Nl9lbmQKCgkvLyAqaWY1Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTMKCS8vIGFzc2VydChyYXdCeXRlcyhyZWNlaXZlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdyZWNlaXZlciBtdXN0IGJlIG93bmVyJykKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gcmVjZWl2ZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTk0CgkvLyB0aGlzLmNsYXdBc2FGcm9tVG8odGhpcy5hcHAuYWRkcmVzcywgcmVjZWl2ZXIpCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCWIgKmZvcl83X2NvbnRpbnVlCgoqaWY1Nl9lbmQ6CgkvLyAqaWY1N19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk5NwoJLy8gYW1vdW50ID09PSAwIHx8IHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFzc2V0SWQpID09PSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJueiAqc2tpcF9vcjIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBhc3NldElkOiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFtb3VudDogdWludDY0Cgk9PQoJfHwKCipza2lwX29yMjoKCWJ6ICppZjU3X2Vsc2UKCgkvLyAqaWY1N19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTkKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRDbG9zZVRvOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudCwKCS8vICAgICAgICAgICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDAwCgkvLyB4ZmVyQXNzZXQ6IGFzc2V0SWQKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMQoJLy8gYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMgoJLy8gYXNzZXRDbG9zZVRvOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDMKCS8vIGFzc2V0QW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDQKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWIgKmlmNTdfZW5kCgoqaWY1N19lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoeyB4ZmVyQXNzZXQ6IGFzc2V0SWQsIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLCBhc3NldEFtb3VudDogYW1vdW50LCBub3RlOiBub3RlIH0pCglpdHhuX2JlZ2luCglpbnRjIDEwIC8vICBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDcKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA3CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA3CgkvLyBhc3NldEFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA3CgkvLyBub3RlOiBub3RlCglmcmFtZV9kaWcgLTMgLy8gbm90ZTogc3RyaW5nCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWY1N19lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzcKCipmb3JfN19lbmQ6CglyZXRzdWIKCi8vIHJlbmV3KHBheSl2b2lkCiphYmlfcm91dGVfcmVuZXc6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHJlbmV3IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVuZXcocGF5KXZvaWQKCWNhbGxzdWIgcmVuZXcKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlbmV3KHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gUmVuZXcgYWRkcyBtb3JlIHRpbWUgdG8gYW4gZXhpc3RpbmcgTkZEcyBleHBpcmF0aW9uLCBvciByZW5ld3MgaXQgaWYgZXhwaXJlZC4KLy8KLy8gQXMgcGFydCBvZiB2Mi0+djMgdXBncmFkZSwgdGhlIE5GRHMgYXJlIGNvbnZlcnRlZCBmcm9tIGxpZmV0aW1lIE5GRHMgdG8gcmVuZXdhbCBORkRzLiBUaGUgdjIgY29udHJhY3QgaXMgdXBncmFkZWQKLy8gdG8gdjMsIHRoZW4gcmVuZXcgaXMgY2FsbGVkIG9uIHRoZSAobm93IHYzKSBuZmQgdG8gdHVybiBpdCBpbnRvIGEgcmVuZXdhbCAobm90ZSB0aGUgaWYgY3VyRXhwaXJhdGlvbiA9PT0gMCBjaGVjaykKLy8KLy8gSWYgYWxyZWFkeSByZW5ld2FsLCB0aGVuIGl0IGV4dGVuZHMgdGhlIGN1cnJlbnQgZXhwaXJhdGlvbiB0aW1lIGJ5IHRoZSB0aW1lIHNwZWNpZmllZCAobWluaW11bSAxIHlyKSAoMzY1IC8gcHJpY2UgcGFpZCAqIG1pbnQgcHJpY2UpCi8vIEV4cGlyYXRpb25zIGNhbiBuZXZlciBiZSBtb3JlIHRoYW4gTkZEX01BWF9FWFBJUkFUSU9OX0RBWVMgZGF5cyBpbiB0aGUgZnV0dXJlLgovLwovLyBJRiB0aGUgTkZEIGlzIGV4cGlyZWQ6Ci8vIHggVGhlIGN1cnJlbnQgb3duZXIgY2FuIHRha2UgaXQgYmFjayBvdmVyIGF0IGJhc2UgcHJpY2UgLSBhbmQgTkZEIG1ldGFkYXRhIGRvZXNuJ3QgaGF2ZSB0byBiZSBjbGVhcmVkIC0gdGhleQovLyBnZXQgaXQgYmFjayBhcy1pcy4KLy8geCBJZiBub3QgY3VycmVudCBvd25lciwgdGhlbiB0aGUgcHJpY2UgZ29lcyBmcm9tIGhpZ2ggb2YgYmFzZSBwcmljZSAqIDEwLDAwMCBkb3duIHRvIGJhc2UgcHJpY2Ugb3ZlciAyNCBocnMgd2hlcmUKLy8gJ2J1eWVyJyBoYXMgdG8gcGF5IGF0IGxlYXN0IHRoYXQgcHJpY2UuICBUaGUgTkZEIE1VU1QgQUxSRUFEWSBIQVZFIElUUyBNRVRBREFUQSBDTEVBUkVEIQovLwovLyBAcGFyYW0ge1BheVR4bn0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIGZyb20gd2hpY2ggdGhlIHJlbmV3YWwgcGVyaW9kIGlzIGRldGVybWluZWQuLgpyZW5ldzoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDExCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzMAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzMwoJLy8gcHJpY2VJbmZvID0gdGhpcy5nZXRSZW5ld1ByaWNlRGF0YSh0aGlzLnR4bi5zZW5kZXIpCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglmcmFtZV9idXJ5IDAgLy8gcHJpY2VJbmZvOiAodWludDY0LHVpbnQ2NCxib29sLGJvb2wsYm9vbCkKCgkvLyAqaWY1OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMzQKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE5IC8vIDIwMAoJPAoJYnogKmlmNThfZW5kCgoJLy8gKmlmNThfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzNQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDE0IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDEzIC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY1OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDM3CgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMzcgLy8gIG1ldGhvZCAiZ2V0Q29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzOAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MAoJLy8gcmVxUHJpY2UgPSBwcmljZUluZm8ub25lWWVhclByaWNlCglmcmFtZV9kaWcgMCAvLyBwcmljZUluZm86ICh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNDEKCS8vIG1heEV4cFllYXJzID0gY29uc3RyYWludERhdGEubWF4WWVhcnNBbGxvd2VkCglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBtYXhFeHBZZWFyczogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MgoJLy8gYXNzZXJ0KHJlcVByaWNlID4gMCkKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQzCgkvLyBvcmlnT3duZXIgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgNCAvLyBvcmlnT3duZXI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQ1CgkvLyBjdXJFeHBpcmF0aW9uID0gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJZnJhbWVfYnVyeSA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoKCS8vICppZjU5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0NgoJLy8gY3VyRXhwaXJhdGlvbiAhPT0gMCAmJiB0aGlzLmlzRXhwaXJlZCgpCglmcmFtZV9kaWcgNSAvLyBjdXJFeHBpcmF0aW9uOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNgoJY2FsbHN1YiBpc0V4cGlyZWQKCSYmCgoqc2tpcF9hbmQxNjoKCWJ6ICppZjU5X2VuZAoKCS8vICppZjU5X2NvbnNlcXVlbnQKCS8vICppZjYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1MQoJLy8gdGhpcy50eG4uc2VuZGVyICE9PSBvcmlnT3duZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyA0IC8vIG9yaWdPd25lcjogYWRkcmVzcwoJIT0KCWJ6ICppZjYwX2VuZAoKCS8vICppZjYwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNTIKCS8vIGFzc2VydCh0aGlzLmFwcC5hZGRyZXNzLnRvdGFsQm94ZXMgPT09IDAsICJjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQiKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwoJcG9wCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQKCWFzc2VydAoKKmlmNjBfZW5kOgoKKmlmNTlfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1OAoJLy8gYXNzZXJ0KHBheW1lbnQuYW1vdW50ID49IHJlcVByaWNlLCAnbXVzdCBwYXkgYXQgbGVhc3QgbWluaW11bSByZW5ld2FsIHByaWNlJykKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoJPj0KCgkvLyBtdXN0IHBheSBhdCBsZWFzdCBtaW5pbXVtIHJlbmV3YWwgcHJpY2UKCWFzc2VydAoKCS8vICppZjYxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1OQoJLy8gY3VyRXhwaXJhdGlvbiA9PT0gMAoJZnJhbWVfZGlnIDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjYxX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gb3JpZ093bmVyKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MgoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2NAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMSkuZGVsZXRlKCkKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDE2IC8vICJpLmNvbW1pc3Npb24yQWdlbnQuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2NwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoJYiAqaWY2MV9lbmQKCippZjYxX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2OAoJLy8gdGhpcy5pc0V4cGlyZWQoKQoJY2FsbHN1YiBpc0V4cGlyZWQKCWJ6ICppZjYxX2VuZAoKCS8vICppZjYxX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MAoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNzMKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMocGF5bWVudC5zZW5kZXIpCglieXRlYyAxMCAvLyAiaS5zZWxsZXIuYSIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gKmlmNjJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc1CgkvLyB0aGlzLmlzRm9yU2FsZSgpCgljYWxsc3ViIGlzRm9yU2FsZQoJYnogKmlmNjJfZW5kCgoJLy8gKmlmNjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3NwoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLmRlbGV0ZSgpCglieXRlYyA2IC8vICJpLnNlbGxhbXQiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNjJfZW5kOgoKKmlmNjFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoCgkvLyAgICAgICAgICAgICB0aGlzLmNhbGNFeHBpcmF0aW9uKHJlcVByaWNlLCBwYXltZW50LmFtb3VudCwgY3VyRXhwaXJhdGlvbiwgbWF4RXhwWWVhcnMpLAoJLy8gICAgICAgICApCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWZyYW1lX2RpZyAzIC8vIG1heEV4cFllYXJzOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgljYWxsc3ViIGNhbGNFeHBpcmF0aW9uCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwODUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4OAoJLy8gcmVuZXdBbXQgPSBwYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDYgLy8gcmVuZXdBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwODkKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHJlbmV3QW10CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDkxCgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgOSAvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyAqaWY2M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwOTYKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1BBUkVOVF9JRCkgIT09IDAKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjYzX2Vsc2UKCgkvLyAqaWY2M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk3CgkvLyBwYXJlbnRBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfUEFSRU5UX0lEKSkKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk4CgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBBZGRyZXNzLmZyb21CeXRlcyhwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKSBhcyBBZGRyZXNzKQoJZnJhbWVfZGlnIDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDkgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwMwoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIHJlbmV3QW10KSAvIHJlcVByaWNlCglpbnRjIDggLy8gMzY1CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CgkqCglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDExIC8vIGV4dHJhRGF5czogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNQoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gKGV4dHJhRGF5cyAqIGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28pIC8gMzY1CglmcmFtZV9kaWcgMTEgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgOCA4CglidG9pCgkqCglpbnRjIDggLy8gMzY1CgkvCglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyAqaWY2NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMDYKCS8vIGdyb3NzVG9UcmVhc3VyeSA8IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDggOAoJYnRvaQoJPAoJYnogKmlmNjRfZW5kCgoJLy8gKmlmNjRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNwoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gY29uc3RyYWludERhdGEuc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbwoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjRfZW5kOgoJLy8gKmlmNjVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTA5CgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gcmVuZXdBbXQKCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0Cgk+PQoJYnogKmlmNjVfZW5kCgoJLy8gKmlmNjVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExMAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gcmVuZXdBbXQKCWZyYW1lX2RpZyA2IC8vIHJlbmV3QW10OiB1aW50NjQKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExMwoJLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheSA9IHJlbmV3QW10IC0gZ3Jvc3NUb1RyZWFzdXJ5CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9kaWcgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA4IC8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWY2M19lbmQKCippZjYzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTE2CgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgOCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjYzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMTgKCS8vIHRoaXMuZG9QYXlvdXRzKAoJLy8gICAgICAgICAgICAgZ3Jvc3NUb1RyZWFzdXJ5LAoJLy8gICAgICAgICAgICAgY29uc3RyYWludERhdGEudHJlYXN1cnlBZGRyZXNzLAoJLy8gICAgICAgICAgICAgMCwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyA5IC8vIHNlZ21lbnRDb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAyNCAzMgoJZnJhbWVfZGlnIDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEyNQoJLy8gdGhpcy5uZmRfcmVuZXdlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgb3JpZ093bmVyOiBvcmlnT3duZXIsCgkvLyAgICAgICAgICAgICBidXllcjogcGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICAgICAgICBwcmljZU9uZVllYXI6IHJlcVByaWNlLAoJLy8gICAgICAgICAgICAgcmVuZXdBbW91bnQ6IHBheW1lbnQuYW1vdW50LAoJLy8gICAgICAgICAgICAgZXhwVGltZTogYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpLnZhbHVlKSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDE0YTc2YTNlIC8vIG5mZF9yZW5ld2VkKHVpbnQ2NCxzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNjIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMTcgLy8gImkuZXhwaXJhdGlvblRpbWUiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc2V0UHJpbWFyeUFkZHJlc3M6CgkvLyBhZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciBzZXRQcmltYXJ5QWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHNldFByaW1hcnlBZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKc2V0UHJpbWFyeUFkZHJlc3M6Cglwcm90byAyIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTM4CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDAKCS8vIGFzc2VydChmaWVsZE5hbWUgPT09IE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCXB1c2hieXRlcyAidi5jYUFsZ28uMC5hcyIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDIKCS8vIHRoaXMuZmluZEFkZHJBbmRTZXRGaXJzdChmaWVsZE5hbWUsIGFkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogc3RyaW5nCgljYWxsc3ViIGZpbmRBZGRyQW5kU2V0Rmlyc3QKCXJldHN1YgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLHN0cmluZylib29sCiphYmlfcm91dGVfcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzKHN0cmluZyxzdHJpbmcpYm9vbAoJY2FsbHN1YiByZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcwoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcsIGZpZWxkU2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbgovLwovLyBBcHByb3ZlZCBjYWxsIGZyb20gcmVnaXN0cnkgaW5zdHJ1Y3RpbmcgdXMgdG8gbW92ZSB0aGUgc3BlY2lmaWVkIHUuY2F2Lnh4IGZpZWxkIGFuZCBhZGQgdG8gdGhlIHNwZWNpZmllZAovLyB2ZXJpZmllZCBmaWVsZC4KLy8KLy8gQHBhcmFtIGZpZWxkQmVpbmdWZXJpZmllZCAtIHt1c2VyLWRlZmluZWQgZmllbGQgdG8gJ3ZlcmlmeScgLSBieSBhZGRpbmcgdG8gc3BlY2lmaWVkIHZlcmlmaWVkIHNldAovLyBpZTogdS5jYXYuYWxnby5hIC0gdXNlci1kZWZpbmVkIHByZS12ZXJpZnl9IC0gTVVTVCBTVEFSVCB3aXRoIHUuY2F2LiAoISkKLy8gZ2V0cyAnYWRkZWQnIHRvICdzZXQnIGluIG5leHQgYXJnIC0gbXVzdCBiZSBmaXhlZC1zaXplZCBieXRlcwovLyBAcGFyYW0gZmllbGRTZXROYW1lIC0ge2ZpZWxkIHNldCBuYW1lIC0gaWU6IHYuY2FBbGdvLjAuYXMsIHYuY2FFdGguMC5hc30gKG11c3QgQkUgdi5jYVsuLi5dLmFzKQovLyBAcmV0dXJucyB0cnVlIGlmIGFkZGVkIG9yIGFscmVhZHkgcHJlc2VudCwgZmFsc2Ugb3RoZXJ3aXNlCnJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU2CgkvLyBhc3NlcnQoZ2xvYmFscy5jYWxsZXJBcHBsaWNhdGlvbklEID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksICdjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhJykKCWdsb2JhbCBDYWxsZXJBcHBsaWNhdGlvbklECglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCgk9PQoKCS8vIGNhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNTcKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU4CgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ1ZlcmlmaWVkLCAwLCA2KSA9PT0gJ3UuY2F2LicsICdmaWVsZCBiZWluZyB2ZXJpZmllZCBNVVNUIFNUQVJUIHdpdGggdS5jYXYnKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdWZXJpZmllZDogc3RyaW5nCglleHRyYWN0IDAgNgoJcHVzaGJ5dGVzIDB4NzUyZTYzNjE3NjJlIC8vICJ1LmNhdi4iCgk9PQoKCS8vIGZpZWxkIGJlaW5nIHZlcmlmaWVkIE1VU1QgU1RBUlQgd2l0aCB1LmNhdgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE1OQoJLy8gYXNzZXJ0KGV4dHJhY3QzKGZpZWxkU2V0TmFtZSwgMCwgNCkgPT09ICd2LmNhJywgJ2Rlc3RpbmF0aW9uIGZpZWxkIE1VU1QgU1RBUlQgd2l0aCB2LmNhWy4uLi5dJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gZGVzdGluYXRpb24gZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjAKCS8vIGFzc2VydChleHRyYWN0MyhmaWVsZFNldE5hbWUsIGxlbihmaWVsZFNldE5hbWUpIC0gMywgMykgPT09ICcuYXMnLCAnZGVzdGluYXRpb24gZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCglsZW4KCWludGMgNiAvLyAzCgktCglpbnRjIDYgLy8gMwoJZXh0cmFjdDMKCWJ5dGVjIDM5IC8vICAiLmFzIgoJPT0KCgkvLyBkZXN0aW5hdGlvbiBmaWVsZCBtdXN0IGVuZCBFTkQgd2l0aCAuYXMKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjEKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuYm94ZXMoZmllbGRCZWluZ1ZlcmlmaWVkKS5leGlzdHMsCgkvLyAgICAgICAgICAgICAncmVmZXJlbmNlZCBmaWVsZCB0byBhZGQgYXMgdmVyaWZpZWQgYWRkcmVzcyBtdXN0IGhhdmUgdmFsdWUgaW4gYm94IHN0b3JhZ2UnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHJlZmVyZW5jZWQgZmllbGQgdG8gYWRkIGFzIHZlcmlmaWVkIGFkZHJlc3MgbXVzdCBoYXZlIHZhbHVlIGluIGJveCBzdG9yYWdlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjcKCS8vIGZpZWxkVmFsdWUgPSB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhmaWVsZEJlaW5nVmVyaWZpZWQpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY4CgkvLyB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNzAKCS8vIHRoaXMubmZkX2FkZHJlc3NMaW5rZWQubG9nKHsKCS8vICAgICAgICAgICAgIGFwcElkOiB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgIGFkZHJlc3M6IEFkZHJlc3MuZnJvbUJ5dGVzKGZpZWxkVmFsdWUpLAoJLy8gICAgICAgICB9KQoJcHVzaGJ5dGVzIDB4Y2Y5ZDFlMjQgLy8gbmZkX2FkZHJlc3NMaW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTc2CgkvLyByZXR1cm4gdGhpcy5hZGRCeXRlc1RvU2V0KGZpZWxkU2V0TmFtZSwgZmllbGRWYWx1ZSkKCWZyYW1lX2RpZyAwIC8vIGZpZWxkVmFsdWU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCgljYWxsc3ViIGFkZEJ5dGVzVG9TZXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsYWRkcmVzcyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9yZWdpc3RyeVJlbW92aW5nVmVyaWZpZWRBZGRyZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gbWJyUmVmdW5kRGVzdDogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJSZWZ1bmREZXN0KSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhZGRyZXNzKSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLGFkZHJlc3MsYWRkcmVzcylib29sCgljYWxsc3ViIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MKCWJ5dGVjIDI5IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcywgbWJyUmVmdW5kRGVzdDogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQXBwcm92ZWQgY2FsbCBmcm9tIHJlZ2lzdHJ5IGluc3RydWN0aW5nIHVzIHRvIFJFTU9WRSBhbiBhZGRyZXNzIGZyb20gdGhlIHNwZWNpZmllZCB2ZXJpZmllZCBhZGRyZXNzIHNldAovLwovLyBAcGFyYW0ge3N0cmluZ30gZmllbGRCZWluZ0NoYW5nZWQgLSBUaGUgZmllbGQgYmVpbmcgY2hhbmdlZCBpbiB0aGUgYWRkcmVzcyByZWdpc3RyeS4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBmaWVsZC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBtYnJSZWZ1bmREZXN0IC0gdGhlIGFkZHJlc3MgdG8gc2VuZCByZWNsYWltZWQgTUJSIChpZiBhbnkpCi8vIEByZXR1cm4ge2Jvb2xlYW59IC0gdHJ1ZSBpZiB2YWxpZCByZW1vdmVkCnJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3M6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE4OAoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyAqaWY2Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTAKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNjZfZW5kCgoJLy8gKmlmNjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE5MQoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoqaWY2Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTkzCgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ0NoYW5nZWQsIDAsIDQpID09PSAndi5jYScsICd2ZXJpZmllZCBmaWVsZCBNVVNUIFNUQVJUIHdpdGggdi5jYVsuLi4uXScpCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTQKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGV4dHJhY3QzKGZpZWxkQmVpbmdDaGFuZ2VkLCBsZW4oZmllbGRCZWluZ0NoYW5nZWQpIC0gMywgMykgPT09ICcuYXMnLAoJLy8gICAgICAgICAgICAgJ3ZlcmlmaWVkIGZpZWxkIG11c3QgZW5kIEVORCB3aXRoIC5hcycsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJbGVuCglpbnRjIDYgLy8gMwoJLQoJaW50YyA2IC8vIDMKCWV4dHJhY3QzCglieXRlYyAzOSAvLyAgIi5hcyIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTk4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDAKCS8vIGV4aXN0aW5nU2l6ZSA9IHRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLnNpemUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkQmVpbmdDaGFuZ2VkKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBleGlzdGluZ1NpemU6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDEKCS8vIHJlbW92ZWQgPSB0aGlzLnJlbW92ZUFkZHJGcm9tU2V0KGZpZWxkQmVpbmdDaGFuZ2VkLCBhZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCgljYWxsc3ViIHJlbW92ZUFkZHJGcm9tU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZDogYm9vbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDMKCS8vIHRoaXMubmZkX2FkZHJlc3NVbmxpbmtlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgYWRkcmVzczogYWRkcmVzcywKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGE0ZDNiOWE3IC8vIG5mZF9hZGRyZXNzVW5saW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoKCS8vICppZjY3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIwOQoJLy8gIXRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNjdfZW5kCgoJLy8gKmlmNjdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgIGFtb3VudDogU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChmaWVsZEJlaW5nQ2hhbmdlZC5sZW5ndGggKyBleGlzdGluZ1NpemUpLAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBtYnJSZWZ1bmREZXN0LAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMgoJLy8gYW1vdW50OiBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGZpZWxkQmVpbmdDaGFuZ2VkLmxlbmd0aCArIGV4aXN0aW5nU2l6ZSkKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWxlbgoJZnJhbWVfZGlnIDAgLy8gZXhpc3RpbmdTaXplOiB1aW50NjQKCSsKCSoKCSsKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMwoJLy8gcmVjZWl2ZXI6IG1iclJlZnVuZERlc3QKCWZyYW1lX2RpZyAtMyAvLyBtYnJSZWZ1bmREZXN0OiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxNAoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNjdfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxOAoJLy8gcmV0dXJuIHJlbW92ZWQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWQ6IGJvb2wKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGdldFJlbmV3UHJpY2VEYXRhKGNhbGxlcjogQWRkcmVzcyk6IFByaWNlSW5mbwovLwovLyBSZXRyaWV2ZXMgdGhlIHJlbmV3IHByaWNlIGRhdGEgZm9yIGEgZ2l2ZW4gc2VuZGVyIGFkZHJlc3MuCi8vCi8vIEBwYXJhbSBjYWxsZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc2VuZGVyLgovLyBAcmV0dXJucyB7UHJpY2VJbmZvfQpnZXRSZW5ld1ByaWNlRGF0YToKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMjkKCS8vIHJldHVybiBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZEUmVnaXN0cnkucHJvdG90eXBlLmdldFByaWNlPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmZmMyMzAzYyAvLyBtZXRob2QgImdldFByaWNlKHN0cmluZyxhZGRyZXNzKSh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIzMAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjMxCgkvLyBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTEgLy8gY2FsbGVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJcmV0c3ViCgovLyB2YXVsdE9wdEluRnJvbUFyZ3MoKTogdm9pZAp2YXVsdE9wdEluRnJvbUFyZ3M6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0MgoJLy8gdGhpcy5ub3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgbm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vICppZjY4X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0NgoJLy8gdGhpcy5pc1ZhdWx0QXV0b09wdEluTG9ja2VkKCkKCWNhbGxzdWIgaXNWYXVsdEF1dG9PcHRJbkxvY2tlZAoJYnogKmlmNjhfZW5kCgoJLy8gKmlmNjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0NwoJLy8gYXNzZXJ0KHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY2OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUwCgkvLyBhc3NlcnQodGhpcy50eG4uZ3JvdXBJbmRleCA+IDAsICdwYXJ0IG9mIG9wdC1pbiBmb3IgbmV3IGFzc2V0LCBtdXN0IGhhdmUgcHJpb3IgdHhuIHBheWluZyBNQlInKQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMCAvLyAwCgk+CgoJLy8gcGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUyCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCS0KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjU2CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTYKCS8vIGkgPCB0aGlzLnR4bi5udW1BcHBBcmdzCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCXR4biBOdW1BcHBBcmdzCgk8CglieiAqZm9yXzhfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI1NwoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbaV0pKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cgl0eG5hcyBBcHBsaWNhdGlvbkFyZ3MKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBhc3NldElkOiB1aW50NjQKCgkvLyAqaWY2OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTkKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY2OV9lbmQKCgkvLyAqaWY2OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjYwCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICAgICAgICAgIHhmZXJBc3NldDogYXNzZXRJZCwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTAgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MQoJLy8geGZlckFzc2V0OiBhc3NldElkCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MgoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNjMKCS8vIGFzc2V0QW1vdW50OiAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjY5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTYKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzgKCipmb3JfOF9lbmQ6CglyZXRzdWIKCi8vIHNhZmVHbG9iYWxCeXRlR2V0KGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldDoKCXByb3RvIDEgMQoKCS8vICppZjcwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI3MAoJLy8gIXRoaXMuZ2xvYmFsU3RhdGUoa2V5KS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MF9lbmQKCgkvLyAqaWY3MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjcxCgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNzMKCS8vIHJldHVybiB0aGlzLmdsb2JhbFN0YXRlKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBzYWZlR2xvYmFsQnl0ZUdldEV4KGFwcElkOiB1aW50NjQsIGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldEV4OgoJcHJvdG8gMiAxCgoJLy8gKmlmNzFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc3CgkvLyAhQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGVFeGlzdHMoa2V5KQoJZnJhbWVfZGlnIC0xIC8vIGFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MV9lbmQKCgkvLyAqaWY3MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc4CgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODAKCS8vIHJldHVybiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpIGFzIGJ5dGVzCglmcmFtZV9kaWcgLTEgLy8gYXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGtleTogYnl0ZXMKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpCglhc3NlcnQKCXJldHN1YgoKLy8gc2FmZUdsb2JhbEludEdldChrZXk6IGJ5dGVzKTogdWludDY0CnNhZmVHbG9iYWxJbnRHZXQ6Cglwcm90byAxIDEKCgkvLyAqaWY3Ml9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODQKCS8vICF0aGlzLmdsb2JhbFN0YXRlKGtleSkuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYnogKmlmNzJfZW5kCgoJLy8gKmlmNzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI4NQoJLy8gcmV0dXJuIDAKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjcyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODcKCS8vIHJldHVybiBidG9pKHRoaXMuZ2xvYmFsU3RhdGUoa2V5KS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpOiBib29sZWFuCmlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5OgoJcHJvdG8gMCAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI5MwoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5hc3NldEJhbGFuY2UodGhpcy5hZG1pbkFzYUlkKSA9PT0gMQoJdHhuIFNlbmRlcgoJaW50YyAyMCAvLyBUTVBMX2FkbWluQXNhSWQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglpbnRjIDEgLy8gMQoJPT0KCXJldHN1YgoKLy8gaXNGaWVsZERlbGV0ZUFsbG93ZWQoZmllbGROYW1lOiBieXRlcywgYWRtaW5SaWdodHM6IGJvb2xlYW4pOiBib29sZWFuCmlzRmllbGREZWxldGVBbGxvd2VkOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzExCgkvLyB0cnVzdFR5cGUgPSBleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDIpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDIKCWZyYW1lX2J1cnkgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMTMKCS8vIGFzc2VydCghdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKSwgJ2ludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgZGVsZXRlZCcpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ludGVybmFsRmllbGQKCSEKCgkvLyBpbnRlcm5hbCBmaWVsZHMgY2FuIG5ldmVyIGJlIGRlbGV0ZWQKCWFzc2VydAoKCS8vICppZjczX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxNgoJLy8gYWRtaW5SaWdodHMKCWZyYW1lX2RpZyAtMiAvLyBhZG1pblJpZ2h0czogYm9vbGVhbgoJYnogKmlmNzNfZW5kCgoJLy8gKmlmNzNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxNwoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkRGVsZXRlQWxsb3dlZCpyZXR1cm4KCippZjczX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjAKCS8vIGFzc2VydChsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKSkgPT09IDMyLCAnbXVzdCBiZSBvd25lZCcpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBtdXN0IGJlIG93bmVkCglhc3NlcnQKCgkvLyAqaWY3NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjIKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNzRfZW5kCgoJLy8gKmlmNzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyMwoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyNAoJLy8gdGhpcy5tdXN0QmVDYWxsZWRCeU93bmVyKCkKCWNhbGxzdWIgbXVzdEJlQ2FsbGVkQnlPd25lcgoKKmlmNzRfZW5kOgoJLy8gKmlmNzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI3CgkvLyB0aGlzLmlzVXNlckZpZWxkKHRydXN0VHlwZSkKCWZyYW1lX2RpZyAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgljYWxsc3ViIGlzVXNlckZpZWxkCglieiAqaWY3NV9lbmQKCgkvLyAqaWY3NV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI4CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmlzRmllbGREZWxldGVBbGxvd2VkKnJldHVybgoKKmlmNzVfZW5kOgoJLy8gKmlmNzZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzMwCgkvLyB0aGlzLmlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGUpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc1ZlcmlmaWVkRmllbGQKCWJ6ICppZjc2X2VuZAoKCS8vICppZjc2X2NvbnNlcXVlbnQKCS8vICppZjc3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMzMwoJLy8gbGVuKGZpZWxkTmFtZSkgPCA4CglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJbGVuCglpbnRjIDUgLy8gOAoJPAoJYnogKmlmNzdfZW5kCgoJLy8gKmlmNzdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMzNQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkRGVsZXRlQWxsb3dlZCpyZXR1cm4KCippZjc3X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMzcKCS8vIHJldHVybiBleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDgpICE9PSAndi5jYUFsZ28nCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDgKCWJ5dGVjIDMzIC8vICAidi5jYUFsZ28iCgkhPQoJYiAqaXNGaWVsZERlbGV0ZUFsbG93ZWQqcmV0dXJuCgoqaWY3Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzM5CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqaXNGaWVsZERlbGV0ZUFsbG93ZWQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzRmllbGRVcGRhdGVBbGxvd2VkKG5hbWU6IGJ5dGVzLCB2YWx1ZTogYnl0ZXMsIGFkbWluUmlnaHRzOiBib29sZWFuKTogYm9vbGVhbgppc0ZpZWxkVXBkYXRlQWxsb3dlZDoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU1CgkvLyB0cnVzdFR5cGUgPSBleHRyYWN0MyhuYW1lLCAwLCAyKQoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IGJ5dGVzCglleHRyYWN0IDAgMgoJZnJhbWVfYnVyeSAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1NwoJLy8gYXNzZXJ0KCF0aGlzLmlzSW50ZXJuYWxGaWVsZCh0cnVzdFR5cGUpLCAnaW50ZXJuYWwgZmllbGRzIGNhbiBuZXZlciBiZSB1cGRhdGVkJykKCWZyYW1lX2RpZyAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgljYWxsc3ViIGlzSW50ZXJuYWxGaWVsZAoJIQoKCS8vIGludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgdXBkYXRlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1OAoJLy8gaXNVc2VyRmllbGQgPSB0aGlzLmlzVXNlckZpZWxkKHRydXN0VHlwZSkKCWZyYW1lX2RpZyAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgljYWxsc3ViIGlzVXNlckZpZWxkCglmcmFtZV9idXJ5IDEgLy8gaXNVc2VyRmllbGQ6IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU5CgkvLyBpc1ZlcmlmaWVkRmllbGQgPSB0aGlzLmlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGUpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc1ZlcmlmaWVkRmllbGQKCWZyYW1lX2J1cnkgMiAvLyBpc1ZlcmlmaWVkRmllbGQ6IGJvb2wKCgkvLyAqaWY3OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjEKCS8vIGFkbWluUmlnaHRzICYmIChpc1ZlcmlmaWVkRmllbGQgfHwgKGlzVXNlckZpZWxkICYmIGxlbih2YWx1ZSkgPT09IDApKQoJZnJhbWVfZGlnIC0zIC8vIGFkbWluUmlnaHRzOiBib29sZWFuCglkdXAKCWJ6ICpza2lwX2FuZDE3CglmcmFtZV9kaWcgMiAvLyBpc1ZlcmlmaWVkRmllbGQ6IGJvb2wKCWR1cAoJYm56ICpza2lwX29yMwoJZnJhbWVfZGlnIDEgLy8gaXNVc2VyRmllbGQ6IGJvb2wKCWR1cAoJYnogKnNraXBfYW5kMTgKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZTogYnl0ZXMKCWxlbgoJaW50YyAwIC8vIDAKCT09CgkmJgoKKnNraXBfYW5kMTg6Cgl8fAoKKnNraXBfb3IzOgoJJiYKCipza2lwX2FuZDE3OgoJYnogKmlmNzhfZW5kCgoJLy8gKmlmNzhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2MgoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkVXBkYXRlQWxsb3dlZCpyZXR1cm4KCippZjc4X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjUKCS8vIGFzc2VydChsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKSkgPT09IDMyLCAnbXVzdCBiZSBvd25lZCcpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBtdXN0IGJlIG93bmVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzY2CgkvLyBhc3NlcnQoIXRoaXMuaXNGb3JTYWxlKCksICJjYW4ndCBiZSBmb3Igc2FsZSIpCgljYWxsc3ViIGlzRm9yU2FsZQoJIQoKCS8vIGNhbid0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzY3CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwgJ3NlbmRlciBtdXN0IGJlIG93bmVyJykKCXR4biBTZW5kZXIKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyCglhc3NlcnQKCgkvLyAqaWY3OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjkKCS8vIGlzVXNlckZpZWxkCglmcmFtZV9kaWcgMSAvLyBpc1VzZXJGaWVsZDogYm9vbAoJYnogKmlmNzlfZW5kCgoJLy8gKmlmNzlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM3MAoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkVXBkYXRlQWxsb3dlZCpyZXR1cm4KCippZjc5X2VuZDoKCS8vICppZjgwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM3MwoJLy8gbGVuKG5hbWUpID4gOAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IGJ5dGVzCglsZW4KCWludGMgNSAvLyA4Cgk+CglieiAqaWY4MF9lbmQKCgkvLyAqaWY4MF9jb25zZXF1ZW50CgkvLyAqaWY4MV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNzQKCS8vIGV4dHJhY3QzKG5hbWUsIDAsIDgpID09PSAndi5jYUFsZ28nCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogYnl0ZXMKCWV4dHJhY3QgMCA4CglieXRlYyAzMyAvLyAgInYuY2FBbGdvIgoJPT0KCWJ6ICppZjgxX2VuZAoKCS8vICppZjgxX2NvbnNlcXVlbnQKCS8vIHVwZGF0aW5nIHYuY2FBbGdvIGZpZWxkIGlzbid0IGFsbG93ZWQgdmlhIHJlZ3VsYXIgZmllbGQgdXBkYXRlCgllcnIKCippZjgxX2VuZDoKCippZjgwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNzkKCS8vIHJldHVybiBpc1ZlcmlmaWVkRmllbGQgJiYgbGVuKHZhbHVlKSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gaXNWZXJpZmllZEZpZWxkOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDE5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IGJ5dGVzCglsZW4KCWludGMgMCAvLyAwCgk9PQoJJiYKCipza2lwX2FuZDE5OgoKKmlzRmllbGRVcGRhdGVBbGxvd2VkKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gaXNJbnRlcm5hbEZpZWxkKHRydXN0VHlwZTogc3RyaW5nKTogYm9vbGVhbgppc0ludGVybmFsRmllbGQ6Cglwcm90byAxIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzg0CgkvLyByZXR1cm4gdHJ1c3RUeXBlID09PSAnaS4nCglmcmFtZV9kaWcgLTEgLy8gdHJ1c3RUeXBlOiBzdHJpbmcKCXB1c2hieXRlcyAweDY5MmUgLy8gImkuIgoJPT0KCXJldHN1YgoKLy8gaXNVc2VyRmllbGQodHJ1c3RUeXBlOiBzdHJpbmcpOiBib29sZWFuCmlzVXNlckZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM4OQoJLy8gcmV0dXJuIHRydXN0VHlwZSA9PT0gJ3UuJwoJZnJhbWVfZGlnIC0xIC8vIHRydXN0VHlwZTogc3RyaW5nCglwdXNoYnl0ZXMgMHg3NTJlIC8vICJ1LiIKCT09CglyZXRzdWIKCi8vIGlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGU6IHN0cmluZyk6IGJvb2xlYW4KaXNWZXJpZmllZEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM5NAoJLy8gcmV0dXJuIHRydXN0VHlwZSA9PT0gJ3YuJwoJZnJhbWVfZGlnIC0xIC8vIHRydXN0VHlwZTogc3RyaW5nCglwdXNoYnl0ZXMgMHg3NjJlIC8vICJ2LiIKCT09CglyZXRzdWIKCi8vIGlzRm9yU2FsZSgpOiBib29sZWFuCmlzRm9yU2FsZToKCXByb3RvIDAgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzOTgKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9TRUxMX0FNT1VOVCkgIT09IDAKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJaW50YyAwIC8vIDAKCSE9CglyZXRzdWIKCi8vIGlzRXhwaXJlZCgpOiBib29sZWFuCmlzRXhwaXJlZDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQwMwoJLy8gZXhwVGltZSA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX0VYUElSQVRJT05USU1FKQoJYnl0ZWMgMTcgLy8gImkuZXhwaXJhdGlvblRpbWUiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWZyYW1lX2J1cnkgMCAvLyBleHBUaW1lOiB1aW50NjQKCgkvLyAqaWY4Ml9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MDQKCS8vIGV4cFRpbWUgPT09IDAKCWZyYW1lX2RpZyAwIC8vIGV4cFRpbWU6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY4Ml9lbmQKCgkvLyAqaWY4Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDA2CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgliICppc0V4cGlyZWQqcmV0dXJuCgoqaWY4Ml9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDA4CgkvLyByZXR1cm4gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPiBleHBUaW1lCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9kaWcgMCAvLyBleHBUaW1lOiB1aW50NjQKCT4KCippc0V4cGlyZWQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzVmF1bHRBdXRvT3B0SW5Mb2NrZWQoKTogYm9vbGVhbgppc1ZhdWx0QXV0b09wdEluTG9ja2VkOgoJcHJvdG8gMCAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxNwoJLy8gcmV0dXJuIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9JU1ZBVUxUT1BUSU5MT0NLRUQpID09PSAnMScKCWJ5dGVjIDIwIC8vICJpLnZhdWx0T3B0SW5Mb2NrZWQiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglieXRlYyAxNSAvLyAgIjEiCgk9PQoJcmV0c3ViCgovLyBhc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQoKTogdm9pZAphc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQ6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIxCgkvLyB0aGlzLm11c3RCZUNhbGxlZEJ5T3duZXIoKQoJY2FsbHN1YiBtdXN0QmVDYWxsZWRCeU93bmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyMgoJLy8gdGhpcy5ub3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgbm90Rm9yU2FsZU9yRXhwaXJlZAoJcmV0c3ViCgovLyBub3RGb3JTYWxlT3JFeHBpcmVkKCk6IHZvaWQKbm90Rm9yU2FsZU9yRXhwaXJlZDoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MjYKCS8vIGFzc2VydCghdGhpcy5pc0ZvclNhbGUoKSwgImNhbid0IGJlIGZvciBzYWxlIikKCWNhbGxzdWIgaXNGb3JTYWxlCgkhCgoJLy8gY2FuJ3QgYmUgZm9yIHNhbGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MjcKCS8vIGFzc2VydCghdGhpcy5pc0V4cGlyZWQoKSwgImNhbid0IGJlIGV4cGlyZWQiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBjYW4ndCBiZSBleHBpcmVkCglhc3NlcnQKCXJldHN1YgoKLy8gbm9QZXJpb2RCZWZvcmVJbmRleChuYW1lOiBzdHJpbmcsIHN0b3BJbmRleDogdWludDY0KTogYm9vbGVhbgpub1BlcmlvZEJlZm9yZUluZGV4OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHN0b3BJbmRleDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfOToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MzIKCS8vIGkgPCBzdG9wSW5kZXgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHN0b3BJbmRleDogdWludDY0Cgk8CglieiAqZm9yXzlfZW5kCgoJLy8gKmlmODNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDMzCgkvLyBleHRyYWN0MyhuYW1lLCBpLCAxKSA9PT0gJy4nCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCglleHRyYWN0MwoJYnl0ZWMgMjggLy8gICIuIgoJPT0KCWJ6ICppZjgzX2VuZAoKCS8vICppZjgzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MzQKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCWIgKm5vUGVyaW9kQmVmb3JlSW5kZXgqcmV0dXJuCgoqaWY4M19lbmQ6CgoqZm9yXzlfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDMyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl85CgoqZm9yXzlfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQzNwoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgoqbm9QZXJpb2RCZWZvcmVJbmRleCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY2FsY0V4cGlyYXRpb24ocmVuZXdhbFByaWNlOiB1aW50NjQsIGFtdFBhaWQ6IHVpbnQ2NCwgY3VyVGltZTogdWludDY0LCBtYXhZZWFyc0FsbG93ZWQ6IHVpbnQ2NCk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGVzIHRoZSBuZXcgZXhwaXJhdGlvbiB0aW1lIGJhc2VkIG9uIHRoZSByZW5ld2FsIHByaWNlLCBhbW91bnQgcGFpZCwgY3VycmVudCB0aW1lLCBhbmQgbWF4aW11bSB5ZWFycyBhbGxvd2VkLgovLwovLyBAcGFyYW0gcmVuZXdhbFByaWNlIC0gVGhlIHByaWNlIGZvciByZW5ld2luZyB0aGUgZXhwaXJhdGlvbi4KLy8gQHBhcmFtIGFtdFBhaWQgLSBUaGUgYW1vdW50IHBhaWQgZm9yIHRoZSByZW5ld2FsLgovLyBAcGFyYW0gY3VyVGltZSAtIFRoZSBjdXJyZW50IHRpbWUgaW4gdW5peCB0aW1lIHNlY29uZHMuCi8vIEBwYXJhbSBtYXhZZWFyc0FsbG93ZWQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgeWVhcnMgYWxsb3dlZCBmb3IgdGhlIGV4cGlyYXRpb24uCi8vCi8vIEByZXR1cm4gVGhlIG5ldyBleHBpcmF0aW9uIHRpbWUgaW4gdW5peHRpbWUgc2Vjb25kcwpjYWxjRXhwaXJhdGlvbjoKCXByb3RvIDQgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDUxCgkvLyBleHRyYVNlY29uZHMgPSAoMzY1ICogYW10UGFpZCAqIFNFQ1NfSU5fREFZKSAvIHJlbmV3YWxQcmljZQoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIC0yIC8vIGFtdFBhaWQ6IHVpbnQ2NAoJKgoJaW50YyAxNCAvLyA4NjQwMAoJKgoJZnJhbWVfZGlnIC0xIC8vIHJlbmV3YWxQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDAgLy8gZXh0cmFTZWNvbmRzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDUyCgkvLyBuZXdFeHBpcmF0aW9uID0gY3VyVGltZSArIGV4dHJhU2Vjb25kcwoJZnJhbWVfZGlnIC0zIC8vIGN1clRpbWU6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gZXh0cmFTZWNvbmRzOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBuZXdFeHBpcmF0aW9uOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDU0CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICBuZXdFeHBpcmF0aW9uIDw9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wICsgMzY1ICogbWF4WWVhcnNBbGxvd2VkICogU0VDU19JTl9EQVksCgkvLyAgICAgICAgICAgICAnbWF4IGV4cGlyYXRpb24gZXhjZWVkZWQgcGFyYW1ldGVycyBkZWZpbmVkIGJ5IHJlZ2lzdHJ5JywKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDEgLy8gbmV3RXhwaXJhdGlvbjogdWludDY0CglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpbnRjIDggLy8gMzY1CglmcmFtZV9kaWcgLTQgLy8gbWF4WWVhcnNBbGxvd2VkOiB1aW50NjQKCSoKCWludGMgMTQgLy8gODY0MDAKCSoKCSsKCTw9CgoJLy8gbWF4IGV4cGlyYXRpb24gZXhjZWVkZWQgcGFyYW1ldGVycyBkZWZpbmVkIGJ5IHJlZ2lzdHJ5Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDU4CgkvLyByZXR1cm4gbmV3RXhwaXJhdGlvbgoJZnJhbWVfZGlnIDEgLy8gbmV3RXhwaXJhdGlvbjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBwb3cxMChkZWNpbWFsczogdWludDY0KTogdWludDY0CnBvdzEwOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NjIKCS8vIGV4cFJlc3VsdCA9IGV4cHcoMTAsIGRlY2ltYWxzKQoJaW50YyAxMSAvLyAxMAoJZnJhbWVfZGlnIC0xIC8vIGRlY2ltYWxzOiB1aW50NjQKCWV4cHcKCWZyYW1lX2J1cnkgMCAvLyBleHBSZXN1bHQgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBleHBSZXN1bHQgaGlnaDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ2MwoJLy8gcmV0dXJuIGV4cFJlc3VsdC5sb3cKCWZyYW1lX2RpZyAwIC8vIGV4cFJlc3VsdCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gY2xhd0FzYUZyb21Ubyhmcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzcyk6IHZvaWQKY2xhd0FzYUZyb21UbzoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDY5CgkvLyBmcm9tQmFsYW5jZSA9IGZyb20uYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9BU0FJRCkudmFsdWUpKSkKCWZyYW1lX2RpZyAtMSAvLyBmcm9tOiBBZGRyZXNzCglieXRlYyAxOCAvLyAiaS5hc2FpZCIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIGZyb21CYWxhbmNlOiB1aW50NjQKCgkvLyAqaWY4NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NzEKCS8vIGZyb21CYWxhbmNlICE9PSAwCglmcmFtZV9kaWcgMCAvLyBmcm9tQmFsYW5jZTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjg0X2Vsc2UKCgkvLyAqaWY4NF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDcyCgkvLyBzZW5kRnJvbSA9IGZyb20KCWZyYW1lX2RpZyAtMSAvLyBmcm9tOiBBZGRyZXNzCglmcmFtZV9idXJ5IDEgLy8gc2VuZEZyb206IEFkZHJlc3MKCWIgKmlmODRfZW5kCgoqaWY4NF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ3NQoJLy8gc2VuZEZyb20gPSB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSAxIC8vIHNlbmRGcm9tOiBBZGRyZXNzCgoqaWY4NF9lbmQ6CgkvLyAqaWY4NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NzcKCS8vIHNlbmRGcm9tID09PSB0bwoJZnJhbWVfZGlnIDEgLy8gc2VuZEZyb206IEFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB0bzogQWRkcmVzcwoJPT0KCWJ6ICppZjg1X2VuZAoKCS8vICppZjg1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NzgKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY4NV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDgwCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9BU0FJRCkudmFsdWUpKSwKCS8vICAgICAgICAgICAgIGFzc2V0QW1vdW50OiAxLAoJLy8gICAgICAgICAgICAgc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYXNzZXRTZW5kZXI6IHNlbmRGcm9tLAoJLy8gICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogdG8sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEwIC8vICBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0ODEKCS8vIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkpCglieXRlYyAxOCAvLyAiaS5hc2FpZCIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0ODIKCS8vIGFzc2V0QW1vdW50OiAxCglpbnRjIDEgLy8gMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0ODMKCS8vIHNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgU2VuZGVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ4NAoJLy8gYXNzZXRTZW5kZXI6IHNlbmRGcm9tCglmcmFtZV9kaWcgMSAvLyBzZW5kRnJvbTogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFNlbmRlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0ODUKCS8vIGFzc2V0UmVjZWl2ZXI6IHRvCglmcmFtZV9kaWcgLTIgLy8gdG86IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZmluZEFkZHJJbkJ5dGVzKGJ5dGVzT2ZTZXQ6IGJ5dGVzLCBhZGRyZXNzOiBBZGRyZXNzKTogYm9vbGVhbgovLwovLyBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBhZGRyZXNzIGlzIHByZXNlbnQgd2l0aGluIHRoZSBnaXZlbiBzZXQgb2YgYnl0ZXMuCi8vCi8vIEBwYXJhbSB7Ynl0ZXN9IGJ5dGVzT2ZTZXQgLSBUaGUgc2V0IG9mIGJ5dGVzIHRvIHNlYXJjaCB0aHJvdWdoLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byBmaW5kIHdpdGhpbiB0aGUgc2V0IG9mIGJ5dGVzLgovLyBAcmV0dXJuIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyBmb3VuZCBpbiB0aGUgYnl0ZXMsIG90aGVyd2lzZSBmYWxzZS4KZmluZEFkZHJJbkJ5dGVzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0OTcKCS8vIGxpbWl0ID0gYnl0ZXNPZlNldC5sZW5ndGggLyAzMgoJZnJhbWVfZGlnIC0xIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVzCglsZW4KCWludGMgMyAvLyAzMgoJLwoJZnJhbWVfYnVyeSAwIC8vIGxpbWl0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDk4CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGxpbWl0OyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8xMDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0OTgKCS8vIGkgPCBsaW1pdAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBsaW1pdDogdWludDY0Cgk8CglieiAqZm9yXzEwX2VuZAoKCS8vICppZjg2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ5OQoJLy8gZXh0cmFjdDMoYnl0ZXNPZlNldCwgaSAqIDMyLCAzMikgPT09IHJhd0J5dGVzKGFkZHJlc3MpCglmcmFtZV9kaWcgLTEgLy8gYnl0ZXNPZlNldDogYnl0ZXMKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDMyCgkqCglpbnRjIDMgLy8gMzIKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJPT0KCWJ6ICppZjg2X2VuZAoKCS8vICppZjg2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDAKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqZmluZEFkZHJJbkJ5dGVzKnJldHVybgoKKmlmODZfZW5kOgoKKmZvcl8xMF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0OTgKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEwCgoqZm9yXzEwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDMKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCipmaW5kQWRkckluQnl0ZXMqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBmaW5kQWRkckFuZFNldEZpcnN0KGtleTogYnl0ZXMsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmZpbmRBZGRyQW5kU2V0Rmlyc3Q6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUwOAoJLy8gYnl0ZXNPZlNldCA9IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxMAoJLy8gYXNzZXJ0KGFkZHJlc3MgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxMgoJLy8gYXNzZXJ0KGJ5dGVzT2ZTZXQubGVuZ3RoID49IDY0LCAiYWRkcmVzcyAnc2V0JyBzaG91bGQgYWxyZWFkeSBoYXZlIGF0IGxlYXN0IHR3byB2YWx1ZXMiKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCXB1c2hpbnQgNjQKCT49CgoJLy8gYWRkcmVzcyAnc2V0JyBzaG91bGQgYWxyZWFkeSBoYXZlIGF0IGxlYXN0IHR3byB2YWx1ZXMKCWFzc2VydAoKCS8vICppZjg3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNQoJLy8gZXh0cmFjdDMoYnl0ZXNPZlNldCwgMCwgMzIpID09PSByYXdCeXRlcyhhZGRyZXNzKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCgk9PQoJYnogKmlmODdfZW5kCgoJLy8gKmlmODdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNgoJLy8gcmV0dXJuCglyZXRzdWIKCippZjg3X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MTkKCS8vIGxpbWl0ID0gYnl0ZXNPZlNldC5sZW5ndGggLyAzMgoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCWludGMgMyAvLyAzMgoJLwoJZnJhbWVfYnVyeSAxIC8vIGxpbWl0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTIwCgkvLyBmb3VuZFNsb3QgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kU2xvdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUyMgoJLy8gZm9yIChsZXQgaSA9IDE7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMyAvLyBpOiB1aW50NjQKCipmb3JfMTE6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTIyCgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xMV9lbmQKCgkvLyAqaWY4OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjMKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGkgKiAzMiwgMzIpID09PSByYXdCeXRlcyhhZGRyZXNzKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJaW50YyAzIC8vIDMyCglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCT09CglieiAqaWY4OF9lbmQKCgkvLyAqaWY4OF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTI0CgkvLyBmb3VuZFNsb3QgPSBpCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWZyYW1lX2J1cnkgMiAvLyBmb3VuZFNsb3Q6IHVpbnQ2NAoJYiAqZm9yXzExX2VuZAoKKmlmODhfZW5kOgoKKmZvcl8xMV9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzExCgoqZm9yXzExX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjgKCS8vIGFzc2VydChmb3VuZFNsb3QgIT09IDAsICdhZGRyZXNzIG11c3QgYmUgZm91bmQgaW4gc2V0IGluIG9yZGVyIHRvIG1vdmUgaXQnKQoJZnJhbWVfZGlnIDIgLy8gZm91bmRTbG90OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGFkZHJlc3MgbXVzdCBiZSBmb3VuZCBpbiBzZXQgaW4gb3JkZXIgdG8gbW92ZSBpdAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUzMAoJLy8gYWRkcmVzc0F0RnJvbnQgPSBleHRyYWN0MyhieXRlc09mU2V0LCAwLCAzMikKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZXh0cmFjdCAwIDMyCglmcmFtZV9idXJ5IDQgLy8gYWRkcmVzc0F0RnJvbnQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MzIKCS8vIGJ5dGVzT2ZTZXQgPSByZXBsYWNlMyhieXRlc09mU2V0LCAwLCBhZGRyZXNzKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUzNAoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gcmVwbGFjZTMoYnl0ZXNPZlNldCwgZm91bmRTbG90ICogMzIsIGFkZHJlc3NBdEZyb250KQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDIgLy8gZm91bmRTbG90OiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJZnJhbWVfZGlnIDQgLy8gYWRkcmVzc0F0RnJvbnQ6IGJ5dGVbXQoJcmVwbGFjZTMKCWJveF9wdXQKCXJldHN1YgoKLy8gYWRkQnl0ZXNUb1NldChrZXk6IGJ5dGVzLCBieXRlc1ZhbDogYnl0ZXMpOiBib29sZWFuCi8vCi8vIEFkZHMgYnl0ZXMgdG8gYSBzZXQgaWRlbnRpZmllZCBieSB0aGUgZ2l2ZW4ga2V5LgovLwovLyBAcGFyYW0ge2J5dGVzfSBrZXkgLSBUaGUga2V5IHRvIGlkZW50aWZ5IHRoZSBzZXQuCi8vIEBwYXJhbSB7Ynl0ZXN9IGJ5dGVzVmFsIC0gVGhlIGJ5dGVzIHRvIGJlIGFkZGVkIHRvIHRoZSBzZXQuCi8vIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgdGhlIGJ5dGVzIHdlcmUgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIHRoZSBzZXQsIGZhbHNlIG90aGVyd2lzZS4KYWRkQnl0ZXNUb1NldDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDUKCgkvLyAqaWY4OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NDUKCS8vICF0aGlzLmJveGVzKGtleSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY4OV9lbmQKCgkvLyAqaWY4OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ3CgkvLyB0aGlzLmJveGVzKGtleSkudmFsdWUgPSBieXRlc1ZhbAoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ4CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY4OV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTUwCgkvLyBzaXplT2ZLZXkgPSBsZW4oYnl0ZXNWYWwpCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCglsZW4KCWZyYW1lX2J1cnkgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTEKCS8vIHplcm9LZXkgPSBiemVybyhzaXplT2ZLZXkpCglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJYnplcm8KCWZyYW1lX2J1cnkgMSAvLyB6ZXJvS2V5OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTUyCgkvLyBieXRlc09mU2V0ID0gdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBieXRlc09mU2V0OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTUzCgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gc2l6ZU9mS2V5CglmcmFtZV9kaWcgMiAvLyBieXRlc09mU2V0OiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMyAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1NQoJLy8gYXNzZXJ0KGxlbihieXRlc1ZhbCkgJSBzaXplT2ZLZXkgPT09IDAsICdleGlzdGluZyBzZXQgbXVzdCBiZSBtdWx0aXBsZSBvZiBrZXkgYmVpbmcgYWRkZWQnKQoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJbGVuCglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJJQoJaW50YyAwIC8vIDAKCT09CgoJLy8gZXhpc3Rpbmcgc2V0IG11c3QgYmUgbXVsdGlwbGUgb2Yga2V5IGJlaW5nIGFkZGVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU2CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGxpbWl0OyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA0IC8vIGk6IHVpbnQ2NAoKKmZvcl8xMjoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTYKCS8vIGkgPCBsaW1pdAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMyAvLyBsaW1pdDogdWludDY0Cgk8CglieiAqZm9yXzEyX2VuZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTcKCS8vIGN1cnJlbnRWYWxJblNsb3QgPSBleHRyYWN0MyhieXRlc09mU2V0LCBpICogc2l6ZU9mS2V5LCBzaXplT2ZLZXkpCglmcmFtZV9kaWcgMiAvLyBieXRlc09mU2V0OiBieXRlW10KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCSoKCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CglleHRyYWN0MwoJZnJhbWVfYnVyeSA1IC8vIGN1cnJlbnRWYWxJblNsb3Q6IGJ5dGVbXQoKCS8vICppZjkwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1OQoJLy8gY3VycmVudFZhbEluU2xvdCA9PT0gemVyb0tleQoJZnJhbWVfZGlnIDUgLy8gY3VycmVudFZhbEluU2xvdDogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyB6ZXJvS2V5OiBieXRlW10KCT09CglieiAqaWY5MF9lbmQKCgkvLyAqaWY5MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTYxCgkvLyB0aGlzLmJveGVzKGtleSkucmVwbGFjZShpICogc2l6ZU9mS2V5LCBieXRlc1ZhbCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CgkqCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCglib3hfcmVwbGFjZQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NjIKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqYWRkQnl0ZXNUb1NldCpyZXR1cm4KCippZjkwX2VuZDoKCS8vICppZjkxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU2NAoJLy8gY3VycmVudFZhbEluU2xvdCA9PT0gYnl0ZXNWYWwKCWZyYW1lX2RpZyA1IC8vIGN1cnJlbnRWYWxJblNsb3Q6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJPT0KCWJ6ICppZjkxX2VuZAoKCS8vICppZjkxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NjUKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqYWRkQnl0ZXNUb1NldCpyZXR1cm4KCippZjkxX2VuZDoKCipmb3JfMTJfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU2CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMgoKKmZvcl8xMl9lbmQ6CgkvLyAqaWY5Ml9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NjkKCS8vIGJ5dGVzT2ZTZXQubGVuZ3RoIDwgMTAxMAoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCXB1c2hpbnQgMTAxMAoJPAoJYnogKmlmOTJfZW5kCgoJLy8gKmlmOTJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU3MAoJLy8gdGhpcy5ib3hlcyhrZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NzEKCS8vIHRoaXMuYm94ZXMoa2V5KS52YWx1ZSA9IGNvbmNhdChieXRlc09mU2V0LCBieXRlc1ZhbCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgMiAvLyBieXRlc09mU2V0OiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCWNvbmNhdAoJYm94X3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NzIKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqYWRkQnl0ZXNUb1NldCpyZXR1cm4KCippZjkyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NzUKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCiphZGRCeXRlc1RvU2V0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDUKCXJldHN1YgoKLy8gcmVtb3ZlQWRkckZyb21TZXQoa2V5OiBieXRlcywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgZnJvbSB0aGUgc2V0IGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIGtleS4KLy8KLy8gQHBhcmFtIHtieXRlc30ga2V5IC0gVGhlIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIHNldC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gcmVtb3ZlIGZyb20gdGhlIHNldC4KLy8gQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBhZGRyZXNzIHdhcyBzdWNjZXNzZnVsbHkgcmVtb3ZlZCwgZmFsc2Ugb3RoZXJ3aXNlLgpyZW1vdmVBZGRyRnJvbVNldDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg2CgkvLyBieXRlc09mU2V0ID0gdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg3CgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gMzIKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglpbnRjIDMgLy8gMzIKCS8KCWZyYW1lX2J1cnkgMSAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU4OQoJLy8gYXNzZXJ0KGFkZHJlc3MgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5MQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMTM6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTkxCgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xM19lbmQKCgkvLyAqaWY5M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTIKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGkgKiAzMiwgMzIpID09PSByYXdCeXRlcyhhZGRyZXNzKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJaW50YyAzIC8vIDMyCglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCT09CglieiAqaWY5M19lbmQKCgkvLyAqaWY5M19jb25zZXF1ZW50CgkvLyAqaWY5NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTMKCS8vIGkgPT09IGxpbWl0IC0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJPT0KCWJ6ICppZjk0X2VuZAoKCS8vICppZjk0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTQKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCgkvLyAqaWY5NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTcKCS8vIGkgPiAwCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY5NV9lbmQKCgkvLyAqaWY5NV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTk4CgkvLyB0aGlzLmJveGVzKGtleSkudmFsdWUgPSBleHRyYWN0MyhieXRlc09mU2V0LCAwLCBpICogMzIpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWV4dHJhY3QzCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwMAoJLy8gYWxsWmVybyA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDMgLy8gYWxsWmVybzogYm9vbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDEKCS8vIHplcm9BZGRyID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglmcmFtZV9idXJ5IDQgLy8gemVyb0FkZHI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjAyCgkvLyBmb3IgKGxldCBqID0gMDsgaiA8IGxpbWl0IC0gMTsgaiArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNSAvLyBqOiB1aW50NjQKCipmb3JfMTQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjAyCgkvLyBqIDwgbGltaXQgLSAxCglmcmFtZV9kaWcgNSAvLyBqOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCWludGMgMSAvLyAxCgktCgk8CglieiAqZm9yXzE0X2VuZAoKCS8vICppZjk2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwMwoJLy8gZXh0cmFjdDMoYnl0ZXNPZlNldCwgaiAqIDMyLCAzMikgIT09IHJhd0J5dGVzKHplcm9BZGRyKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgNSAvLyBqOiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJaW50YyAzIC8vIDMyCglleHRyYWN0MwoJZnJhbWVfZGlnIDQgLy8gemVyb0FkZHI6IGFkZHJlc3MKCSE9CglieiAqaWY5Nl9lbmQKCgkvLyAqaWY5Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjA0CgkvLyBhbGxaZXJvID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gYWxsWmVybzogYm9vbAoJYiAqZm9yXzE0X2VuZAoKKmlmOTZfZW5kOgoKKmZvcl8xNF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDIKCS8vIGogKz0gMQoJZnJhbWVfZGlnIDUgLy8gajogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSA1IC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzE0CgoqZm9yXzE0X2VuZDoKCS8vICppZjk3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwOAoJLy8gYWxsWmVybwoJZnJhbWVfZGlnIDMgLy8gYWxsWmVybzogYm9vbAoJYnogKmlmOTdfZW5kCgoJLy8gKmlmOTdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwOQoJLy8gdGhpcy5ib3hlcyhrZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2RlbAoKKmlmOTdfZW5kOgoKKmlmOTVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYxMgoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVBZGRyRnJvbVNldCpyZXR1cm4KCippZjk0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MTUKCS8vIHRoaXMuYm94ZXMoa2V5KS5yZXBsYWNlKGkgKiAzMiwgcmF3Qnl0ZXMoZ2xvYmFscy56ZXJvQWRkcmVzcykpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYm94X3JlcGxhY2UKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjE2CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKnJlbW92ZUFkZHJGcm9tU2V0KnJldHVybgoKKmlmOTNfZW5kOgoKKmZvcl8xM19jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTEKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEzCgoqZm9yXzEzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MTkKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCipyZW1vdmVBZGRyRnJvbVNldCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIG11c3RCZUNhbGxlZEJ5T3duZXIoKTogdm9pZAptdXN0QmVDYWxsZWRCeU93bmVyOgoJcHJvdG8gMCAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYyNAoJLy8gYXNzZXJ0KHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweDBkY2E1MmMxIC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oc3RyaW5nLGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweDA2ZGYyZTViIC8vIG1ldGhvZCAibWludEFzYShzdHJpbmcsc3RyaW5nKXZvaWQiCglwdXNoYnl0ZXMgMHg1MTMyZGY3NSAvLyBtZXRob2QgImRlbGV0ZUZpZWxkcyhieXRlW11bXSl2b2lkIgoJcHVzaGJ5dGVzIDB4MGQyNmM1OTEgLy8gbWV0aG9kICJ1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4N2M1YWU0OTUgLy8gbWV0aG9kICJnZXRGaWVsZFVwZGF0ZUNvc3QoYnl0ZVtdW10pdWludDY0IgoJcHVzaGJ5dGVzIDB4NzhmNDI3MTEgLy8gbWV0aG9kICJ1cGRhdGVGaWVsZHMoYnl0ZVtdW10pdm9pZCIKCXB1c2hieXRlcyAweDZjMTNlZGU0IC8vIG1ldGhvZCAicmVhZEZpZWxkKGJ5dGVbXSlieXRlW10iCglwdXNoYnl0ZXMgMHg1MDc2ZDljYSAvLyBtZXRob2QgIm9mZmVyRm9yU2FsZSh1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4OTlmNWQ1MGQgLy8gbWV0aG9kICJjYW5jZWxTYWxlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OTEzMTEyZWYgLy8gbWV0aG9kICJwb3N0T2ZmZXIodWludDY0LHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDg1MzM3YzQgLy8gbWV0aG9kICJtaW50UGF5b3V0KHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHhhMzkyYWU4MiAvLyBtZXRob2QgInB1cmNoYXNlKHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDQ0Mzk1MmEgLy8gbWV0aG9kICJpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wiCglwdXNoYnl0ZXMgMHg1MGY0OTBjMiAvLyBtZXRob2QgImdldFJlbmV3UHJpY2UoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDc2MmU4MmRhIC8vIG1ldGhvZCAidXBkYXRlSGFzaChieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweDhlYmMyYzgzIC8vIG1ldGhvZCAiY29udHJhY3RMb2NrKGJvb2wpdm9pZCIKCXB1c2hieXRlcyAweGNkNTM1OGE2IC8vIG1ldGhvZCAic2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDNhNjU3ZDc3IC8vIG1ldGhvZCAidmF1bHRPcHRJbkxvY2soYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDEzZDE1MjMgLy8gbWV0aG9kICJ2YXVsdE9wdEluKHVpbnQ2NFtdKXZvaWQiCglwdXNoYnl0ZXMgMHg2NjgyMWMxYSAvLyBtZXRob2QgInZhdWx0U2VuZCh1aW50NjQsYWRkcmVzcyxzdHJpbmcsdWludDY0LHVpbnQ2NFtdKXZvaWQiCglwdXNoYnl0ZXMgMHg3N2ZkNWI3NCAvLyBtZXRob2QgInJlbmV3KHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4OTdiNmQ4NmMgLy8gbWV0aG9kICJzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ODVjY2VkNTcgLy8gbWV0aG9kICJyZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsc3RyaW5nKWJvb2wiCglwdXNoYnl0ZXMgMHhiMTg5MGE3NSAvLyBtZXRob2QgInJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLGFkZHJlc3MsYWRkcmVzcylib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9taW50QXNhICphYmlfcm91dGVfZGVsZXRlRmllbGRzICphYmlfcm91dGVfdXBkYXRlU2VnbWVudENvdW50ICphYmlfcm91dGVfZ2V0RmllbGRVcGRhdGVDb3N0ICphYmlfcm91dGVfdXBkYXRlRmllbGRzICphYmlfcm91dGVfcmVhZEZpZWxkICphYmlfcm91dGVfb2ZmZXJGb3JTYWxlICphYmlfcm91dGVfY2FuY2VsU2FsZSAqYWJpX3JvdXRlX3Bvc3RPZmZlciAqYWJpX3JvdXRlX21pbnRQYXlvdXQgKmFiaV9yb3V0ZV9wdXJjaGFzZSAqYWJpX3JvdXRlX2lzQWRkcmVzc0luRmllbGQgKmFiaV9yb3V0ZV9nZXRSZW5ld1ByaWNlICphYmlfcm91dGVfdXBkYXRlSGFzaCAqYWJpX3JvdXRlX2NvbnRyYWN0TG9jayAqYWJpX3JvdXRlX3NlZ21lbnRMb2NrICphYmlfcm91dGVfdmF1bHRPcHRJbkxvY2sgKmFiaV9yb3V0ZV92YXVsdE9wdEluICphYmlfcm91dGVfdmF1bHRTZW5kICphYmlfcm91dGVfcmVuZXcgKmFiaV9yb3V0ZV9zZXRQcmltYXJ5QWRkcmVzcyAqYWJpX3JvdXRlX3JlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzICphYmlfcm91dGVfcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcwoKCS8vICEhISEgV0FSTklORzogbm9uLUFCSSByb3V0aW5nCgljYWxsc3ViIG9uQ2FsbAoJaW50YyAxIC8vIDEKCXJldHVybgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHgxNzQ3NDA1YiAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnIKCippbnRUb0FzY2lpOgoJcHJvdG8gMSAxCglwdXNoYnl0ZXMgMHgzMDMxMzIzMzM0MzUzNjM3MzgzOSAvLyAiMDEyMzQ1Njc4OSIKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCglleHRyYWN0MwoJcmV0c3ViCgkKCippdG9hOgoJcHJvdG8gMSAxCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppdG9hX2lmX2VuZAoJYnl0ZWMgMjMgLy8gMHgzMAoJcmV0c3ViCgoqaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgkvCglpbnRjIDAgLy8gMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAxMSAvLyAxMAoJLwoJY2FsbHN1YiAqaXRvYQoJYiAqaXRvYV90ZXJuYXJ5X2VuZAoKKml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGVjIDAgLy8gICIiCgoqaXRvYV90ZXJuYXJ5X2VuZDoKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMTEgLy8gMTAKCSUKCWNhbGxzdWIgKmludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3ViCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=","clear":"I3ByYWdtYSB2ZXJzaW9uIDEw"},"templateVariables":{"adminAsaId":{"type":"uint64"},"registryAppId":{"type":"uint64"}},"scratchVariables":{"adminAsaId":{"type":"uint64","slot":200},"registryAppId":{"type":"uint64","slot":201}},"compilerInfo":{"compiler":"algod","compilerVersion":{"major":3,"minor":27,"patch":237217,"commitHash":"0bc3d7e4"}}} as unknown as Arc56Contract +export const APP_SPEC: Arc56Contract = {"name":"NFDInstance","desc":"","methods":[{"name":"createApplication","args":[{"name":"nfdName","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"purchaseAmount","type":"uint64"},{"name":"expTime","type":"uint64"},{"name":"commission1Addr","type":"address"},{"name":"commission1Pct","type":"uint64"},{"name":"commission2Addr","type":"address"},{"name":"commission2Pct","type":"uint64"},{"name":"segmentRootAppId","type":"uint64"},{"name":"segmentRootCommissionAddr","type":"address"}],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]}},{"name":"updateApplication","args":[{"name":"versionNum","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["UpdateApplication"]}},{"name":"gas","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"mintAsa","args":[{"name":"nfdName","type":"string"},{"name":"url","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"deleteFields","args":[{"name":"fieldNames","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateSegmentCount","args":[{"name":"childNfdName","type":"string"},{"name":"childNfdAppID","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getFieldUpdateCost","readonly":true,"args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateFields","args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"readField","readonly":true,"args":[{"name":"fieldName","type":"byte[]"}],"returns":{"type":"byte[]"},"actions":{"create":[],"call":["NoOp"]}},{"name":"offerForSale","args":[{"name":"sellAmount","type":"uint64"},{"name":"reservedFor","type":"address"}],"returns":{"type":"void"},"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"cancelSale","args":[],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"postOffer","args":[{"name":"offer","type":"uint64"},{"name":"note","type":"string"}],"returns":{"type":"void"},"events":[{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"mintPayout","args":[{"name":"oneYearPrice","type":"uint64"},{"name":"segmentPlatformCostInAlgo","type":"uint64"}],"returns":{"type":"(uint64,address,uint64,address,uint64)","struct":"PayoutInfo"},"actions":{"create":[],"call":["NoOp"]}},{"name":"purchase","args":[{"name":"payment","type":"pay"}],"returns":{"type":"void"},"events":[{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"isAddressInField","readonly":true,"args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"bool"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getRenewPrice","readonly":true,"args":[],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateHash","args":[{"name":"hash","type":"byte[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"contractLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"segmentLock","args":[{"name":"lock","type":"bool"},{"name":"usdPrice","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptInLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptIn","args":[{"name":"assets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultSend","args":[{"name":"amount","type":"uint64"},{"name":"receiver","type":"address"},{"name":"note","type":"string"},{"name":"asset","type":"uint64"},{"name":"otherAssets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"renew","desc":"Renew adds more time to an existing NFDs expiration, or renews it if expired.\n\n\nAs part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded\nto v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check)\n\n\nIf already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price)\nExpirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future.\n\n\nIF the NFD is expired:\n x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they\n get it back as-is.\n x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where\n 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED!","args":[{"name":"payment","type":"pay","desc":"The payment transaction from which the renewal period is determined.."}],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"setPrimaryAddress","args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"registryAddingVerifiedAddress","desc":"Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified\nverified field.","args":[{"name":"fieldBeingVerified","type":"string","desc":"- MUST START with u.cav. (!)\ngets 'added' to 'set' in next arg - must be fixed-sized bytes"},{"name":"fieldSetName","type":"string","desc":"(must BE v.ca[...].as)"}],"returns":{"type":"bool","desc":"true if added or already present, false otherwise"},"events":[{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"registryRemovingVerifiedAddress","desc":"Approved call from registry instructing us to REMOVE an address from the specified verified address set","args":[{"name":"fieldBeingChanged","type":"string","desc":"The field being changed in the address registry."},{"name":"address","type":"address","desc":"The address to be removed from the field."},{"name":"mbrRefundDest","type":"address","desc":"the address to send reclaimed MBR (if any)\n boolean - true if valid removed"}],"returns":{"type":"bool"},"events":[{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}}],"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""},{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""},{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""},{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""},{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"arcs":[4,56],"structs":{"PayoutInfo":[{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}]},"state":{"schema":{"global":{"bytes":30,"ints":0},"local":{"bytes":0,"ints":0}},"keys":{"global":{},"local":{},"box":{}},"maps":{"global":{"globalState":{"keyType":"AVMBytes","valueType":"AVMBytes"}},"local":{},"box":{"boxes":{"keyType":"AVMBytes","valueType":"AVMBytes"}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"teal":25,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?","pc":[36]},{"teal":37,"source":"contracts/NFDInstance.algo.ts:43","errorMessage":"argument 0 (segmentRootCommissionAddr) for createApplication must be a address","pc":[44]},{"teal":55,"source":"contracts/NFDInstance.algo.ts:40","errorMessage":"argument 3 (commission2Addr) for createApplication must be a address","pc":[60]},{"teal":69,"source":"contracts/NFDInstance.algo.ts:38","errorMessage":"argument 5 (commission1Addr) for createApplication must be a address","pc":[72]},{"teal":87,"source":"contracts/NFDInstance.algo.ts:35","errorMessage":"argument 8 (buyer) for createApplication must be a address","pc":[88]},{"teal":97,"source":"contracts/NFDInstance.algo.ts:34","errorMessage":"argument 9 (seller) for createApplication must be a address","pc":[96]},{"teal":122,"source":"contracts/NFDInstance.algo.ts:45","errorMessage":"caller must be NFD registry!","pc":[117]},{"teal":224,"source":"contracts/NFDInstance.algo.ts:60","errorMessage":"commission must be between 1 and 50%","pc":[217]},{"teal":262,"source":"contracts/NFDInstance.algo.ts:64","errorMessage":"commission must be between 1 and 50%","pc":[251]},{"teal":370,"source":"contracts/NFDInstance.algo.ts:90","errorMessage":"parent commission address must be set if parent app id is set and parent is unlocked","pc":[382]},{"teal":384,"source":"contracts/NFDInstance.algo.ts:97","errorMessage":"the segment commission agent should be the parent nfd's seller","pc":[393]},{"teal":420,"source":"contracts/NFDInstance.algo.ts:110","errorMessage":"contract must be unlocked to upgrade","pc":[420]},{"teal":429,"source":"contracts/NFDInstance.algo.ts:113","errorMessage":"caller must be NFD registry!","pc":[426]},{"teal":459,"source":"contracts/NFDInstance.algo.ts:120","errorMessage":"can't still be in minting state","pc":[449]},{"teal":481,"source":"contracts/NFDInstance.algo.ts:125","errorMessage":"NFD can't be expired for these v1/v2 operations","pc":[467]},{"teal":677,"source":"contracts/NFDInstance.algo.ts:180","errorMessage":"unknown method","pc":[731]},{"teal":721,"source":"contracts/NFDInstance.algo.ts:190","errorMessage":"caller must be NFD registry!","pc":[768]},{"teal":942,"source":"contracts/NFDInstance.algo.ts:224","errorMessage":"field not removable or no permissions to remove","pc":[959]},{"teal":950,"source":"contracts/NFDInstance.algo.ts:225","errorMessage":"box value does not exist: this.boxes(name).size","pc":[963]},{"teal":1075,"source":"contracts/NFDInstance.algo.ts:244","errorMessage":"field not removable or no permissions to remove","pc":[1067]},{"teal":1130,"source":"contracts/NFDInstance.algo.ts:258","errorMessage":"caller must be NFD registry!","pc":[1111]},{"teal":1144,"source":"contracts/NFDInstance.algo.ts:259","errorMessage":"child NFD MUST still be in pre-claim state!","pc":[1121]},{"teal":1172,"source":"contracts/NFDInstance.algo.ts:266","errorMessage":"passed in child name must match name in created nfd state","pc":[1144]},{"teal":1209,"source":"contracts/NFDInstance.algo.ts:276","errorMessage":"parent must be suffix of child","pc":[1177]},{"teal":1381,"source":"contracts/NFDInstance.algo.ts:298","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1346]},{"teal":1423,"source":"contracts/NFDInstance.algo.ts:307","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1386]},{"teal":1537,"source":"contracts/NFDInstance.algo.ts:323","errorMessage":"can't update fields if NFD expired","pc":[1487]},{"teal":1644,"source":"contracts/NFDInstance.algo.ts:333","errorMessage":"invalid update call by registry","pc":[1615]},{"teal":1738,"source":"contracts/NFDInstance.algo.ts:340","errorMessage":"field not updatable or no permissions to update","pc":[1717]},{"teal":1799,"source":"contracts/NFDInstance.algo.ts:353","errorMessage":"can't update fields if NFD expired","pc":[1763]},{"teal":1844,"source":"contracts/NFDInstance.algo.ts:359","errorMessage":"field not updatable or no permissions to update","pc":[1803]},{"teal":1953,"source":"contracts/NFDInstance.algo.ts:379","errorMessage":"must be user-defined or verified field to fetch","pc":[1902]},{"teal":1971,"source":"contracts/NFDInstance.algo.ts:384","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[1914]},{"teal":2005,"source":"contracts/NFDInstance.algo.ts:392","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1944]},{"teal":2057,"source":"contracts/NFDInstance.algo.ts:400","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1994]},{"teal":2093,"source":"contracts/NFDInstance.algo.ts:407","errorMessage":"argument 0 (reservedFor) for offerForSale must be a address","pc":[2021]},{"teal":2117,"source":"contracts/NFDInstance.algo.ts:408","errorMessage":"can't sell if NFD expired","pc":[2039]},{"teal":2165,"source":"contracts/NFDInstance.algo.ts:419","errorMessage":"can only be sold if no user-defined or verified properties remain","pc":[2089]},{"teal":2185,"source":"contracts/NFDInstance.algo.ts:423","errorMessage":"must be sold for at least MIN amount","pc":[2106]},{"teal":2323,"source":"contracts/NFDInstance.algo.ts:465","errorMessage":"can't update fields if NFD expired","pc":[2252]},{"teal":2340,"source":"contracts/NFDInstance.algo.ts:467","errorMessage":"must be for sale","pc":[2265]},{"teal":2484,"source":"contracts/NFDInstance.algo.ts:492","errorMessage":"caller must be NFD registry!","pc":[2420]},{"teal":2751,"source":"contracts/NFDInstance.algo.ts:573","errorMessage":"argument 0 (payment) for purchase must be a pay transaction","pc":[2652]},{"teal":2782,"source":"contracts/NFDInstance.algo.ts:575","errorMessage":"can't be expired","pc":[2677]},{"teal":2789,"source":"contracts/NFDInstance.algo.ts:576","errorMessage":"must be for sale","pc":[2681]},{"teal":2830,"source":"contracts/NFDInstance.algo.ts:583","errorMessage":"payment sender must be same as purchase caller","pc":[2733]},{"teal":2853,"source":"contracts/NFDInstance.algo.ts:586","errorMessage":"Reserved owner set, but sender isn't the reserved address","pc":[2749]},{"teal":2900,"source":"contracts/NFDInstance.algo.ts:604","errorMessage":"offer must be at least min amount","pc":[2795]},{"teal":2910,"source":"contracts/NFDInstance.algo.ts:607","errorMessage":"offer must be at least sell amount","pc":[2801]},{"teal":2935,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"origOfferamt\"}","pc":[2823]},{"teal":2944,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[2831]},{"teal":3406,"source":"contracts/NFDInstance.algo.ts:730","errorMessage":"argument 0 (address) for isAddressInField must be a address","pc":[3291]},{"teal":3458,"source":"contracts/NFDInstance.algo.ts:735","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[3336]},{"teal":3711,"source":"contracts/NFDInstance.algo.ts:856","errorMessage":"must pass 32-byte hash that isn't 0","pc":[3553]},{"teal":3729,"source":"contracts/NFDInstance.algo.ts:861","errorMessage":"only txnlab or owner can request an nfd nft hash update","pc":[3567]},{"teal":3782,"source":"contracts/NFDInstance.algo.ts:876","errorMessage":"argument 0 (lock) for contractLock must be a bool","pc":[3603]},{"teal":3835,"source":"contracts/NFDInstance.algo.ts:884","errorMessage":"argument 1 (lock) for segmentLock must be a bool","pc":[3649]},{"teal":3930,"source":"contracts/NFDInstance.algo.ts:895","errorMessage":"amount must be at least NFD_MIN_SEGMENT_USD dollars in algo","pc":[3732]},{"teal":3952,"source":"contracts/NFDInstance.algo.ts:907","errorMessage":"argument 0 (lock) for vaultOptInLock must be a bool","pc":[3747]},{"teal":4032,"source":"contracts/NFDInstance.algo.ts:925","errorMessage":"sender must be owner when vault locked","pc":[3812]},{"teal":4042,"source":"contracts/NFDInstance.algo.ts:931","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[3817]},{"teal":4061,"source":"contracts/NFDInstance.algo.ts:933","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[3830]},{"teal":4070,"source":"contracts/NFDInstance.algo.ts:934","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[3838]},{"teal":4084,"source":"contracts/NFDInstance.algo.ts:935","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * assets.length\"}","pc":[3853]},{"teal":4198,"source":"contracts/NFDInstance.algo.ts:958","errorMessage":"argument 3 (receiver) for vaultSend must be a address","pc":[3954]},{"teal":4247,"source":"contracts/NFDInstance.algo.ts:968","errorMessage":"can't specify other assets if sending algo from vault","pc":[3994]},{"teal":4329,"source":"contracts/NFDInstance.algo.ts:980","errorMessage":"can only send one asset if amount == 0","pc":[4061]},{"teal":4402,"source":"contracts/NFDInstance.algo.ts:993","errorMessage":"receiver must be owner","pc":[4128]},{"teal":4537,"source":"contracts/NFDInstance.algo.ts:1029","errorMessage":"argument 0 (payment) for renew must be a pay transaction","pc":[4237]},{"teal":4577,"source":"contracts/NFDInstance.algo.ts:1030","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[4256]},{"teal":4706,"source":"contracts/NFDInstance.algo.ts:1052","errorMessage":"can't claim expired nfd unless all metadata is cleared","pc":[4386]},{"teal":4719,"source":"contracts/NFDInstance.algo.ts:1058","errorMessage":"must pay at least minimum renewal price","pc":[4394]},{"teal":4892,"source":"contracts/NFDInstance.algo.ts:1098","errorMessage":"global state value does not exist: parentAppId.globalState(NFD_KEY_OWNER)","pc":[4550]},{"teal":5039,"source":"contracts/NFDInstance.algo.ts:1137","errorMessage":"argument 0 (address) for setPrimaryAddress must be a address","pc":[4716]},{"teal":5126,"source":"contracts/NFDInstance.algo.ts:1156","errorMessage":"caller must be NFD registry!","pc":[4802]},{"teal":5140,"source":"contracts/NFDInstance.algo.ts:1158","errorMessage":"field being verified MUST START with u.cav","pc":[4820]},{"teal":5150,"source":"contracts/NFDInstance.algo.ts:1159","errorMessage":"destination field MUST START with v.ca[....]","pc":[4829]},{"teal":5165,"source":"contracts/NFDInstance.algo.ts:1160","errorMessage":"destination field must end END with .as","pc":[4844]},{"teal":5178,"source":"contracts/NFDInstance.algo.ts:1161","errorMessage":"referenced field to add as verified address must have value in box storage","pc":[4850]},{"teal":5193,"source":"contracts/NFDInstance.algo.ts:1167","errorMessage":"box value does not exist: this.boxes(fieldBeingVerified).value","pc":[4859]},{"teal":5253,"source":"contracts/NFDInstance.algo.ts:1187","errorMessage":"argument 0 (mbrRefundDest) for registryRemovingVerifiedAddress must be a address","pc":[4924]},{"teal":5263,"source":"contracts/NFDInstance.algo.ts:1187","errorMessage":"argument 1 (address) for registryRemovingVerifiedAddress must be a address","pc":[4932]},{"teal":5302,"source":"contracts/NFDInstance.algo.ts:1188","errorMessage":"caller must be NFD registry!","pc":[4962]},{"teal":5318,"source":"contracts/NFDInstance.algo.ts:1191","errorMessage":"can't be for sale","pc":[4974]},{"teal":5329,"source":"contracts/NFDInstance.algo.ts:1193","errorMessage":"verified field MUST START with v.ca[....]","pc":[4983]},{"teal":5347,"source":"contracts/NFDInstance.algo.ts:1194","errorMessage":"verified field must end END with .as","pc":[4998]},{"teal":5362,"source":"contracts/NFDInstance.algo.ts:1200","errorMessage":"box value does not exist: this.boxes(fieldBeingChanged).size","pc":[5007]},{"teal":5542,"source":"contracts/NFDInstance.algo.ts:1247","errorMessage":"sender must be owner","pc":[5175]},{"teal":5552,"source":"contracts/NFDInstance.algo.ts:1250","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[5180]},{"teal":5571,"source":"contracts/NFDInstance.algo.ts:1252","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[5193]},{"teal":5580,"source":"contracts/NFDInstance.algo.ts:1253","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[5201]},{"teal":5593,"source":"contracts/NFDInstance.algo.ts:1254","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * (this.txn.numAppArgs - 1)\"}","pc":[5214]},{"teal":5730,"source":"contracts/NFDInstance.algo.ts:1280","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5317]},{"teal":5796,"source":"contracts/NFDInstance.algo.ts:1313","errorMessage":"internal fields can never be deleted","pc":[5371]},{"teal":5820,"source":"contracts/NFDInstance.algo.ts:1320","errorMessage":"must be owned","pc":[5388]},{"teal":5836,"source":"contracts/NFDInstance.algo.ts:1323","errorMessage":"can't be for sale","pc":[5400]},{"teal":5920,"source":"contracts/NFDInstance.algo.ts:1357","errorMessage":"internal fields can never be updated","pc":[5471]},{"teal":5977,"source":"contracts/NFDInstance.algo.ts:1365","errorMessage":"must be owned","pc":[5526]},{"teal":5985,"source":"contracts/NFDInstance.algo.ts:1366","errorMessage":"can't be for sale","pc":[5531]},{"teal":5995,"source":"contracts/NFDInstance.algo.ts:1367","errorMessage":"sender must be owner","pc":[5537]},{"teal":6031,"source":"contracts/NFDInstance.algo.ts:1375","errorMessage":"updating v.caAlgo field isn't allowed via regular field update","pc":[5567]},{"teal":6176,"source":"contracts/NFDInstance.algo.ts:1426","errorMessage":"can't be for sale","pc":[5688]},{"teal":6184,"source":"contracts/NFDInstance.algo.ts:1427","errorMessage":"can't be expired","pc":[5693]},{"teal":6296,"source":"contracts/NFDInstance.algo.ts:1454","errorMessage":"max expiration exceeded parameters defined by registry","pc":[5778]},{"teal":6529,"source":"contracts/NFDInstance.algo.ts:1508","errorMessage":"box value does not exist: this.boxes(key).value","pc":[5946]},{"teal":6547,"source":"contracts/NFDInstance.algo.ts:1512","errorMessage":"address 'set' should already have at least two values","pc":[5961]},{"teal":6629,"source":"contracts/NFDInstance.algo.ts:1528","errorMessage":"address must be found in set in order to move it","pc":[6029]},{"teal":6712,"source":"contracts/NFDInstance.algo.ts:1552","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6095]},{"teal":6733,"source":"contracts/NFDInstance.algo.ts:1555","errorMessage":"existing set must be multiple of key being added","pc":[6114]},{"teal":6869,"source":"contracts/NFDInstance.algo.ts:1586","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6221]},{"teal":7078,"source":"contracts/NFDInstance.algo.ts:1624","errorMessage":"sender must be owner","pc":[6390]},{"teal":7087,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for create NoOp","pc":[6405]},{"teal":7128,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for call UpdateApplication","pc":[6621]}],"pcOffsetMethod":"cblocks"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"templateVariables":{"adminAsaId":{"type":"uint64"},"registryAppId":{"type":"uint64"}},"scratchVariables":{"adminAsaId":{"type":"uint64","slot":200},"registryAppId":{"type":"uint64","slot":201}},"compilerInfo":{"compiler":"algod","compilerVersion":{"major":3,"minor":27,"patch":237217,"commitHash":"0bc3d7e4"}}} as unknown as Arc56Contract /** * A state record containing binary data diff --git a/packages/sdk/src/contracts/NFDRegistryClient.ts b/packages/sdk/src/contracts/NFDRegistryClient.ts index b3b4e02..d13e9b9 100644 --- a/packages/sdk/src/contracts/NFDRegistryClient.ts +++ b/packages/sdk/src/contracts/NFDRegistryClient.ts @@ -24,7 +24,7 @@ import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerR import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk' import SimulateResponse = modelsv2.SimulateResponse -export const APP_SPEC: Arc56Contract = {"name":"NFDRegistry","desc":"","methods":[{"name":"updateApplication","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["UpdateApplication"]}},{"name":"gas","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getPrice","desc":"Returns the price for a given NFD (single year), the max # of years allowed (Name for Display),\nand extra algo required to cover MBR when purchasing.","args":[{"name":"nfdName","type":"string","desc":"The NFD name for which to retrieve the price."},{"name":"caller","type":"address","desc":"the address this request is on behalf of (since an nfd contract might call us it\nneeds to be able to pass on the request on behalf of ITS caller - ie: getting price for an expired nfd will be\ndifferent if its owner ir asking.\n PriceInfo Type containing the price, carry cost, etc."}],"returns":{"type":"(uint64,uint64,bool,bool,bool)","struct":"PriceInfo"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getConstraints","args":[],"returns":{"type":"(uint64,uint64,uint64,address,uint64,uint64,uint64)","struct":"Constraints"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNfdMbrCost","desc":"Returns the MBR amounts needed to MINT an nfd.\nThis value needs to be added to purchase price in mintNfd call.\ngetPrice() returns it though.","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNfdLinkOnMintExtraMbrCost","args":[{"name":"address","type":"address"}],"returns":{"type":"(uint64,uint64)","struct":"LinkOnMintExtraMbrCosts"},"actions":{"create":[],"call":["NoOp"]}},{"name":"mintNfd","desc":"Mint an NFD (NFT) and create a new NFD instance.","args":[{"name":"purchaseTxn","type":"pay","desc":"The payment transaction covering the purchase amount of the nfd"},{"name":"nfdName","type":"string","desc":"The name of the NFD to mint"},{"name":"reservedFor","type":"address","desc":"The address that will own the NFD once minted (so you can buy for someone else)"},{"name":"linkOnMint","type":"bool","desc":"whether to auto-link the address (reserved for MUST MATCH payer!) at mint\n uint64 - The ID of the newly created NFD instance."}],"returns":{"type":"uint64"},"events":[{"name":"nfdRegistry_minted","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"priceOneYear","type":"uint64"},{"name":"paidAmount","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"owner","type":"address"},{"name":"expTime","type":"uint64"},{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"linkNfdAddress","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrToVerify","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"unlinkNfdAddress","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrToUnlink","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"ownershipAssign","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"ownershipChanged","desc":"This method is triggered when the ownership of an NFD (Non-Fungible Domain) changes.\nIt is called by the NFD via the purchase method. It can also be called by TxnLab admin for older 3.3\nNFDs when it detects purchased events for 3.3","args":[{"name":"nfdName","type":"string","desc":"The name of the NFD."},{"name":"nfdAppId","type":"uint64","desc":"The unique application ID of the NFD."},{"name":"seller","type":"address","desc":"The address of the prior owner (seller) of the nfd"},{"name":"buyer","type":"address","desc":"The address of the new owner of the NFD."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"setAddressPrimaryNfd","desc":"Makes the specified NFD the 'first' NFD in the reverse-address set so its the primary NFD for this address.\nThe NFD must be valid, and the sender must be the address (or nfd owner if vault). The NFD wouldn't already be\nin the reverse-lookup set if it wasn't already valid.","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrBeingModified","type":"address"}],"returns":{"type":"void"},"events":[{"name":"nfdRegistry_addressPrimaryNfdChanged","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"upgradeNfd","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"string"},"actions":{"create":[],"call":["NoOp"]}},{"name":"isValidNfdAppId","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"}],"returns":{"type":"bool"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNameAppId","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getAddressAppIds","args":[{"name":"lookupAddress","type":"address"}],"returns":{"type":"uint64[]"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractInit","desc":"Initializes the NFD contract bytecode into the registry","args":[{"name":"version","type":"string","desc":"The version of the contract."},{"name":"size","type":"uint64","desc":"exact byte size of contract to load"},{"name":"clearCode","type":"byte[]","desc":"bytes of clear code"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractLoad","desc":"Loads contract data into the box at the specified offset.","args":[{"name":"version","type":"string","desc":"The version of the contract."},{"name":"offset","type":"uint64","desc":"The offset at which to replace the contract data within the box."},{"name":"data","type":"byte[]","desc":"The contract data to be loaded."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractCommit","desc":"Commit a new version of the contract.","args":[{"name":"version","type":"string","desc":"The version number of the contract to be committed."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"usdInMicroAlgo","args":[{"name":"usdCost","type":"uint64"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"costToAddToAddress","desc":"Returns the cost to add an NFD to the reverse-lookup data","args":[{"name":"lookupAddress","type":"address","desc":"The address to add the NFD app id to"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"calcFuturePrice","desc":"Calculates the future price based on the current price and the number of years.","args":[{"name":"curPrice","type":"uint64","desc":"The current price in USD (in decimals). For example, if the current price is $2.00, the value should be 200."},{"name":"forTime","type":"uint64","desc":"The timestamp to calc the future price based on - ie: 1 year past 'go live date' the price would have inflated by 1 year.\n\n\n uint64 The future price calculated based on the current price and the specified number of years."}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"createApplication","args":[],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]}}],"events":[{"name":"nfdRegistry_minted","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"priceOneYear","type":"uint64"},{"name":"paidAmount","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"owner","type":"address"},{"name":"expTime","type":"uint64"},{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}],"desc":""},{"name":"nfdRegistry_addressPrimaryNfdChanged","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"arcs":[4,56],"structs":{"PriceInfo":[{"name":"oneYearPrice","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"exists","type":"bool"},{"name":"isExpired","type":"bool"},{"name":"inAuction","type":"bool"}],"Constraints":[{"name":"segmentPlatformCostInUsd","type":"uint64"},{"name":"segmentPlatformCostInAlgo","type":"uint64"},{"name":"maxYearsAllowed","type":"uint64"},{"name":"treasuryAddress","type":"address"},{"name":"expiredAuctionDuration","type":"uint64"},{"name":"expiredStartingPrice","type":"uint64"},{"name":"maxMintCarryCost","type":"uint64"}],"LinkOnMintExtraMbrCosts":[{"name":"linkingNfdMbrCost","type":"uint64"},{"name":"linkingRegistryMbrCost","type":"uint64"}]},"state":{"schema":{"global":{"bytes":0,"ints":0},"local":{"bytes":16,"ints":0}},"keys":{"global":{},"local":{},"box":{}},"maps":{"global":{},"local":{"localState":{"keyType":"AVMBytes","valueType":"AVMBytes"}},"box":{"boxes":{"keyType":"AVMBytes","valueType":"AVMBytes"}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"teal":15,"source":"contracts/NFDRegistry.algo.ts:51","pc":[1,2]},{"teal":16,"source":"contracts/NFDRegistry.algo.ts:51","pc":[3]},{"teal":17,"source":"contracts/NFDRegistry.algo.ts:51","pc":[4]},{"teal":18,"source":"contracts/NFDRegistry.algo.ts:51","pc":[5]},{"teal":19,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6,7]},{"teal":20,"source":"contracts/NFDRegistry.algo.ts:51","pc":[8]},{"teal":21,"source":"contracts/NFDRegistry.algo.ts:51","pc":[9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]},{"teal":25,"source":"contracts/NFDRegistry.algo.ts:51","errorMessage":"The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?","pc":[35]},{"teal":30,"source":"contracts/NFDRegistry.algo.ts:69","pc":[36,37,38]},{"teal":31,"source":"contracts/NFDRegistry.algo.ts:69","pc":[39]},{"teal":32,"source":"contracts/NFDRegistry.algo.ts:69","pc":[40]},{"teal":36,"source":"contracts/NFDRegistry.algo.ts:69","pc":[41,42,43]},{"teal":40,"source":"contracts/NFDRegistry.algo.ts:70","pc":[44,45]},{"teal":41,"source":"contracts/NFDRegistry.algo.ts:70","pc":[46,47,48]},{"teal":42,"source":"contracts/NFDRegistry.algo.ts:70","pc":[49,50]},{"teal":43,"source":"contracts/NFDRegistry.algo.ts:70","pc":[51]},{"teal":44,"source":"contracts/NFDRegistry.algo.ts:70","pc":[52]},{"teal":45,"source":"contracts/NFDRegistry.algo.ts:70","pc":[53]},{"teal":46,"source":"contracts/NFDRegistry.algo.ts:69","pc":[54]},{"teal":50,"source":"contracts/NFDRegistry.algo.ts:73","pc":[55,56,57]},{"teal":53,"source":"contracts/NFDRegistry.algo.ts:73","pc":[58]},{"teal":58,"source":"contracts/NFDRegistry.algo.ts:76","pc":[59,60]},{"teal":59,"source":"contracts/NFDRegistry.algo.ts:76","pc":[61,62]},{"teal":60,"source":"contracts/NFDRegistry.algo.ts:76","pc":[63]},{"teal":61,"source":"contracts/NFDRegistry.algo.ts:76","pc":[64,65,66]},{"teal":66,"source":"contracts/NFDRegistry.algo.ts:77","pc":[67,68,69]},{"teal":70,"source":"contracts/NFDRegistry.algo.ts:78","pc":[70]},{"teal":75,"source":"contracts/NFDRegistry.algo.ts:80","pc":[71,72]},{"teal":76,"source":"contracts/NFDRegistry.algo.ts:80","pc":[73,74]},{"teal":77,"source":"contracts/NFDRegistry.algo.ts:80","pc":[75]},{"teal":78,"source":"contracts/NFDRegistry.algo.ts:80","pc":[76]},{"teal":83,"source":"contracts/NFDRegistry.algo.ts:82","pc":[77,78,79]},{"teal":84,"source":"contracts/NFDRegistry.algo.ts:82","pc":[80,81,82,83,84]},{"teal":85,"source":"contracts/NFDRegistry.algo.ts:82","pc":[85]},{"teal":86,"source":"contracts/NFDRegistry.algo.ts:82","pc":[86,87,88]},{"teal":91,"source":"contracts/NFDRegistry.algo.ts:83","pc":[89]},{"teal":97,"source":"contracts/NFDRegistry.algo.ts:86","pc":[90,91]},{"teal":98,"source":"contracts/NFDRegistry.algo.ts:86","pc":[92,93]},{"teal":99,"source":"contracts/NFDRegistry.algo.ts:86","pc":[94]},{"teal":100,"source":"contracts/NFDRegistry.algo.ts:86","pc":[95]},{"teal":101,"source":"contracts/NFDRegistry.algo.ts:86","pc":[96,97,98]},{"teal":102,"source":"contracts/NFDRegistry.algo.ts:86","pc":[99,100,101]},{"teal":103,"source":"contracts/NFDRegistry.algo.ts:86","pc":[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121]},{"teal":104,"source":"contracts/NFDRegistry.algo.ts:86","pc":[122]},{"teal":105,"source":"contracts/NFDRegistry.algo.ts:86","pc":[123]},{"teal":108,"source":"contracts/NFDRegistry.algo.ts:86","pc":[124,125,126]},{"teal":119,"source":"contracts/NFDRegistry.algo.ts:93","pc":[127,128,129]},{"teal":120,"source":"contracts/NFDRegistry.algo.ts:93","pc":[130]},{"teal":121,"source":"contracts/NFDRegistry.algo.ts:93","pc":[131,132,133]},{"teal":122,"source":"contracts/NFDRegistry.algo.ts:93","pc":[134,135,136]},{"teal":123,"source":"contracts/NFDRegistry.algo.ts:93","pc":[137,138,139]},{"teal":124,"source":"contracts/NFDRegistry.algo.ts:94","pc":[140]},{"teal":125,"source":"contracts/NFDRegistry.algo.ts:93","pc":[141,142,143]},{"teal":128,"source":"contracts/NFDRegistry.algo.ts:95","pc":[144]},{"teal":131,"source":"contracts/NFDRegistry.algo.ts:92","pc":[145]},{"teal":132,"source":"contracts/NFDRegistry.algo.ts:91","pc":[146]},{"teal":136,"source":"contracts/NFDRegistry.algo.ts:98","pc":[147]},{"teal":142,"source":"contracts/NFDRegistry.algo.ts:105","pc":[148,149]},{"teal":143,"source":"contracts/NFDRegistry.algo.ts:105","pc":[150,151]},{"teal":144,"source":"contracts/NFDRegistry.algo.ts:105","pc":[152]},{"teal":145,"source":"contracts/NFDRegistry.algo.ts:105","pc":[153]},{"teal":146,"source":"contracts/NFDRegistry.algo.ts:105","pc":[154,155,156]},{"teal":147,"source":"contracts/NFDRegistry.algo.ts:105","pc":[157,158,159]},{"teal":148,"source":"contracts/NFDRegistry.algo.ts:105","pc":[160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176]},{"teal":149,"source":"contracts/NFDRegistry.algo.ts:105","pc":[177]},{"teal":150,"source":"contracts/NFDRegistry.algo.ts:105","pc":[178]},{"teal":153,"source":"contracts/NFDRegistry.algo.ts:105","pc":[179,180,181]},{"teal":162,"source":"contracts/NFDRegistry.algo.ts:113","pc":[182,183,184]},{"teal":163,"source":"contracts/NFDRegistry.algo.ts:112","pc":[185,186,187]},{"teal":164,"source":"contracts/NFDRegistry.algo.ts:112","pc":[188]},{"teal":165,"source":"contracts/NFDRegistry.algo.ts:111","pc":[189,190,191]},{"teal":166,"source":"contracts/NFDRegistry.algo.ts:110","pc":[192,193,194]},{"teal":170,"source":"contracts/NFDRegistry.algo.ts:115","pc":[195]},{"teal":176,"source":"contracts/NFDRegistry.algo.ts:117","pc":[196,197]},{"teal":177,"source":"contracts/NFDRegistry.algo.ts:117","pc":[198,199]},{"teal":178,"source":"contracts/NFDRegistry.algo.ts:117","pc":[200]},{"teal":179,"source":"contracts/NFDRegistry.algo.ts:117","pc":[201]},{"teal":180,"source":"contracts/NFDRegistry.algo.ts:117","pc":[202,203,204]},{"teal":181,"source":"contracts/NFDRegistry.algo.ts:117","pc":[205,206,207]},{"teal":182,"source":"contracts/NFDRegistry.algo.ts:117","pc":[208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224]},{"teal":183,"source":"contracts/NFDRegistry.algo.ts:117","pc":[225]},{"teal":184,"source":"contracts/NFDRegistry.algo.ts:117","pc":[226]},{"teal":187,"source":"contracts/NFDRegistry.algo.ts:117","pc":[227,228,229]},{"teal":196,"source":"contracts/NFDRegistry.algo.ts:125","pc":[230,231,232]},{"teal":197,"source":"contracts/NFDRegistry.algo.ts:124","pc":[233,234,235]},{"teal":198,"source":"contracts/NFDRegistry.algo.ts:124","pc":[236]},{"teal":199,"source":"contracts/NFDRegistry.algo.ts:123","pc":[237,238,239]},{"teal":200,"source":"contracts/NFDRegistry.algo.ts:122","pc":[240,241,242]},{"teal":204,"source":"contracts/NFDRegistry.algo.ts:127","pc":[243]},{"teal":210,"source":"contracts/NFDRegistry.algo.ts:130","pc":[244,245]},{"teal":211,"source":"contracts/NFDRegistry.algo.ts:130","pc":[246,247]},{"teal":212,"source":"contracts/NFDRegistry.algo.ts:130","pc":[248]},{"teal":213,"source":"contracts/NFDRegistry.algo.ts:130","pc":[249]},{"teal":214,"source":"contracts/NFDRegistry.algo.ts:130","pc":[250,251,252]},{"teal":215,"source":"contracts/NFDRegistry.algo.ts:130","pc":[253,254,255]},{"teal":216,"source":"contracts/NFDRegistry.algo.ts:130","pc":[256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277]},{"teal":217,"source":"contracts/NFDRegistry.algo.ts:130","pc":[278]},{"teal":218,"source":"contracts/NFDRegistry.algo.ts:130","pc":[279]},{"teal":221,"source":"contracts/NFDRegistry.algo.ts:130","pc":[280,281,282]},{"teal":230,"source":"contracts/NFDRegistry.algo.ts:138","pc":[283,284,285]},{"teal":231,"source":"contracts/NFDRegistry.algo.ts:137","pc":[286,287,288]},{"teal":232,"source":"contracts/NFDRegistry.algo.ts:137","pc":[289]},{"teal":233,"source":"contracts/NFDRegistry.algo.ts:136","pc":[290,291,292]},{"teal":234,"source":"contracts/NFDRegistry.algo.ts:135","pc":[293,294,295]},{"teal":238,"source":"contracts/NFDRegistry.algo.ts:140","pc":[296]},{"teal":244,"source":"contracts/NFDRegistry.algo.ts:143","pc":[297,298]},{"teal":245,"source":"contracts/NFDRegistry.algo.ts:143","pc":[299,300]},{"teal":246,"source":"contracts/NFDRegistry.algo.ts:143","pc":[301]},{"teal":247,"source":"contracts/NFDRegistry.algo.ts:143","pc":[302]},{"teal":248,"source":"contracts/NFDRegistry.algo.ts:143","pc":[303,304,305]},{"teal":249,"source":"contracts/NFDRegistry.algo.ts:143","pc":[306,307,308]},{"teal":250,"source":"contracts/NFDRegistry.algo.ts:143","pc":[309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324]},{"teal":251,"source":"contracts/NFDRegistry.algo.ts:143","pc":[325]},{"teal":252,"source":"contracts/NFDRegistry.algo.ts:143","pc":[326]},{"teal":255,"source":"contracts/NFDRegistry.algo.ts:143","pc":[327,328,329]},{"teal":260,"source":"contracts/NFDRegistry.algo.ts:144","pc":[330,331,332]},{"teal":264,"source":"contracts/NFDRegistry.algo.ts:145","pc":[333]},{"teal":270,"source":"contracts/NFDRegistry.algo.ts:147","pc":[334,335]},{"teal":271,"source":"contracts/NFDRegistry.algo.ts:147","pc":[336,337]},{"teal":272,"source":"contracts/NFDRegistry.algo.ts:147","pc":[338]},{"teal":273,"source":"contracts/NFDRegistry.algo.ts:147","pc":[339]},{"teal":274,"source":"contracts/NFDRegistry.algo.ts:147","pc":[340,341,342]},{"teal":275,"source":"contracts/NFDRegistry.algo.ts:147","pc":[343,344,345]},{"teal":276,"source":"contracts/NFDRegistry.algo.ts:147","pc":[346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365]},{"teal":277,"source":"contracts/NFDRegistry.algo.ts:147","pc":[366]},{"teal":278,"source":"contracts/NFDRegistry.algo.ts:147","pc":[367]},{"teal":281,"source":"contracts/NFDRegistry.algo.ts:147","pc":[368,369,370]},{"teal":286,"source":"contracts/NFDRegistry.algo.ts:148","pc":[371,372,373]},{"teal":290,"source":"contracts/NFDRegistry.algo.ts:149","pc":[374]},{"teal":296,"source":"contracts/NFDRegistry.algo.ts:154","pc":[375,376]},{"teal":297,"source":"contracts/NFDRegistry.algo.ts:154","pc":[377,378]},{"teal":298,"source":"contracts/NFDRegistry.algo.ts:154","pc":[379]},{"teal":299,"source":"contracts/NFDRegistry.algo.ts:154","pc":[380,381,382]},{"teal":304,"source":"contracts/NFDRegistry.algo.ts:158","pc":[383,384]},{"teal":305,"source":"contracts/NFDRegistry.algo.ts:158","pc":[385]},{"teal":306,"source":"contracts/NFDRegistry.algo.ts:158","pc":[386]},{"teal":307,"source":"contracts/NFDRegistry.algo.ts:158","pc":[387,388]},{"teal":316,"source":"contracts/NFDRegistry.algo.ts:160","pc":[389,390]},{"teal":317,"source":"contracts/NFDRegistry.algo.ts:160","pc":[391,392]},{"teal":318,"source":"contracts/NFDRegistry.algo.ts:160","pc":[393]},{"teal":319,"source":"contracts/NFDRegistry.algo.ts:160","pc":[394]},{"teal":320,"source":"contracts/NFDRegistry.algo.ts:160","pc":[395]},{"teal":321,"source":"contracts/NFDRegistry.algo.ts:160","pc":[396,397,398]},{"teal":322,"source":"contracts/NFDRegistry.algo.ts:161","pc":[399,400]},{"teal":323,"source":"contracts/NFDRegistry.algo.ts:161","pc":[401,402]},{"teal":324,"source":"contracts/NFDRegistry.algo.ts:161","pc":[403,404]},{"teal":325,"source":"contracts/NFDRegistry.algo.ts:161","pc":[405]},{"teal":326,"source":"contracts/NFDRegistry.algo.ts:160","pc":[406]},{"teal":329,"source":"contracts/NFDRegistry.algo.ts:161","pc":[407]},{"teal":330,"source":"contracts/NFDRegistry.algo.ts:161","pc":[408,409,410]},{"teal":331,"source":"contracts/NFDRegistry.algo.ts:162","pc":[411,412]},{"teal":332,"source":"contracts/NFDRegistry.algo.ts:162","pc":[413,414]},{"teal":333,"source":"contracts/NFDRegistry.algo.ts:162","pc":[415,416]},{"teal":334,"source":"contracts/NFDRegistry.algo.ts:162","pc":[417]},{"teal":335,"source":"contracts/NFDRegistry.algo.ts:161","pc":[418]},{"teal":338,"source":"contracts/NFDRegistry.algo.ts:162","pc":[419]},{"teal":339,"source":"contracts/NFDRegistry.algo.ts:162","pc":[420,421,422]},{"teal":340,"source":"contracts/NFDRegistry.algo.ts:163","pc":[423,424]},{"teal":341,"source":"contracts/NFDRegistry.algo.ts:163","pc":[425,426]},{"teal":342,"source":"contracts/NFDRegistry.algo.ts:163","pc":[427,428]},{"teal":343,"source":"contracts/NFDRegistry.algo.ts:163","pc":[429]},{"teal":344,"source":"contracts/NFDRegistry.algo.ts:163","pc":[430]},{"teal":345,"source":"contracts/NFDRegistry.algo.ts:163","pc":[431,432,433]},{"teal":346,"source":"contracts/NFDRegistry.algo.ts:163","pc":[434,435]},{"teal":347,"source":"contracts/NFDRegistry.algo.ts:163","pc":[436,437]},{"teal":348,"source":"contracts/NFDRegistry.algo.ts:163","pc":[438,439]},{"teal":349,"source":"contracts/NFDRegistry.algo.ts:163","pc":[440]},{"teal":350,"source":"contracts/NFDRegistry.algo.ts:163","pc":[441]},{"teal":353,"source":"contracts/NFDRegistry.algo.ts:162","pc":[442]},{"teal":356,"source":"contracts/NFDRegistry.algo.ts:163","pc":[443]},{"teal":357,"source":"contracts/NFDRegistry.algo.ts:163","pc":[444,445,446]},{"teal":358,"source":"contracts/NFDRegistry.algo.ts:164","pc":[447,448]},{"teal":359,"source":"contracts/NFDRegistry.algo.ts:164","pc":[449,450,451]},{"teal":360,"source":"contracts/NFDRegistry.algo.ts:163","pc":[452]},{"teal":363,"source":"contracts/NFDRegistry.algo.ts:159","pc":[453,454,455]},{"teal":372,"source":"contracts/NFDRegistry.algo.ts:168","pc":[456,457]},{"teal":373,"source":"contracts/NFDRegistry.algo.ts:168","pc":[458,459]},{"teal":374,"source":"contracts/NFDRegistry.algo.ts:168","pc":[460]},{"teal":375,"source":"contracts/NFDRegistry.algo.ts:168","pc":[461]},{"teal":376,"source":"contracts/NFDRegistry.algo.ts:168","pc":[462,463,464]},{"teal":377,"source":"contracts/NFDRegistry.algo.ts:169","pc":[465,466,467]},{"teal":378,"source":"contracts/NFDRegistry.algo.ts:169","pc":[468,469,470,471,472,473,474,475,476,477,478,479,480]},{"teal":379,"source":"contracts/NFDRegistry.algo.ts:169","pc":[481]},{"teal":380,"source":"contracts/NFDRegistry.algo.ts:168","pc":[482]},{"teal":383,"source":"contracts/NFDRegistry.algo.ts:169","pc":[483]},{"teal":384,"source":"contracts/NFDRegistry.algo.ts:169","pc":[484,485,486]},{"teal":385,"source":"contracts/NFDRegistry.algo.ts:171","pc":[487,488]},{"teal":386,"source":"contracts/NFDRegistry.algo.ts:171","pc":[489]},{"teal":387,"source":"contracts/NFDRegistry.algo.ts:171","pc":[490]},{"teal":388,"source":"contracts/NFDRegistry.algo.ts:171","pc":[491,492]},{"teal":389,"source":"contracts/NFDRegistry.algo.ts:171","pc":[493,494]},{"teal":390,"source":"contracts/NFDRegistry.algo.ts:171","pc":[495]},{"teal":391,"source":"contracts/NFDRegistry.algo.ts:169","pc":[496]},{"teal":394,"source":"contracts/NFDRegistry.algo.ts:167","pc":[497,498,499]},{"teal":404,"source":"contracts/NFDRegistry.algo.ts:177","pc":[500,501,502]},{"teal":405,"source":"contracts/NFDRegistry.algo.ts:177","pc":[503]},{"teal":406,"source":"contracts/NFDRegistry.algo.ts:176","pc":[504,505]},{"teal":407,"source":"contracts/NFDRegistry.algo.ts:175","pc":[506,507]},{"teal":408,"source":"contracts/NFDRegistry.algo.ts:174","pc":[508,509]},{"teal":409,"source":"contracts/NFDRegistry.algo.ts:173","pc":[510,511,512]},{"teal":410,"source":"contracts/NFDRegistry.algo.ts:167","pc":[513,514,515]},{"teal":414,"source":"contracts/NFDRegistry.algo.ts:179","errorMessage":"invalid","pc":[516]},{"teal":424,"source":"contracts/NFDRegistry.algo.ts:185","pc":[517,518]},{"teal":425,"source":"contracts/NFDRegistry.algo.ts:185","pc":[519,520,521]},{"teal":426,"source":"contracts/NFDRegistry.algo.ts:185","pc":[522,523,524]},{"teal":432,"source":"contracts/NFDRegistry.algo.ts:186","pc":[525,526]},{"teal":433,"source":"contracts/NFDRegistry.algo.ts:186","pc":[527,528]},{"teal":434,"source":"contracts/NFDRegistry.algo.ts:186","pc":[529]},{"teal":435,"source":"contracts/NFDRegistry.algo.ts:186","pc":[530]},{"teal":436,"source":"contracts/NFDRegistry.algo.ts:186","pc":[531,532,533]},{"teal":437,"source":"contracts/NFDRegistry.algo.ts:186","pc":[534,535,536]},{"teal":438,"source":"contracts/NFDRegistry.algo.ts:186","pc":[537,538,539,540,541,542,543,544,545,546,547,548,549,550]},{"teal":439,"source":"contracts/NFDRegistry.algo.ts:186","pc":[551]},{"teal":440,"source":"contracts/NFDRegistry.algo.ts:186","pc":[552]},{"teal":443,"source":"contracts/NFDRegistry.algo.ts:186","pc":[553,554,555]},{"teal":448,"source":"contracts/NFDRegistry.algo.ts:187","pc":[556,557,558]},{"teal":452,"source":"contracts/NFDRegistry.algo.ts:188","pc":[559]},{"teal":458,"source":"contracts/NFDRegistry.algo.ts:190","pc":[560,561]},{"teal":459,"source":"contracts/NFDRegistry.algo.ts:190","pc":[562,563]},{"teal":460,"source":"contracts/NFDRegistry.algo.ts:190","pc":[564]},{"teal":461,"source":"contracts/NFDRegistry.algo.ts:190","pc":[565]},{"teal":462,"source":"contracts/NFDRegistry.algo.ts:190","pc":[566,567,568]},{"teal":463,"source":"contracts/NFDRegistry.algo.ts:190","pc":[569,570,571]},{"teal":464,"source":"contracts/NFDRegistry.algo.ts:190","pc":[572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588]},{"teal":465,"source":"contracts/NFDRegistry.algo.ts:190","pc":[589]},{"teal":466,"source":"contracts/NFDRegistry.algo.ts:190","pc":[590]},{"teal":469,"source":"contracts/NFDRegistry.algo.ts:190","pc":[591,592,593]},{"teal":474,"source":"contracts/NFDRegistry.algo.ts:191","pc":[594,595,596]},{"teal":475,"source":"contracts/NFDRegistry.algo.ts:191","pc":[597,598,599]},{"teal":476,"source":"contracts/NFDRegistry.algo.ts:191","pc":[600,601,602]},{"teal":480,"source":"contracts/NFDRegistry.algo.ts:192","pc":[603]},{"teal":486,"source":"contracts/NFDRegistry.algo.ts:194","pc":[604,605]},{"teal":487,"source":"contracts/NFDRegistry.algo.ts:194","pc":[606,607]},{"teal":488,"source":"contracts/NFDRegistry.algo.ts:194","pc":[608]},{"teal":489,"source":"contracts/NFDRegistry.algo.ts:194","pc":[609]},{"teal":490,"source":"contracts/NFDRegistry.algo.ts:194","pc":[610,611,612]},{"teal":491,"source":"contracts/NFDRegistry.algo.ts:194","pc":[613,614,615]},{"teal":492,"source":"contracts/NFDRegistry.algo.ts:194","pc":[616,617,618,619,620,621,622,623,624,625,626,627]},{"teal":493,"source":"contracts/NFDRegistry.algo.ts:194","pc":[628]},{"teal":494,"source":"contracts/NFDRegistry.algo.ts:194","pc":[629]},{"teal":497,"source":"contracts/NFDRegistry.algo.ts:194","pc":[630,631,632]},{"teal":502,"source":"contracts/NFDRegistry.algo.ts:195","pc":[633,634,635]},{"teal":506,"source":"contracts/NFDRegistry.algo.ts:196","pc":[636]},{"teal":510,"source":"contracts/NFDRegistry.algo.ts:198","errorMessage":"invalid method","pc":[637]},{"teal":514,"source":"contracts/NFDRegistry.algo.ts:200","errorMessage":"unknown method","pc":[638]},{"teal":515,"source":"contracts/NFDRegistry.algo.ts:73","pc":[639]},{"teal":520,"source":"contracts/NFDRegistry.algo.ts:204","pc":[640,641,642]},{"teal":521,"source":"contracts/NFDRegistry.algo.ts:204","pc":[643]},{"teal":522,"source":"contracts/NFDRegistry.algo.ts:204","pc":[644]},{"teal":526,"source":"contracts/NFDRegistry.algo.ts:204","pc":[645,646,647]},{"teal":527,"source":"contracts/NFDRegistry.algo.ts:204","pc":[648]},{"teal":532,"source":"contracts/NFDRegistry.algo.ts:216","pc":[649]},{"teal":535,"source":"contracts/NFDRegistry.algo.ts:216","pc":[650,651,652]},{"teal":536,"source":"contracts/NFDRegistry.algo.ts:216","pc":[653]},{"teal":537,"source":"contracts/NFDRegistry.algo.ts:216","pc":[654]},{"teal":538,"source":"contracts/NFDRegistry.algo.ts:216","pc":[655,656]},{"teal":539,"source":"contracts/NFDRegistry.algo.ts:216","pc":[657]},{"teal":542,"source":"contracts/NFDRegistry.algo.ts:216","errorMessage":"argument 0 (caller) for getPrice must be a address","pc":[658]},{"teal":545,"source":"contracts/NFDRegistry.algo.ts:216","pc":[659,660,661]},{"teal":546,"source":"contracts/NFDRegistry.algo.ts:216","pc":[662,663,664]},{"teal":549,"source":"contracts/NFDRegistry.algo.ts:216","pc":[665,666,667]},{"teal":550,"source":"contracts/NFDRegistry.algo.ts:216","pc":[668]},{"teal":551,"source":"contracts/NFDRegistry.algo.ts:216","pc":[669]},{"teal":552,"source":"contracts/NFDRegistry.algo.ts:216","pc":[670]},{"teal":553,"source":"contracts/NFDRegistry.algo.ts:216","pc":[671]},{"teal":566,"source":"contracts/NFDRegistry.algo.ts:216","pc":[672,673,674]},{"teal":570,"source":"contracts/NFDRegistry.algo.ts:217","pc":[675,676]},{"teal":571,"source":"contracts/NFDRegistry.algo.ts:217","pc":[677,678]},{"teal":572,"source":"contracts/NFDRegistry.algo.ts:217","pc":[679,680,681]},{"teal":573,"source":"contracts/NFDRegistry.algo.ts:217","pc":[682,683]},{"teal":574,"source":"contracts/NFDRegistry.algo.ts:217","pc":[684,685,686]},{"teal":575,"source":"contracts/NFDRegistry.algo.ts:216","pc":[687]},{"teal":580,"source":"contracts/NFDRegistry.algo.ts:220","pc":[688]},{"teal":583,"source":"contracts/NFDRegistry.algo.ts:220","pc":[689,690,691]},{"teal":584,"source":"contracts/NFDRegistry.algo.ts:220","pc":[692]},{"teal":585,"source":"contracts/NFDRegistry.algo.ts:220","pc":[693]},{"teal":586,"source":"contracts/NFDRegistry.algo.ts:220","pc":[694]},{"teal":587,"source":"contracts/NFDRegistry.algo.ts:220","pc":[695]},{"teal":591,"source":"contracts/NFDRegistry.algo.ts:220","pc":[696,697,698]},{"teal":594,"source":"contracts/NFDRegistry.algo.ts:220","pc":[699]},{"teal":595,"source":"contracts/NFDRegistry.algo.ts:220","pc":[700]},{"teal":599,"source":"contracts/NFDRegistry.algo.ts:221","pc":[701,702]},{"teal":600,"source":"contracts/NFDRegistry.algo.ts:221","pc":[703,704,705]},{"teal":601,"source":"contracts/NFDRegistry.algo.ts:221","pc":[706,707,708]},{"teal":602,"source":"contracts/NFDRegistry.algo.ts:221","pc":[709,710]},{"teal":606,"source":"contracts/NFDRegistry.algo.ts:222","pc":[711,712]},{"teal":607,"source":"contracts/NFDRegistry.algo.ts:222","pc":[713]},{"teal":608,"source":"contracts/NFDRegistry.algo.ts:222","pc":[714]},{"teal":609,"source":"contracts/NFDRegistry.algo.ts:222","pc":[715,716,717]},{"teal":610,"source":"contracts/NFDRegistry.algo.ts:222","pc":[718]},{"teal":611,"source":"contracts/NFDRegistry.algo.ts:222","pc":[719,720,721]},{"teal":614,"source":"contracts/NFDRegistry.algo.ts:222","pc":[722,723]},{"teal":617,"source":"contracts/NFDRegistry.algo.ts:222","pc":[724,725]},{"teal":629,"source":"contracts/NFDRegistry.algo.ts:224","pc":[726,727]},{"teal":630,"source":"contracts/NFDRegistry.algo.ts:224","pc":[728]},{"teal":631,"source":"contracts/NFDRegistry.algo.ts:225","pc":[729,730]},{"teal":632,"source":"contracts/NFDRegistry.algo.ts:225","pc":[731,732,733]},{"teal":633,"source":"contracts/NFDRegistry.algo.ts:225","pc":[734]},{"teal":634,"source":"contracts/NFDRegistry.algo.ts:225","pc":[735]},{"teal":635,"source":"contracts/NFDRegistry.algo.ts:226","pc":[736,737,738,739,740,741,742,743,744,745]},{"teal":636,"source":"contracts/NFDRegistry.algo.ts:226","pc":[746]},{"teal":637,"source":"contracts/NFDRegistry.algo.ts:227","pc":[747,748]},{"teal":638,"source":"contracts/NFDRegistry.algo.ts:227","pc":[749]},{"teal":639,"source":"contracts/NFDRegistry.algo.ts:228","pc":[750,751]},{"teal":640,"source":"contracts/NFDRegistry.algo.ts:228","pc":[752]},{"teal":641,"source":"contracts/NFDRegistry.algo.ts:228","pc":[753]},{"teal":642,"source":"contracts/NFDRegistry.algo.ts:229","pc":[754,755,756,757,758,759,760,761,762,763]},{"teal":643,"source":"contracts/NFDRegistry.algo.ts:229","pc":[764]},{"teal":644,"source":"contracts/NFDRegistry.algo.ts:230","pc":[765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826]},{"teal":645,"source":"contracts/NFDRegistry.algo.ts:230","pc":[827,828,829]},{"teal":646,"source":"contracts/NFDRegistry.algo.ts:230","pc":[830]},{"teal":647,"source":"contracts/NFDRegistry.algo.ts:230","pc":[831]},{"teal":650,"source":"contracts/NFDRegistry.algo.ts:220","pc":[832,833]},{"teal":653,"source":"contracts/NFDRegistry.algo.ts:220","pc":[834,835]},{"teal":654,"source":"contracts/NFDRegistry.algo.ts:220","pc":[836]},{"teal":659,"source":"contracts/NFDRegistry.algo.ts:239","pc":[837]},{"teal":662,"source":"contracts/NFDRegistry.algo.ts:239","pc":[838,839,840]},{"teal":663,"source":"contracts/NFDRegistry.algo.ts:239","pc":[841,842,843]},{"teal":666,"source":"contracts/NFDRegistry.algo.ts:239","pc":[844,845,846]},{"teal":667,"source":"contracts/NFDRegistry.algo.ts:239","pc":[847]},{"teal":668,"source":"contracts/NFDRegistry.algo.ts:239","pc":[848]},{"teal":669,"source":"contracts/NFDRegistry.algo.ts:239","pc":[849]},{"teal":670,"source":"contracts/NFDRegistry.algo.ts:239","pc":[850]},{"teal":671,"source":"contracts/NFDRegistry.algo.ts:239","pc":[851]},{"teal":679,"source":"contracts/NFDRegistry.algo.ts:239","pc":[852,853,854]},{"teal":682,"source":"contracts/NFDRegistry.algo.ts:239","pc":[855]},{"teal":683,"source":"contracts/NFDRegistry.algo.ts:239","pc":[856]},{"teal":688,"source":"contracts/NFDRegistry.algo.ts:245","pc":[857,858]},{"teal":689,"source":"contracts/NFDRegistry.algo.ts:245","pc":[859]},{"teal":690,"source":"contracts/NFDRegistry.algo.ts:245","pc":[860,861]},{"teal":691,"source":"contracts/NFDRegistry.algo.ts:245","pc":[862,863]},{"teal":692,"source":"contracts/NFDRegistry.algo.ts:245","pc":[864]},{"teal":693,"source":"contracts/NFDRegistry.algo.ts:245","pc":[865,866,867]},{"teal":694,"source":"contracts/NFDRegistry.algo.ts:245","pc":[868,869]},{"teal":695,"source":"contracts/NFDRegistry.algo.ts:245","pc":[870]},{"teal":696,"source":"contracts/NFDRegistry.algo.ts:244","pc":[871,872]},{"teal":700,"source":"contracts/NFDRegistry.algo.ts:251","pc":[873,874]},{"teal":701,"source":"contracts/NFDRegistry.algo.ts:251","pc":[875,876]},{"teal":702,"source":"contracts/NFDRegistry.algo.ts:251","pc":[877]},{"teal":703,"source":"contracts/NFDRegistry.algo.ts:251","pc":[878]},{"teal":704,"source":"contracts/NFDRegistry.algo.ts:251","pc":[879,880]},{"teal":705,"source":"contracts/NFDRegistry.algo.ts:251","pc":[881,882,883]},{"teal":706,"source":"contracts/NFDRegistry.algo.ts:251","pc":[884,885]},{"teal":710,"source":"contracts/NFDRegistry.algo.ts:252","pc":[886,887]},{"teal":711,"source":"contracts/NFDRegistry.algo.ts:252","pc":[888,889]},{"teal":712,"source":"contracts/NFDRegistry.algo.ts:252","pc":[890]},{"teal":713,"source":"contracts/NFDRegistry.algo.ts:252","pc":[891,892,893]},{"teal":714,"source":"contracts/NFDRegistry.algo.ts:252","pc":[894]},{"teal":717,"source":"contracts/NFDRegistry.algo.ts:239","pc":[895,896]},{"teal":720,"source":"contracts/NFDRegistry.algo.ts:239","pc":[897,898]},{"teal":721,"source":"contracts/NFDRegistry.algo.ts:239","pc":[899]},{"teal":726,"source":"contracts/NFDRegistry.algo.ts:256","pc":[900]},{"teal":729,"source":"contracts/NFDRegistry.algo.ts:256","pc":[901,902,903]},{"teal":730,"source":"contracts/NFDRegistry.algo.ts:256","pc":[904]},{"teal":731,"source":"contracts/NFDRegistry.algo.ts:256","pc":[905]},{"teal":732,"source":"contracts/NFDRegistry.algo.ts:256","pc":[906,907]},{"teal":733,"source":"contracts/NFDRegistry.algo.ts:256","pc":[908]},{"teal":736,"source":"contracts/NFDRegistry.algo.ts:256","errorMessage":"argument 0 (address) for getNfdLinkOnMintExtraMbrCost must be a address","pc":[909]},{"teal":739,"source":"contracts/NFDRegistry.algo.ts:256","pc":[910,911,912]},{"teal":740,"source":"contracts/NFDRegistry.algo.ts:256","pc":[913]},{"teal":741,"source":"contracts/NFDRegistry.algo.ts:256","pc":[914]},{"teal":742,"source":"contracts/NFDRegistry.algo.ts:256","pc":[915]},{"teal":743,"source":"contracts/NFDRegistry.algo.ts:256","pc":[916]},{"teal":747,"source":"contracts/NFDRegistry.algo.ts:256","pc":[917,918,919]},{"teal":754,"source":"contracts/NFDRegistry.algo.ts:258","pc":[920,921]},{"teal":755,"source":"contracts/NFDRegistry.algo.ts:258","pc":[922]},{"teal":756,"source":"contracts/NFDRegistry.algo.ts:258","pc":[923,924]},{"teal":757,"source":"contracts/NFDRegistry.algo.ts:258","pc":[925]},{"teal":758,"source":"contracts/NFDRegistry.algo.ts:258","pc":[926]},{"teal":759,"source":"contracts/NFDRegistry.algo.ts:258","pc":[927,928,929]},{"teal":760,"source":"contracts/NFDRegistry.algo.ts:258","pc":[930]},{"teal":761,"source":"contracts/NFDRegistry.algo.ts:259","pc":[931,932]},{"teal":762,"source":"contracts/NFDRegistry.algo.ts:259","pc":[933,934,935]},{"teal":763,"source":"contracts/NFDRegistry.algo.ts:259","pc":[936]},{"teal":764,"source":"contracts/NFDRegistry.algo.ts:259","pc":[937]},{"teal":765,"source":"contracts/NFDRegistry.algo.ts:256","pc":[938]},{"teal":770,"source":"contracts/NFDRegistry.algo.ts:272","pc":[939]},{"teal":773,"source":"contracts/NFDRegistry.algo.ts:272","pc":[940,941,942]},{"teal":774,"source":"contracts/NFDRegistry.algo.ts:272","pc":[943]},{"teal":775,"source":"contracts/NFDRegistry.algo.ts:272","pc":[944]},{"teal":776,"source":"contracts/NFDRegistry.algo.ts:272","pc":[945]},{"teal":777,"source":"contracts/NFDRegistry.algo.ts:272","pc":[946]},{"teal":780,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 0 (linkOnMint) for mintNfd must be a bool","pc":[947]},{"teal":781,"source":"contracts/NFDRegistry.algo.ts:272","pc":[948]},{"teal":782,"source":"contracts/NFDRegistry.algo.ts:272","pc":[949]},{"teal":785,"source":"contracts/NFDRegistry.algo.ts:272","pc":[950,951,952]},{"teal":786,"source":"contracts/NFDRegistry.algo.ts:272","pc":[953]},{"teal":787,"source":"contracts/NFDRegistry.algo.ts:272","pc":[954]},{"teal":788,"source":"contracts/NFDRegistry.algo.ts:272","pc":[955,956]},{"teal":789,"source":"contracts/NFDRegistry.algo.ts:272","pc":[957]},{"teal":792,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 1 (reservedFor) for mintNfd must be a address","pc":[958]},{"teal":795,"source":"contracts/NFDRegistry.algo.ts:272","pc":[959,960,961]},{"teal":796,"source":"contracts/NFDRegistry.algo.ts:272","pc":[962,963,964]},{"teal":799,"source":"contracts/NFDRegistry.algo.ts:272","pc":[965,966]},{"teal":800,"source":"contracts/NFDRegistry.algo.ts:272","pc":[967]},{"teal":801,"source":"contracts/NFDRegistry.algo.ts:272","pc":[968]},{"teal":802,"source":"contracts/NFDRegistry.algo.ts:272","pc":[969]},{"teal":803,"source":"contracts/NFDRegistry.algo.ts:272","pc":[970,971]},{"teal":804,"source":"contracts/NFDRegistry.algo.ts:272","pc":[972]},{"teal":805,"source":"contracts/NFDRegistry.algo.ts:272","pc":[973]},{"teal":808,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 3 (purchaseTxn) for mintNfd must be a pay transaction","pc":[974]},{"teal":811,"source":"contracts/NFDRegistry.algo.ts:272","pc":[975,976,977]},{"teal":812,"source":"contracts/NFDRegistry.algo.ts:272","pc":[978]},{"teal":813,"source":"contracts/NFDRegistry.algo.ts:272","pc":[979]},{"teal":814,"source":"contracts/NFDRegistry.algo.ts:272","pc":[980]},{"teal":815,"source":"contracts/NFDRegistry.algo.ts:272","pc":[981]},{"teal":816,"source":"contracts/NFDRegistry.algo.ts:272","pc":[982]},{"teal":828,"source":"contracts/NFDRegistry.algo.ts:272","pc":[983,984,985]},{"teal":831,"source":"contracts/NFDRegistry.algo.ts:272","pc":[986]},{"teal":832,"source":"contracts/NFDRegistry.algo.ts:272","pc":[987,988]},{"teal":837,"source":"contracts/NFDRegistry.algo.ts:273","pc":[989,990]},{"teal":838,"source":"contracts/NFDRegistry.algo.ts:273","pc":[991,992]},{"teal":839,"source":"contracts/NFDRegistry.algo.ts:273","pc":[993,994]},{"teal":840,"source":"contracts/NFDRegistry.algo.ts:273","pc":[995]},{"teal":843,"source":"contracts/NFDRegistry.algo.ts:273","errorMessage":"transaction verification failed: {\"txn\":\"purchaseTxn\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[996]},{"teal":847,"source":"contracts/NFDRegistry.algo.ts:275","pc":[997,998]},{"teal":848,"source":"contracts/NFDRegistry.algo.ts:275","pc":[999]},{"teal":849,"source":"contracts/NFDRegistry.algo.ts:275","pc":[1000]},{"teal":850,"source":"contracts/NFDRegistry.algo.ts:275","pc":[1001]},{"teal":854,"source":"contracts/NFDRegistry.algo.ts:276","pc":[1002,1003]},{"teal":855,"source":"contracts/NFDRegistry.algo.ts:276","pc":[1004,1005]},{"teal":856,"source":"contracts/NFDRegistry.algo.ts:276","pc":[1006]},{"teal":857,"source":"contracts/NFDRegistry.algo.ts:276","pc":[1007]},{"teal":861,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1008]},{"teal":862,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1009]},{"teal":863,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1010,1011]},{"teal":864,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1012]},{"teal":865,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1013,1014]},{"teal":866,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1015]},{"teal":867,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1016]},{"teal":868,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1017,1018]},{"teal":869,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1019,1020]},{"teal":870,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1021,1022]},{"teal":871,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1023,1024]},{"teal":872,"source":"contracts/NFDRegistry.algo.ts:278","pc":[1025]},{"teal":876,"source":"contracts/NFDRegistry.algo.ts:281","pc":[1026,1027]},{"teal":877,"source":"contracts/NFDRegistry.algo.ts:281","pc":[1028,1029,1030]},{"teal":878,"source":"contracts/NFDRegistry.algo.ts:281","pc":[1031,1032]},{"teal":882,"source":"contracts/NFDRegistry.algo.ts:283","pc":[1033]},{"teal":883,"source":"contracts/NFDRegistry.algo.ts:283","pc":[1034,1035]},{"teal":887,"source":"contracts/NFDRegistry.algo.ts:284","pc":[1036,1037]},{"teal":888,"source":"contracts/NFDRegistry.algo.ts:284","pc":[1038,1039]},{"teal":893,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1040,1041]},{"teal":894,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1042,1043]},{"teal":895,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1044,1045]},{"teal":896,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1046]},{"teal":897,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1047]},{"teal":898,"source":"contracts/NFDRegistry.algo.ts:286","pc":[1048,1049,1050]},{"teal":903,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1051]},{"teal":904,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1052]},{"teal":905,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1053,1054]},{"teal":906,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1055]},{"teal":907,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1056,1057]},{"teal":908,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1058]},{"teal":909,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1059]},{"teal":910,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1060,1061]},{"teal":911,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1062,1063]},{"teal":912,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1064,1065]},{"teal":913,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1066,1067]},{"teal":914,"source":"contracts/NFDRegistry.algo.ts:287","pc":[1068]},{"teal":918,"source":"contracts/NFDRegistry.algo.ts:289","pc":[1069,1070]},{"teal":919,"source":"contracts/NFDRegistry.algo.ts:289","pc":[1071,1072]},{"teal":920,"source":"contracts/NFDRegistry.algo.ts:289","pc":[1073,1074,1075]},{"teal":921,"source":"contracts/NFDRegistry.algo.ts:289","pc":[1076,1077,1078]},{"teal":922,"source":"contracts/NFDRegistry.algo.ts:289","pc":[1079,1080]},{"teal":926,"source":"contracts/NFDRegistry.algo.ts:290","pc":[1081,1082]},{"teal":927,"source":"contracts/NFDRegistry.algo.ts:290","pc":[1083]},{"teal":928,"source":"contracts/NFDRegistry.algo.ts:290","pc":[1084]},{"teal":931,"source":"contracts/NFDRegistry.algo.ts:290","errorMessage":"parent nfd/id must be found","pc":[1085]},{"teal":936,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1086,1087]},{"teal":937,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1088,1089]},{"teal":938,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1090,1091,1092]},{"teal":939,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1093,1094]},{"teal":940,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1095]},{"teal":941,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1096,1097,1098]},{"teal":946,"source":"contracts/NFDRegistry.algo.ts:294","pc":[1099,1100]},{"teal":947,"source":"contracts/NFDRegistry.algo.ts:294","pc":[1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112]},{"teal":948,"source":"contracts/NFDRegistry.algo.ts:294","pc":[1113]},{"teal":951,"source":"contracts/NFDRegistry.algo.ts:294","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_SELLER)","pc":[1114]},{"teal":952,"source":"contracts/NFDRegistry.algo.ts:294","pc":[1115,1116]},{"teal":953,"source":"contracts/NFDRegistry.algo.ts:293","pc":[1117,1118,1119]},{"teal":961,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1120,1121]},{"teal":962,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1122,1123]},{"teal":963,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1124,1125]},{"teal":964,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1126]},{"teal":965,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1127]},{"teal":968,"source":"contracts/NFDRegistry.algo.ts:298","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_OWNER)","pc":[1128]},{"teal":969,"source":"contracts/NFDRegistry.algo.ts:298","pc":[1129]},{"teal":972,"source":"contracts/NFDRegistry.algo.ts:297","errorMessage":"only owner of root can mint segments if segments are locked","pc":[1130]},{"teal":979,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1131,1132]},{"teal":980,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1133,1134]},{"teal":981,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1135,1136]},{"teal":982,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1137,1138,1139]},{"teal":983,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1140,1141]},{"teal":984,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1142,1143]},{"teal":985,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1144,1145,1146]},{"teal":986,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1147]},{"teal":987,"source":"contracts/NFDRegistry.algo.ts:305","pc":[1148,1149]},{"teal":991,"source":"contracts/NFDRegistry.algo.ts:306","pc":[1150,1151]},{"teal":992,"source":"contracts/NFDRegistry.algo.ts:306","pc":[1152]},{"teal":993,"source":"contracts/NFDRegistry.algo.ts:306","pc":[1153]},{"teal":996,"source":"contracts/NFDRegistry.algo.ts:306","errorMessage":"price can never be 0","pc":[1154]},{"teal":1000,"source":"contracts/NFDRegistry.algo.ts:309","pc":[1155,1156]},{"teal":1001,"source":"contracts/NFDRegistry.algo.ts:309","pc":[1157,1158,1159]},{"teal":1002,"source":"contracts/NFDRegistry.algo.ts:309","pc":[1160,1161]},{"teal":1006,"source":"contracts/NFDRegistry.algo.ts:310","pc":[1162]},{"teal":1007,"source":"contracts/NFDRegistry.algo.ts:310","pc":[1163,1164]},{"teal":1012,"source":"contracts/NFDRegistry.algo.ts:311","pc":[1165,1166]},{"teal":1013,"source":"contracts/NFDRegistry.algo.ts:311","pc":[1167,1168,1169]},{"teal":1018,"source":"contracts/NFDRegistry.algo.ts:312","pc":[1170,1171]},{"teal":1019,"source":"contracts/NFDRegistry.algo.ts:312","pc":[1172,1173,1174]},{"teal":1020,"source":"contracts/NFDRegistry.algo.ts:312","pc":[1175,1176]},{"teal":1024,"source":"contracts/NFDRegistry.algo.ts:313","pc":[1177,1178]},{"teal":1025,"source":"contracts/NFDRegistry.algo.ts:313","pc":[1179,1180,1181]},{"teal":1026,"source":"contracts/NFDRegistry.algo.ts:313","pc":[1182]},{"teal":1027,"source":"contracts/NFDRegistry.algo.ts:313","pc":[1183,1184]},{"teal":1031,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1185,1186]},{"teal":1032,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1187,1188]},{"teal":1033,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1189,1190,1191]},{"teal":1034,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1192]},{"teal":1035,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1193,1194]},{"teal":1036,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1195,1196,1197]},{"teal":1037,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1198]},{"teal":1038,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1199]},{"teal":1039,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1200]},{"teal":1040,"source":"contracts/NFDRegistry.algo.ts:314","pc":[1201,1202]},{"teal":1047,"source":"contracts/NFDRegistry.algo.ts:316","pc":[1203,1204]},{"teal":1048,"source":"contracts/NFDRegistry.algo.ts:316","pc":[1205,1206]},{"teal":1049,"source":"contracts/NFDRegistry.algo.ts:316","pc":[1207]},{"teal":1052,"source":"contracts/NFDRegistry.algo.ts:315","errorMessage":"if linking on mint, the buyer MUST be who will be the owner (reservedFor)","pc":[1208]},{"teal":1058,"source":"contracts/NFDRegistry.algo.ts:320","pc":[1209,1210]},{"teal":1059,"source":"contracts/NFDRegistry.algo.ts:320","pc":[1211]},{"teal":1060,"source":"contracts/NFDRegistry.algo.ts:320","pc":[1212]},{"teal":1061,"source":"contracts/NFDRegistry.algo.ts:320","pc":[1213,1214,1215]},{"teal":1069,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1216,1217]},{"teal":1070,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1218,1219]},{"teal":1071,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1220,1221]},{"teal":1072,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1222,1223]},{"teal":1073,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1224]},{"teal":1074,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1225]},{"teal":1075,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1226,1227]},{"teal":1076,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1228]},{"teal":1077,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1229,1230]},{"teal":1078,"source":"contracts/NFDRegistry.algo.ts:323","pc":[1231]},{"teal":1081,"source":"contracts/NFDRegistry.algo.ts:322","errorMessage":"payment transaction must be at least enough to cover 30 days of nfd cost + carry cost","pc":[1232]},{"teal":1086,"source":"contracts/NFDRegistry.algo.ts:330","pc":[1233,1234]},{"teal":1087,"source":"contracts/NFDRegistry.algo.ts:330","pc":[1235]},{"teal":1090,"source":"contracts/NFDRegistry.algo.ts:330","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[1236]},{"teal":1091,"source":"contracts/NFDRegistry.algo.ts:330","pc":[1237,1238]},{"teal":1098,"source":"contracts/NFDRegistry.algo.ts:332","pc":[1239,1240]},{"teal":1099,"source":"contracts/NFDRegistry.algo.ts:333","pc":[1241,1242]},{"teal":1100,"source":"contracts/NFDRegistry.algo.ts:333","pc":[1243]},{"teal":1103,"source":"contracts/NFDRegistry.algo.ts:333","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[1244]},{"teal":1104,"source":"contracts/NFDRegistry.algo.ts:331","pc":[1245]},{"teal":1105,"source":"contracts/NFDRegistry.algo.ts:331","pc":[1246,1247]},{"teal":1109,"source":"contracts/NFDRegistry.algo.ts:335","pc":[1248,1249]},{"teal":1110,"source":"contracts/NFDRegistry.algo.ts:335","pc":[1250,1251]},{"teal":1111,"source":"contracts/NFDRegistry.algo.ts:335","pc":[1252]},{"teal":1112,"source":"contracts/NFDRegistry.algo.ts:335","pc":[1253]},{"teal":1115,"source":"contracts/NFDRegistry.algo.ts:335","errorMessage":"box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value","pc":[1254]},{"teal":1116,"source":"contracts/NFDRegistry.algo.ts:335","pc":[1255,1256]},{"teal":1120,"source":"contracts/NFDRegistry.algo.ts:336","pc":[1257,1258]},{"teal":1121,"source":"contracts/NFDRegistry.algo.ts:336","pc":[1259]},{"teal":1124,"source":"contracts/NFDRegistry.algo.ts:336","errorMessage":"box value does not exist: this.boxes(approvProgName).size","pc":[1260]},{"teal":1125,"source":"contracts/NFDRegistry.algo.ts:336","pc":[1261,1262]},{"teal":1130,"source":"contracts/NFDRegistry.algo.ts:338","pc":[1263,1264]},{"teal":1131,"source":"contracts/NFDRegistry.algo.ts:338","pc":[1265,1266,1267]},{"teal":1132,"source":"contracts/NFDRegistry.algo.ts:338","pc":[1268]},{"teal":1133,"source":"contracts/NFDRegistry.algo.ts:338","pc":[1269,1270,1271]},{"teal":1138,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1272]},{"teal":1139,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1273]},{"teal":1140,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1274,1275]},{"teal":1141,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1276]},{"teal":1142,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1277,1278]},{"teal":1143,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1279]},{"teal":1144,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1280]},{"teal":1145,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1281,1282]},{"teal":1146,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1283,1284]},{"teal":1147,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1285,1286]},{"teal":1148,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1287,1288]},{"teal":1149,"source":"contracts/NFDRegistry.algo.ts:339","pc":[1289]},{"teal":1159,"source":"contracts/NFDRegistry.algo.ts:346","pc":[1290,1291]},{"teal":1160,"source":"contracts/NFDRegistry.algo.ts:345","pc":[1292,1293]},{"teal":1161,"source":"contracts/NFDRegistry.algo.ts:344","pc":[1294,1295]},{"teal":1162,"source":"contracts/NFDRegistry.algo.ts:344","pc":[1296,1297]},{"teal":1163,"source":"contracts/NFDRegistry.algo.ts:344","pc":[1298,1299]},{"teal":1164,"source":"contracts/NFDRegistry.algo.ts:344","pc":[1300]},{"teal":1165,"source":"contracts/NFDRegistry.algo.ts:343","pc":[1301,1302]},{"teal":1166,"source":"contracts/NFDRegistry.algo.ts:342","pc":[1303,1304,1305]},{"teal":1167,"source":"contracts/NFDRegistry.algo.ts:342","pc":[1306,1307]},{"teal":1212,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1308]},{"teal":1213,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1309]},{"teal":1214,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1310,1311]},{"teal":1218,"source":"contracts/NFDRegistry.algo.ts:349","pc":[1312]},{"teal":1219,"source":"contracts/NFDRegistry.algo.ts:349","pc":[1313,1314]},{"teal":1226,"source":"contracts/NFDRegistry.algo.ts:351","pc":[1315,1316]},{"teal":1227,"source":"contracts/NFDRegistry.algo.ts:351","pc":[1317]},{"teal":1228,"source":"contracts/NFDRegistry.algo.ts:351","pc":[1318,1319]},{"teal":1229,"source":"contracts/NFDRegistry.algo.ts:351","pc":[1320]},{"teal":1230,"source":"contracts/NFDRegistry.algo.ts:351","pc":[1321,1322]},{"teal":1231,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1323,1324]},{"teal":1232,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1325,1326]},{"teal":1233,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1327,1328]},{"teal":1234,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1329,1330]},{"teal":1235,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1331]},{"teal":1236,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1332]},{"teal":1237,"source":"contracts/NFDRegistry.algo.ts:352","pc":[1333,1334]},{"teal":1241,"source":"contracts/NFDRegistry.algo.ts:354","pc":[1335,1336]},{"teal":1242,"source":"contracts/NFDRegistry.algo.ts:354","pc":[1337,1338]},{"teal":1246,"source":"contracts/NFDRegistry.algo.ts:355","pc":[1339]},{"teal":1247,"source":"contracts/NFDRegistry.algo.ts:355","pc":[1340,1341]},{"teal":1251,"source":"contracts/NFDRegistry.algo.ts:356","pc":[1342,1343]},{"teal":1252,"source":"contracts/NFDRegistry.algo.ts:356","pc":[1344,1345]},{"teal":1256,"source":"contracts/NFDRegistry.algo.ts:357","pc":[1346,1347]},{"teal":1257,"source":"contracts/NFDRegistry.algo.ts:357","pc":[1348,1349]},{"teal":1291,"source":"contracts/NFDRegistry.algo.ts:371","pc":[1350,1351,1352,1353,1354,1355]},{"teal":1292,"source":"contracts/NFDRegistry.algo.ts:370","pc":[1356,1357]},{"teal":1293,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1358,1359]},{"teal":1294,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1360]},{"teal":1295,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1361]},{"teal":1296,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1362]},{"teal":1297,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1363,1364,1365]},{"teal":1298,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1366]},{"teal":1299,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1367]},{"teal":1300,"source":"contracts/NFDRegistry.algo.ts:373","pc":[1368,1369]},{"teal":1301,"source":"contracts/NFDRegistry.algo.ts:374","pc":[1370,1371]},{"teal":1302,"source":"contracts/NFDRegistry.algo.ts:374","pc":[1372,1373]},{"teal":1303,"source":"contracts/NFDRegistry.algo.ts:375","pc":[1374,1375]},{"teal":1304,"source":"contracts/NFDRegistry.algo.ts:375","pc":[1376,1377]},{"teal":1305,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1378,1379]},{"teal":1306,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1380,1381]},{"teal":1307,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1382,1383]},{"teal":1308,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1384]},{"teal":1309,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1385]},{"teal":1310,"source":"contracts/NFDRegistry.algo.ts:378","pc":[1386,1387]},{"teal":1311,"source":"contracts/NFDRegistry.algo.ts:379","pc":[1388,1389]},{"teal":1312,"source":"contracts/NFDRegistry.algo.ts:379","pc":[1390]},{"teal":1313,"source":"contracts/NFDRegistry.algo.ts:379","pc":[1391,1392]},{"teal":1314,"source":"contracts/NFDRegistry.algo.ts:380","pc":[1393,1394]},{"teal":1315,"source":"contracts/NFDRegistry.algo.ts:380","pc":[1395,1396]},{"teal":1316,"source":"contracts/NFDRegistry.algo.ts:381","pc":[1397,1398]},{"teal":1317,"source":"contracts/NFDRegistry.algo.ts:381","pc":[1399]},{"teal":1318,"source":"contracts/NFDRegistry.algo.ts:381","pc":[1400,1401]},{"teal":1319,"source":"contracts/NFDRegistry.algo.ts:383","pc":[1402,1403]},{"teal":1320,"source":"contracts/NFDRegistry.algo.ts:383","pc":[1404,1405]},{"teal":1321,"source":"contracts/NFDRegistry.algo.ts:384","pc":[1406,1407]},{"teal":1322,"source":"contracts/NFDRegistry.algo.ts:384","pc":[1408,1409]},{"teal":1323,"source":"contracts/NFDRegistry.algo.ts:386","pc":[1410,1411]},{"teal":1324,"source":"contracts/NFDRegistry.algo.ts:386","pc":[1412]},{"teal":1325,"source":"contracts/NFDRegistry.algo.ts:386","pc":[1413,1414]},{"teal":1326,"source":"contracts/NFDRegistry.algo.ts:387","pc":[1415,1416]},{"teal":1327,"source":"contracts/NFDRegistry.algo.ts:387","pc":[1417,1418]},{"teal":1330,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1419]},{"teal":1331,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1420,1421]},{"teal":1334,"source":"contracts/NFDRegistry.algo.ts:348","pc":[1422]},{"teal":1338,"source":"contracts/NFDRegistry.algo.ts:392","pc":[1423,1424]},{"teal":1339,"source":"contracts/NFDRegistry.algo.ts:392","pc":[1425,1426]},{"teal":1343,"source":"contracts/NFDRegistry.algo.ts:393","pc":[1427,1428]},{"teal":1344,"source":"contracts/NFDRegistry.algo.ts:393","pc":[1429,1430]},{"teal":1345,"source":"contracts/NFDRegistry.algo.ts:393","pc":[1431]},{"teal":1346,"source":"contracts/NFDRegistry.algo.ts:393","pc":[1432,1433]},{"teal":1350,"source":"contracts/NFDRegistry.algo.ts:394","pc":[1434,1435,1436]},{"teal":1351,"source":"contracts/NFDRegistry.algo.ts:394","pc":[1437,1438]},{"teal":1358,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1439]},{"teal":1359,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1440]},{"teal":1360,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1441,1442]},{"teal":1364,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1443,1444]},{"teal":1365,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1445,1446]},{"teal":1366,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1447,1448]},{"teal":1367,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1449]},{"teal":1368,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1450,1451]},{"teal":1369,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1452]},{"teal":1370,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1453,1454]},{"teal":1371,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1455]},{"teal":1372,"source":"contracts/NFDRegistry.algo.ts:403","pc":[1456,1457]},{"teal":1376,"source":"contracts/NFDRegistry.algo.ts:404","pc":[1458,1459]},{"teal":1377,"source":"contracts/NFDRegistry.algo.ts:404","pc":[1460,1461]},{"teal":1380,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1462]},{"teal":1381,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1463,1464]},{"teal":1384,"source":"contracts/NFDRegistry.algo.ts:402","pc":[1465]},{"teal":1394,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1466]},{"teal":1395,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1467]},{"teal":1396,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1468,1469]},{"teal":1397,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1470,1471,1472,1473,1474,1475]},{"teal":1398,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1476,1477]},{"teal":1402,"source":"contracts/NFDRegistry.algo.ts:408","pc":[1478,1479]},{"teal":1403,"source":"contracts/NFDRegistry.algo.ts:408","pc":[1480,1481]},{"teal":1410,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1482,1483]},{"teal":1411,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1484,1485,1486]},{"teal":1412,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1487]},{"teal":1413,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1488]},{"teal":1414,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1489]},{"teal":1415,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1490,1491,1492]},{"teal":1416,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1493]},{"teal":1417,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1494]},{"teal":1418,"source":"contracts/NFDRegistry.algo.ts:410","pc":[1495,1496]},{"teal":1419,"source":"contracts/NFDRegistry.algo.ts:411","pc":[1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560]},{"teal":1420,"source":"contracts/NFDRegistry.algo.ts:411","pc":[1561,1562]},{"teal":1423,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1563]},{"teal":1424,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1564,1565]},{"teal":1427,"source":"contracts/NFDRegistry.algo.ts:407","pc":[1566]},{"teal":1431,"source":"contracts/NFDRegistry.algo.ts:415","pc":[1567,1568]},{"teal":1432,"source":"contracts/NFDRegistry.algo.ts:415","pc":[1569]},{"teal":1433,"source":"contracts/NFDRegistry.algo.ts:415","pc":[1570,1571]},{"teal":1437,"source":"contracts/NFDRegistry.algo.ts:418","pc":[1572]},{"teal":1438,"source":"contracts/NFDRegistry.algo.ts:418","pc":[1573,1574]},{"teal":1439,"source":"contracts/NFDRegistry.algo.ts:418","pc":[1575,1576]},{"teal":1440,"source":"contracts/NFDRegistry.algo.ts:418","pc":[1577,1578]},{"teal":1441,"source":"contracts/NFDRegistry.algo.ts:418","pc":[1579,1580,1581]},{"teal":1446,"source":"contracts/NFDRegistry.algo.ts:421","pc":[1582,1583]},{"teal":1447,"source":"contracts/NFDRegistry.algo.ts:421","pc":[1584]},{"teal":1448,"source":"contracts/NFDRegistry.algo.ts:421","pc":[1585]},{"teal":1449,"source":"contracts/NFDRegistry.algo.ts:421","pc":[1586,1587,1588]},{"teal":1455,"source":"contracts/NFDRegistry.algo.ts:423","pc":[1589,1590]},{"teal":1456,"source":"contracts/NFDRegistry.algo.ts:423","pc":[1591,1592,1593]},{"teal":1457,"source":"contracts/NFDRegistry.algo.ts:423","pc":[1594,1595,1596]},{"teal":1465,"source":"contracts/NFDRegistry.algo.ts:425","pc":[1597,1598]},{"teal":1466,"source":"contracts/NFDRegistry.algo.ts:425","pc":[1599,1600]},{"teal":1467,"source":"contracts/NFDRegistry.algo.ts:425","pc":[1601]},{"teal":1470,"source":"contracts/NFDRegistry.algo.ts:425","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_VERSION)","pc":[1602]},{"teal":1471,"source":"contracts/NFDRegistry.algo.ts:425","pc":[1603,1604,1605,1606,1607,1608]},{"teal":1472,"source":"contracts/NFDRegistry.algo.ts:425","pc":[1609]},{"teal":1475,"source":"contracts/NFDRegistry.algo.ts:424","errorMessage":"nfd root not 3.x must be version 2.12 in order for segment minting to succeed","pc":[1610]},{"teal":1483,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1611]},{"teal":1484,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1612]},{"teal":1485,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1613,1614]},{"teal":1489,"source":"contracts/NFDRegistry.algo.ts:429","pc":[1615]},{"teal":1490,"source":"contracts/NFDRegistry.algo.ts:429","pc":[1616,1617]},{"teal":1494,"source":"contracts/NFDRegistry.algo.ts:430","pc":[1618,1619]},{"teal":1495,"source":"contracts/NFDRegistry.algo.ts:430","pc":[1620,1621]},{"teal":1499,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643]},{"teal":1500,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1644,1645]},{"teal":1501,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1646,1647]},{"teal":1502,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1648,1649]},{"teal":1503,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1650,1651]},{"teal":1504,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1652]},{"teal":1505,"source":"contracts/NFDRegistry.algo.ts:431","pc":[1653,1654]},{"teal":1508,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1655]},{"teal":1509,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1656,1657]},{"teal":1512,"source":"contracts/NFDRegistry.algo.ts:428","pc":[1658]},{"teal":1513,"source":"contracts/NFDRegistry.algo.ts:423","pc":[1659,1660,1661]},{"teal":1521,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1662]},{"teal":1522,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1663]},{"teal":1523,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1664,1665]},{"teal":1524,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1666,1667,1668,1669,1670,1671]},{"teal":1525,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1672,1673]},{"teal":1529,"source":"contracts/NFDRegistry.algo.ts:435","pc":[1674,1675]},{"teal":1530,"source":"contracts/NFDRegistry.algo.ts:435","pc":[1676,1677]},{"teal":1534,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1678,1679]},{"teal":1535,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1680]},{"teal":1536,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1681]},{"teal":1537,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1682]},{"teal":1538,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1683,1684,1685]},{"teal":1539,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1686]},{"teal":1540,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1687]},{"teal":1541,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1688,1689]},{"teal":1542,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1690,1691]},{"teal":1543,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1692]},{"teal":1544,"source":"contracts/NFDRegistry.algo.ts:436","pc":[1693,1694]},{"teal":1547,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1695]},{"teal":1548,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1696,1697]},{"teal":1551,"source":"contracts/NFDRegistry.algo.ts:434","pc":[1698]},{"teal":1558,"source":"contracts/NFDRegistry.algo.ts:442","pc":[1699,1700,1701]},{"teal":1559,"source":"contracts/NFDRegistry.algo.ts:442","pc":[1702,1703]},{"teal":1566,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1704]},{"teal":1567,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1705]},{"teal":1568,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1706,1707]},{"teal":1569,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1708,1709,1710,1711,1712,1713]},{"teal":1570,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1714,1715]},{"teal":1574,"source":"contracts/NFDRegistry.algo.ts:445","pc":[1716,1717]},{"teal":1575,"source":"contracts/NFDRegistry.algo.ts:445","pc":[1718,1719]},{"teal":1579,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1720,1721]},{"teal":1580,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1722]},{"teal":1581,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1723,1724]},{"teal":1582,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1725,1726]},{"teal":1583,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1727,1728,1729]},{"teal":1584,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1730]},{"teal":1585,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1731]},{"teal":1586,"source":"contracts/NFDRegistry.algo.ts:446","pc":[1732,1733]},{"teal":1589,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1734]},{"teal":1590,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1735,1736]},{"teal":1593,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1737]},{"teal":1594,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1738,1739]},{"teal":1595,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1740]},{"teal":1596,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1741]},{"teal":1597,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1742,1743]},{"teal":1598,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1744,1745,1746]},{"teal":1599,"source":"contracts/NFDRegistry.algo.ts:444","pc":[1747,1748]},{"teal":1618,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1749,1750,1751,1752,1753,1754]},{"teal":1619,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1755]},{"teal":1620,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1756]},{"teal":1621,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1757,1758,1759,1760]},{"teal":1622,"source":"contracts/NFDRegistry.algo.ts:450","pc":[1761,1762]},{"teal":1623,"source":"contracts/NFDRegistry.algo.ts:450","pc":[1763]},{"teal":1624,"source":"contracts/NFDRegistry.algo.ts:450","pc":[1764,1765,1766]},{"teal":1625,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1767,1768]},{"teal":1626,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1769]},{"teal":1627,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1770]},{"teal":1628,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1771]},{"teal":1629,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1772,1773,1774]},{"teal":1630,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1775]},{"teal":1631,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1776]},{"teal":1632,"source":"contracts/NFDRegistry.algo.ts:451","pc":[1777,1778,1779]},{"teal":1633,"source":"contracts/NFDRegistry.algo.ts:452","pc":[1780,1781]},{"teal":1634,"source":"contracts/NFDRegistry.algo.ts:452","pc":[1782]},{"teal":1635,"source":"contracts/NFDRegistry.algo.ts:452","pc":[1783,1784,1785]},{"teal":1636,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1786,1787]},{"teal":1637,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1788,1789]},{"teal":1638,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1790,1791]},{"teal":1639,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1792]},{"teal":1640,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1793]},{"teal":1641,"source":"contracts/NFDRegistry.algo.ts:453","pc":[1794,1795,1796]},{"teal":1642,"source":"contracts/NFDRegistry.algo.ts:454","pc":[1797,1798]},{"teal":1643,"source":"contracts/NFDRegistry.algo.ts:454","pc":[1799]},{"teal":1644,"source":"contracts/NFDRegistry.algo.ts:454","pc":[1800,1801,1802]},{"teal":1645,"source":"contracts/NFDRegistry.algo.ts:455","pc":[1803,1804]},{"teal":1646,"source":"contracts/NFDRegistry.algo.ts:455","pc":[1805,1806,1807]},{"teal":1647,"source":"contracts/NFDRegistry.algo.ts:456","pc":[1808,1809]},{"teal":1648,"source":"contracts/NFDRegistry.algo.ts:456","pc":[1810,1811]},{"teal":1649,"source":"contracts/NFDRegistry.algo.ts:456","pc":[1812,1813,1814]},{"teal":1650,"source":"contracts/NFDRegistry.algo.ts:457","pc":[1815,1816]},{"teal":1651,"source":"contracts/NFDRegistry.algo.ts:457","pc":[1817,1818,1819]},{"teal":1652,"source":"contracts/NFDRegistry.algo.ts:458","pc":[1820,1821]},{"teal":1653,"source":"contracts/NFDRegistry.algo.ts:458","pc":[1822]},{"teal":1654,"source":"contracts/NFDRegistry.algo.ts:458","pc":[1823,1824,1825]},{"teal":1655,"source":"contracts/NFDRegistry.algo.ts:459","pc":[1826,1827]},{"teal":1656,"source":"contracts/NFDRegistry.algo.ts:459","pc":[1828,1829,1830]},{"teal":1657,"source":"contracts/NFDRegistry.algo.ts:459","pc":[1831]},{"teal":1658,"source":"contracts/NFDRegistry.algo.ts:459","pc":[1832]},{"teal":1659,"source":"contracts/NFDRegistry.algo.ts:459","pc":[1833,1834,1835]},{"teal":1660,"source":"contracts/NFDRegistry.algo.ts:460","pc":[1836,1837]},{"teal":1661,"source":"contracts/NFDRegistry.algo.ts:460","pc":[1838,1839,1840]},{"teal":1662,"source":"contracts/NFDRegistry.algo.ts:460","pc":[1841,1842,1843]},{"teal":1663,"source":"contracts/NFDRegistry.algo.ts:461","pc":[1844,1845]},{"teal":1664,"source":"contracts/NFDRegistry.algo.ts:461","pc":[1846,1847,1848]},{"teal":1665,"source":"contracts/NFDRegistry.algo.ts:461","pc":[1849]},{"teal":1666,"source":"contracts/NFDRegistry.algo.ts:461","pc":[1850]},{"teal":1667,"source":"contracts/NFDRegistry.algo.ts:461","pc":[1851,1852,1853]},{"teal":1668,"source":"contracts/NFDRegistry.algo.ts:462","pc":[1854,1855]},{"teal":1669,"source":"contracts/NFDRegistry.algo.ts:462","pc":[1856,1857,1858]},{"teal":1670,"source":"contracts/NFDRegistry.algo.ts:462","pc":[1859,1860,1861]},{"teal":1671,"source":"contracts/NFDRegistry.algo.ts:463","pc":[1862,1863]},{"teal":1672,"source":"contracts/NFDRegistry.algo.ts:463","pc":[1864,1865,1866]},{"teal":1673,"source":"contracts/NFDRegistry.algo.ts:463","pc":[1867]},{"teal":1674,"source":"contracts/NFDRegistry.algo.ts:463","pc":[1868]},{"teal":1675,"source":"contracts/NFDRegistry.algo.ts:463","pc":[1869,1870,1871]},{"teal":1676,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1872]},{"teal":1677,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1873]},{"teal":1678,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1874]},{"teal":1679,"source":"contracts/NFDRegistry.algo.ts:449","pc":[1875]},{"teal":1684,"source":"contracts/NFDRegistry.algo.ts:466","pc":[1876,1877]},{"teal":1685,"source":"contracts/NFDRegistry.algo.ts:466","pc":[1878,1879,1880]},{"teal":1693,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1881]},{"teal":1694,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1882]},{"teal":1695,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1883,1884]},{"teal":1696,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1885,1886,1887,1888,1889,1890]},{"teal":1697,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1891,1892]},{"teal":1701,"source":"contracts/NFDRegistry.algo.ts:468","pc":[1893,1894]},{"teal":1702,"source":"contracts/NFDRegistry.algo.ts:468","pc":[1895,1896]},{"teal":1706,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1897]},{"teal":1707,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1898]},{"teal":1708,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1899,1900,1901,1902]},{"teal":1709,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1903,1904]},{"teal":1710,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1905]},{"teal":1711,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1906]},{"teal":1712,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1907]},{"teal":1713,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1908,1909,1910]},{"teal":1714,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1911]},{"teal":1715,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1912]},{"teal":1716,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1913,1914,1915]},{"teal":1717,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1916,1917]},{"teal":1718,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1918]},{"teal":1719,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1919]},{"teal":1720,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1920]},{"teal":1721,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1921,1922,1923]},{"teal":1722,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1924]},{"teal":1723,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1925]},{"teal":1724,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1926,1927,1928]},{"teal":1725,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1929]},{"teal":1726,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1930]},{"teal":1727,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1931,1932,1933,1934]},{"teal":1728,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1935]},{"teal":1729,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1936]},{"teal":1730,"source":"contracts/NFDRegistry.algo.ts:469","pc":[1937,1938]},{"teal":1733,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1939]},{"teal":1734,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1940,1941]},{"teal":1737,"source":"contracts/NFDRegistry.algo.ts:467","pc":[1942]},{"teal":1741,"source":"contracts/NFDRegistry.algo.ts:471","pc":[1943,1944]},{"teal":1742,"source":"contracts/NFDRegistry.algo.ts:471","pc":[1945,1946]},{"teal":1743,"source":"contracts/NFDRegistry.algo.ts:471","pc":[1947,1948]},{"teal":1744,"source":"contracts/NFDRegistry.algo.ts:471","pc":[1949,1950,1951]},{"teal":1749,"source":"contracts/NFDRegistry.algo.ts:473","pc":[1952,1953]},{"teal":1752,"source":"contracts/NFDRegistry.algo.ts:272","pc":[1954,1955]},{"teal":1755,"source":"contracts/NFDRegistry.algo.ts:272","pc":[1956,1957]},{"teal":1756,"source":"contracts/NFDRegistry.algo.ts:272","pc":[1958]},{"teal":1761,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1959,1960,1961]},{"teal":1762,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1962]},{"teal":1763,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1963]},{"teal":1764,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1964,1965]},{"teal":1765,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1966]},{"teal":1768,"source":"contracts/NFDRegistry.algo.ts:479","errorMessage":"argument 0 (addrToVerify) for linkNfdAddress must be a address","pc":[1967]},{"teal":1771,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1968,1969,1970]},{"teal":1772,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1971]},{"teal":1775,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1972,1973,1974]},{"teal":1776,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1975,1976,1977]},{"teal":1779,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1978,1979,1980]},{"teal":1780,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1981]},{"teal":1781,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1982]},{"teal":1785,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1983,1984,1985]},{"teal":1788,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1986]},{"teal":1789,"source":"contracts/NFDRegistry.algo.ts:479","pc":[1987]},{"teal":1793,"source":"contracts/NFDRegistry.algo.ts:480","pc":[1988,1989]},{"teal":1794,"source":"contracts/NFDRegistry.algo.ts:480","pc":[1990,1991,1992]},{"teal":1795,"source":"contracts/NFDRegistry.algo.ts:480","pc":[1993,1994]},{"teal":1799,"source":"contracts/NFDRegistry.algo.ts:481","pc":[1995,1996]},{"teal":1800,"source":"contracts/NFDRegistry.algo.ts:481","pc":[1997]},{"teal":1801,"source":"contracts/NFDRegistry.algo.ts:481","pc":[1998]},{"teal":1804,"source":"contracts/NFDRegistry.algo.ts:481","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[1999]},{"teal":1805,"source":"contracts/NFDRegistry.algo.ts:481","pc":[2000,2001]},{"teal":1809,"source":"contracts/NFDRegistry.algo.ts:483","pc":[2002,2003]},{"teal":1810,"source":"contracts/NFDRegistry.algo.ts:483","pc":[2004,2005]},{"teal":1811,"source":"contracts/NFDRegistry.algo.ts:483","pc":[2006,2007,2008]},{"teal":1814,"source":"contracts/NFDRegistry.algo.ts:483","errorMessage":"referenced NFD name/id must be valid","pc":[2009]},{"teal":1819,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2010,2011]},{"teal":1820,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2012,2013]},{"teal":1821,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2014]},{"teal":1822,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2015,2016]},{"teal":1823,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2017]},{"teal":1824,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2018,2019,2020]},{"teal":1829,"source":"contracts/NFDRegistry.algo.ts:489","pc":[2021,2022]},{"teal":1830,"source":"contracts/NFDRegistry.algo.ts:489","pc":[2023,2024]},{"teal":1831,"source":"contracts/NFDRegistry.algo.ts:489","pc":[2025]},{"teal":1834,"source":"contracts/NFDRegistry.algo.ts:489","errorMessage":"verifying vault account, sender must be NFD owner","pc":[2026]},{"teal":1835,"source":"contracts/NFDRegistry.algo.ts:488","pc":[2027,2028,2029]},{"teal":1840,"source":"contracts/NFDRegistry.algo.ts:492","pc":[2030,2031]},{"teal":1841,"source":"contracts/NFDRegistry.algo.ts:492","pc":[2032,2033]},{"teal":1842,"source":"contracts/NFDRegistry.algo.ts:492","pc":[2034]},{"teal":1845,"source":"contracts/NFDRegistry.algo.ts:492","errorMessage":"app call sender must match address being added/removed","pc":[2035]},{"teal":1853,"source":"contracts/NFDRegistry.algo.ts:496","pc":[2036,2037]},{"teal":1854,"source":"contracts/NFDRegistry.algo.ts:496","pc":[2038,2039]},{"teal":1855,"source":"contracts/NFDRegistry.algo.ts:496","pc":[2040,2041]},{"teal":1856,"source":"contracts/NFDRegistry.algo.ts:496","pc":[2042,2043,2044]},{"teal":1859,"source":"contracts/NFDRegistry.algo.ts:495","errorMessage":"nfd verified caAlgo.0.as must contain address being added/removed","pc":[2045]},{"teal":1864,"source":"contracts/NFDRegistry.algo.ts:507","pc":[2046,2047]},{"teal":1865,"source":"contracts/NFDRegistry.algo.ts:507","pc":[2048,2049]},{"teal":1866,"source":"contracts/NFDRegistry.algo.ts:507","pc":[2050,2051,2052]},{"teal":1867,"source":"contracts/NFDRegistry.algo.ts:507","pc":[2053]},{"teal":1868,"source":"contracts/NFDRegistry.algo.ts:507","pc":[2054,2055,2056]},{"teal":1873,"source":"contracts/NFDRegistry.algo.ts:510","pc":[2057,2058]},{"teal":1874,"source":"contracts/NFDRegistry.algo.ts:510","pc":[2059,2060]},{"teal":1875,"source":"contracts/NFDRegistry.algo.ts:510","pc":[2061,2062,2063]},{"teal":1878,"source":"contracts/NFDRegistry.algo.ts:510","errorMessage":"should add nfd to reverse address","pc":[2064]},{"teal":1883,"source":"contracts/NFDRegistry.algo.ts:514","pc":[2065,2066]},{"teal":1884,"source":"contracts/NFDRegistry.algo.ts:514","pc":[2067,2068]},{"teal":1885,"source":"contracts/NFDRegistry.algo.ts:514","pc":[2069,2070]},{"teal":1886,"source":"contracts/NFDRegistry.algo.ts:514","pc":[2071,2072,2073]},{"teal":1887,"source":"contracts/NFDRegistry.algo.ts:479","pc":[2074]},{"teal":1892,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2075,2076,2077]},{"teal":1893,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2078]},{"teal":1894,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2079]},{"teal":1895,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2080,2081]},{"teal":1896,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2082]},{"teal":1899,"source":"contracts/NFDRegistry.algo.ts:520","errorMessage":"argument 0 (addrToUnlink) for unlinkNfdAddress must be a address","pc":[2083]},{"teal":1902,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2084,2085,2086]},{"teal":1903,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2087]},{"teal":1906,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2088,2089,2090]},{"teal":1907,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2091,2092,2093]},{"teal":1910,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2094,2095,2096]},{"teal":1911,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2097]},{"teal":1912,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2098]},{"teal":1916,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2099,2100,2101]},{"teal":1919,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2102]},{"teal":1920,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2103]},{"teal":1924,"source":"contracts/NFDRegistry.algo.ts:521","pc":[2104,2105]},{"teal":1925,"source":"contracts/NFDRegistry.algo.ts:521","pc":[2106]},{"teal":1926,"source":"contracts/NFDRegistry.algo.ts:521","pc":[2107]},{"teal":1929,"source":"contracts/NFDRegistry.algo.ts:521","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2108]},{"teal":1930,"source":"contracts/NFDRegistry.algo.ts:521","pc":[2109,2110]},{"teal":1934,"source":"contracts/NFDRegistry.algo.ts:523","pc":[2111,2112]},{"teal":1935,"source":"contracts/NFDRegistry.algo.ts:523","pc":[2113,2114]},{"teal":1936,"source":"contracts/NFDRegistry.algo.ts:523","pc":[2115,2116,2117]},{"teal":1939,"source":"contracts/NFDRegistry.algo.ts:523","errorMessage":"referenced NFD name/id must be valid","pc":[2118]},{"teal":1944,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2119,2120]},{"teal":1945,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2121,2122]},{"teal":1946,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2123,2124,2125]},{"teal":1947,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2126,2127,2128]},{"teal":1948,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2129]},{"teal":1949,"source":"contracts/NFDRegistry.algo.ts:528","pc":[2130,2131,2132]},{"teal":1957,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2133,2134]},{"teal":1958,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2135,2136]},{"teal":1959,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2137]},{"teal":1960,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2138]},{"teal":1961,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2139,2140,2141]},{"teal":1962,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2142,2143]},{"teal":1963,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2144,2145]},{"teal":1964,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2146]},{"teal":1965,"source":"contracts/NFDRegistry.algo.ts:530","pc":[2147]},{"teal":1969,"source":"contracts/NFDRegistry.algo.ts:529","errorMessage":"Sender unlinking must be NFD owner OR address removing itself","pc":[2148]},{"teal":1977,"source":"contracts/NFDRegistry.algo.ts:535","pc":[2149,2150]},{"teal":1978,"source":"contracts/NFDRegistry.algo.ts:535","pc":[2151,2152]},{"teal":1979,"source":"contracts/NFDRegistry.algo.ts:535","pc":[2153,2154]},{"teal":1980,"source":"contracts/NFDRegistry.algo.ts:535","pc":[2155,2156,2157]},{"teal":1983,"source":"contracts/NFDRegistry.algo.ts:534","errorMessage":"nfd verified caAlgo.0.as must contain address being removed","pc":[2158]},{"teal":1987,"source":"contracts/NFDRegistry.algo.ts:539","pc":[2159,2160]},{"teal":1988,"source":"contracts/NFDRegistry.algo.ts:539","pc":[2161,2162,2163]},{"teal":1989,"source":"contracts/NFDRegistry.algo.ts:539","pc":[2164,2165]},{"teal":1993,"source":"contracts/NFDRegistry.algo.ts:540","pc":[2166,2167]},{"teal":1994,"source":"contracts/NFDRegistry.algo.ts:540","pc":[2168,2169]},{"teal":1995,"source":"contracts/NFDRegistry.algo.ts:540","pc":[2170,2171,2172]},{"teal":1996,"source":"contracts/NFDRegistry.algo.ts:540","pc":[2173]},{"teal":2001,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2174,2175]},{"teal":2002,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2176]},{"teal":2003,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2177]},{"teal":2004,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2178]},{"teal":2005,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2179]},{"teal":2006,"source":"contracts/NFDRegistry.algo.ts:541","pc":[2180,2181,2182]},{"teal":2015,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2183]},{"teal":2016,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2184]},{"teal":2017,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2185,2186]},{"teal":2021,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2187,2188]},{"teal":2022,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2189]},{"teal":2023,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2190]},{"teal":2024,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2191]},{"teal":2025,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2192]},{"teal":2026,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2193,2194,2195]},{"teal":2027,"source":"contracts/NFDRegistry.algo.ts:544","pc":[2196,2197]},{"teal":2031,"source":"contracts/NFDRegistry.algo.ts:545","pc":[2198,2199]},{"teal":2032,"source":"contracts/NFDRegistry.algo.ts:545","pc":[2200,2201]},{"teal":2036,"source":"contracts/NFDRegistry.algo.ts:546","pc":[2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212]},{"teal":2037,"source":"contracts/NFDRegistry.algo.ts:546","pc":[2213,2214]},{"teal":2040,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2215]},{"teal":2041,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2216,2217]},{"teal":2044,"source":"contracts/NFDRegistry.algo.ts:543","pc":[2218]},{"teal":2049,"source":"contracts/NFDRegistry.algo.ts:551","pc":[2219,2220]},{"teal":2050,"source":"contracts/NFDRegistry.algo.ts:551","pc":[2221,2222]},{"teal":2051,"source":"contracts/NFDRegistry.algo.ts:551","pc":[2223,2224]},{"teal":2052,"source":"contracts/NFDRegistry.algo.ts:551","pc":[2225,2226]},{"teal":2053,"source":"contracts/NFDRegistry.algo.ts:551","pc":[2227,2228,2229]},{"teal":2054,"source":"contracts/NFDRegistry.algo.ts:520","pc":[2230]},{"teal":2059,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2231,2232,2233]},{"teal":2060,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2234]},{"teal":2063,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2235,2236,2237]},{"teal":2064,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2238,2239,2240]},{"teal":2067,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2241,2242,2243]},{"teal":2068,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2244]},{"teal":2069,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2245]},{"teal":2073,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2246,2247,2248]},{"teal":2076,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2249]},{"teal":2080,"source":"contracts/NFDRegistry.algo.ts:558","pc":[2250,2251]},{"teal":2081,"source":"contracts/NFDRegistry.algo.ts:558","pc":[2252,2253]},{"teal":2082,"source":"contracts/NFDRegistry.algo.ts:558","pc":[2254,2255,2256]},{"teal":2085,"source":"contracts/NFDRegistry.algo.ts:558","errorMessage":"referenced NFD name/id must be valid","pc":[2257]},{"teal":2092,"source":"contracts/NFDRegistry.algo.ts:561","pc":[2258,2259]},{"teal":2093,"source":"contracts/NFDRegistry.algo.ts:560","pc":[2260,2261]},{"teal":2094,"source":"contracts/NFDRegistry.algo.ts:560","pc":[2262]},{"teal":2095,"source":"contracts/NFDRegistry.algo.ts:560","pc":[2263]},{"teal":2098,"source":"contracts/NFDRegistry.algo.ts:560","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2264]},{"teal":2099,"source":"contracts/NFDRegistry.algo.ts:559","pc":[2265,2266,2267]},{"teal":2100,"source":"contracts/NFDRegistry.algo.ts:559","pc":[2268,2269]},{"teal":2104,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2270,2271]},{"teal":2105,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2272]},{"teal":2106,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2273]},{"teal":2107,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2274]},{"teal":2108,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2275]},{"teal":2109,"source":"contracts/NFDRegistry.algo.ts:563","pc":[2276]},{"teal":2113,"source":"contracts/NFDRegistry.algo.ts:566","pc":[2277,2278]},{"teal":2114,"source":"contracts/NFDRegistry.algo.ts:566","pc":[2279,2280]},{"teal":2115,"source":"contracts/NFDRegistry.algo.ts:566","pc":[2281]},{"teal":2116,"source":"contracts/NFDRegistry.algo.ts:557","pc":[2282]},{"teal":2121,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2283,2284,2285]},{"teal":2122,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2286]},{"teal":2123,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2287]},{"teal":2124,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2288,2289]},{"teal":2125,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2290]},{"teal":2128,"source":"contracts/NFDRegistry.algo.ts:579","errorMessage":"argument 0 (buyer) for ownershipChanged must be a address","pc":[2291]},{"teal":2131,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2292,2293,2294]},{"teal":2132,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2295]},{"teal":2133,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2296]},{"teal":2134,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2297,2298]},{"teal":2135,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2299]},{"teal":2138,"source":"contracts/NFDRegistry.algo.ts:579","errorMessage":"argument 1 (seller) for ownershipChanged must be a address","pc":[2300]},{"teal":2141,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2301,2302,2303]},{"teal":2142,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2304]},{"teal":2145,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2305,2306,2307]},{"teal":2146,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2308,2309,2310]},{"teal":2149,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2311,2312,2313]},{"teal":2150,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2314]},{"teal":2151,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2315]},{"teal":2164,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2316,2317,2318]},{"teal":2167,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2319]},{"teal":2168,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2320]},{"teal":2173,"source":"contracts/NFDRegistry.algo.ts:580","pc":[2321,2322]},{"teal":2174,"source":"contracts/NFDRegistry.algo.ts:580","pc":[2323,2324]},{"teal":2175,"source":"contracts/NFDRegistry.algo.ts:580","pc":[2325]},{"teal":2176,"source":"contracts/NFDRegistry.algo.ts:580","pc":[2326,2327,2328]},{"teal":2181,"source":"contracts/NFDRegistry.algo.ts:581","pc":[2329]},{"teal":2186,"source":"contracts/NFDRegistry.algo.ts:583","pc":[2330,2331]},{"teal":2187,"source":"contracts/NFDRegistry.algo.ts:583","pc":[2332,2333]},{"teal":2188,"source":"contracts/NFDRegistry.algo.ts:583","pc":[2334,2335,2336]},{"teal":2191,"source":"contracts/NFDRegistry.algo.ts:583","errorMessage":"referenced NFD name/id must be valid","pc":[2337]},{"teal":2196,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2338,2339]},{"teal":2197,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2340,2341]},{"teal":2198,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2342]},{"teal":2201,"source":"contracts/NFDRegistry.algo.ts:584","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)","pc":[2343]},{"teal":2202,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2344,2345,2346,2347,2348]},{"teal":2203,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2349]},{"teal":2204,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2350,2351,2352]},{"teal":2212,"source":"contracts/NFDRegistry.algo.ts:587","pc":[2353,2354]},{"teal":2213,"source":"contracts/NFDRegistry.algo.ts:587","pc":[2355,2356,2357]},{"teal":2216,"source":"contracts/NFDRegistry.algo.ts:586","errorMessage":"only txnlab can call this method to backfill ownership, 3.4+ handles it by calling from the nfd itself","pc":[2358]},{"teal":2217,"source":"contracts/NFDRegistry.algo.ts:584","pc":[2359,2360,2361]},{"teal":2222,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2362,2363]},{"teal":2223,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2364,2365]},{"teal":2224,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2366,2367]},{"teal":2225,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2368]},{"teal":2226,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2369]},{"teal":2227,"source":"contracts/NFDRegistry.algo.ts:592","pc":[2370]},{"teal":2232,"source":"contracts/NFDRegistry.algo.ts:595","pc":[2371,2372]},{"teal":2233,"source":"contracts/NFDRegistry.algo.ts:595","pc":[2373,2374]},{"teal":2234,"source":"contracts/NFDRegistry.algo.ts:595","pc":[2375,2376,2377]},{"teal":2235,"source":"contracts/NFDRegistry.algo.ts:595","pc":[2378,2379]},{"teal":2239,"source":"contracts/NFDRegistry.algo.ts:596","pc":[2380,2381]},{"teal":2240,"source":"contracts/NFDRegistry.algo.ts:596","pc":[2382,2383]},{"teal":2241,"source":"contracts/NFDRegistry.algo.ts:596","pc":[2384,2385,2386]},{"teal":2242,"source":"contracts/NFDRegistry.algo.ts:596","pc":[2387,2388]},{"teal":2246,"source":"contracts/NFDRegistry.algo.ts:597","pc":[2389,2390]},{"teal":2247,"source":"contracts/NFDRegistry.algo.ts:597","pc":[2391]},{"teal":2251,"source":"contracts/NFDRegistry.algo.ts:598","pc":[2392,2393]},{"teal":2252,"source":"contracts/NFDRegistry.algo.ts:598","pc":[2394,2395]},{"teal":2253,"source":"contracts/NFDRegistry.algo.ts:598","pc":[2396]},{"teal":2254,"source":"contracts/NFDRegistry.algo.ts:579","pc":[2397]},{"teal":2259,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2398,2399,2400]},{"teal":2260,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2401]},{"teal":2261,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2402]},{"teal":2262,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2403,2404]},{"teal":2263,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2405]},{"teal":2266,"source":"contracts/NFDRegistry.algo.ts:609","errorMessage":"argument 0 (addrBeingModified) for setAddressPrimaryNfd must be a address","pc":[2406]},{"teal":2269,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2407,2408,2409]},{"teal":2270,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2410]},{"teal":2273,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2411,2412,2413]},{"teal":2274,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2414,2415,2416]},{"teal":2277,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2417,2418,2419]},{"teal":2278,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2420]},{"teal":2279,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2421]},{"teal":2290,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2422,2423,2424]},{"teal":2293,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2425]},{"teal":2297,"source":"contracts/NFDRegistry.algo.ts:610","pc":[2426,2427]},{"teal":2298,"source":"contracts/NFDRegistry.algo.ts:610","pc":[2428,2429]},{"teal":2299,"source":"contracts/NFDRegistry.algo.ts:610","pc":[2430,2431,2432]},{"teal":2302,"source":"contracts/NFDRegistry.algo.ts:610","errorMessage":"referenced NFD name/id must be valid","pc":[2433]},{"teal":2306,"source":"contracts/NFDRegistry.algo.ts:611","pc":[2434,2435]},{"teal":2307,"source":"contracts/NFDRegistry.algo.ts:611","pc":[2436]},{"teal":2308,"source":"contracts/NFDRegistry.algo.ts:611","pc":[2437]},{"teal":2311,"source":"contracts/NFDRegistry.algo.ts:611","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2438]},{"teal":2312,"source":"contracts/NFDRegistry.algo.ts:611","pc":[2439,2440]},{"teal":2317,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2441,2442]},{"teal":2318,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2443,2444]},{"teal":2319,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2445]},{"teal":2320,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2446,2447]},{"teal":2321,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2448]},{"teal":2322,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2449,2450,2451]},{"teal":2327,"source":"contracts/NFDRegistry.algo.ts:617","pc":[2452,2453]},{"teal":2328,"source":"contracts/NFDRegistry.algo.ts:617","pc":[2454,2455]},{"teal":2329,"source":"contracts/NFDRegistry.algo.ts:617","pc":[2456]},{"teal":2332,"source":"contracts/NFDRegistry.algo.ts:617","errorMessage":"if changing primary nfd for vault account, sender must be NFD owner","pc":[2457]},{"teal":2333,"source":"contracts/NFDRegistry.algo.ts:616","pc":[2458,2459,2460]},{"teal":2341,"source":"contracts/NFDRegistry.algo.ts:621","pc":[2461,2462]},{"teal":2342,"source":"contracts/NFDRegistry.algo.ts:621","pc":[2463,2464]},{"teal":2343,"source":"contracts/NFDRegistry.algo.ts:621","pc":[2465]},{"teal":2346,"source":"contracts/NFDRegistry.algo.ts:620","errorMessage":"app call sender must match address being updated to change primary NFD","pc":[2466]},{"teal":2351,"source":"contracts/NFDRegistry.algo.ts:628","pc":[2467,2468]},{"teal":2352,"source":"contracts/NFDRegistry.algo.ts:628","pc":[2469,2470,2471]},{"teal":2353,"source":"contracts/NFDRegistry.algo.ts:628","pc":[2472,2473,2474]},{"teal":2354,"source":"contracts/NFDRegistry.algo.ts:628","pc":[2475,2476,2477]},{"teal":2362,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2478,2479,2480,2481,2482,2483]},{"teal":2363,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2484]},{"teal":2364,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2485]},{"teal":2365,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2486,2487,2488,2489]},{"teal":2366,"source":"contracts/NFDRegistry.algo.ts:631","pc":[2490,2491]},{"teal":2367,"source":"contracts/NFDRegistry.algo.ts:631","pc":[2492]},{"teal":2368,"source":"contracts/NFDRegistry.algo.ts:631","pc":[2493,2494,2495]},{"teal":2369,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2496,2497]},{"teal":2370,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2498]},{"teal":2371,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2499]},{"teal":2372,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2500]},{"teal":2373,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2501,2502,2503]},{"teal":2374,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2504]},{"teal":2375,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2505]},{"teal":2376,"source":"contracts/NFDRegistry.algo.ts:632","pc":[2506,2507,2508]},{"teal":2377,"source":"contracts/NFDRegistry.algo.ts:633","pc":[2509,2510]},{"teal":2378,"source":"contracts/NFDRegistry.algo.ts:633","pc":[2511,2512,2513]},{"teal":2379,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2514]},{"teal":2380,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2515]},{"teal":2381,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2516]},{"teal":2382,"source":"contracts/NFDRegistry.algo.ts:630","pc":[2517]},{"teal":2383,"source":"contracts/NFDRegistry.algo.ts:609","pc":[2518]},{"teal":2388,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2519]},{"teal":2391,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2520,2521,2522]},{"teal":2392,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2523,2524,2525]},{"teal":2395,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2526,2527,2528]},{"teal":2396,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2529]},{"teal":2397,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2530]},{"teal":2398,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2531]},{"teal":2399,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2532,2533,2534]},{"teal":2400,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2535]},{"teal":2401,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2536]},{"teal":2402,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2537]},{"teal":2403,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2538]},{"teal":2404,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2539]},{"teal":2405,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2540]},{"teal":2409,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2541,2542,2543]},{"teal":2412,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2544]},{"teal":2413,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2545,2546]},{"teal":2417,"source":"contracts/NFDRegistry.algo.ts:640","pc":[2547,2548]},{"teal":2418,"source":"contracts/NFDRegistry.algo.ts:640","pc":[2549,2550,2551]},{"teal":2419,"source":"contracts/NFDRegistry.algo.ts:640","pc":[2552,2553]},{"teal":2423,"source":"contracts/NFDRegistry.algo.ts:641","pc":[2554,2555]},{"teal":2424,"source":"contracts/NFDRegistry.algo.ts:641","pc":[2556]},{"teal":2425,"source":"contracts/NFDRegistry.algo.ts:641","pc":[2557]},{"teal":2428,"source":"contracts/NFDRegistry.algo.ts:641","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2558]},{"teal":2429,"source":"contracts/NFDRegistry.algo.ts:641","pc":[2559,2560]},{"teal":2433,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2561,2562]},{"teal":2434,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2563,2564]},{"teal":2435,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2565]},{"teal":2438,"source":"contracts/NFDRegistry.algo.ts:642","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)","pc":[2566]},{"teal":2439,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2567,2568]},{"teal":2440,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2569]},{"teal":2441,"source":"contracts/NFDRegistry.algo.ts:642","pc":[2570]},{"teal":2448,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2571,2572]},{"teal":2449,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2573,2574]},{"teal":2450,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2575]},{"teal":2451,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2576]},{"teal":2452,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2577,2578,2579]},{"teal":2453,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2580,2581]},{"teal":2454,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2582,2583,2584]},{"teal":2455,"source":"contracts/NFDRegistry.algo.ts:644","pc":[2585]},{"teal":2459,"source":"contracts/NFDRegistry.algo.ts:643","errorMessage":"only NFD owner or TxnLab can upgrade NFD","pc":[2586]},{"teal":2463,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2587,2588]},{"teal":2464,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2589,2590]},{"teal":2465,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2591]},{"teal":2466,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2592]},{"teal":2467,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2593]},{"teal":2468,"source":"contracts/NFDRegistry.algo.ts:649","pc":[2594]},{"teal":2472,"source":"contracts/NFDRegistry.algo.ts:652","pc":[2595,2596]},{"teal":2473,"source":"contracts/NFDRegistry.algo.ts:652","pc":[2597]},{"teal":2476,"source":"contracts/NFDRegistry.algo.ts:652","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[2598]},{"teal":2477,"source":"contracts/NFDRegistry.algo.ts:652","pc":[2599,2600]},{"teal":2484,"source":"contracts/NFDRegistry.algo.ts:654","pc":[2601,2602]},{"teal":2485,"source":"contracts/NFDRegistry.algo.ts:654","pc":[2603,2604]},{"teal":2486,"source":"contracts/NFDRegistry.algo.ts:654","pc":[2605]},{"teal":2489,"source":"contracts/NFDRegistry.algo.ts:654","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)","pc":[2606]},{"teal":2490,"source":"contracts/NFDRegistry.algo.ts:654","pc":[2607,2608]},{"teal":2491,"source":"contracts/NFDRegistry.algo.ts:654","pc":[2609]},{"teal":2494,"source":"contracts/NFDRegistry.algo.ts:653","errorMessage":"contract already at this version","pc":[2610]},{"teal":2501,"source":"contracts/NFDRegistry.algo.ts:658","pc":[2611,2612]},{"teal":2502,"source":"contracts/NFDRegistry.algo.ts:659","pc":[2613,2614]},{"teal":2503,"source":"contracts/NFDRegistry.algo.ts:659","pc":[2615]},{"teal":2506,"source":"contracts/NFDRegistry.algo.ts:659","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[2616]},{"teal":2507,"source":"contracts/NFDRegistry.algo.ts:657","pc":[2617]},{"teal":2508,"source":"contracts/NFDRegistry.algo.ts:657","pc":[2618,2619]},{"teal":2512,"source":"contracts/NFDRegistry.algo.ts:661","pc":[2620,2621]},{"teal":2513,"source":"contracts/NFDRegistry.algo.ts:661","pc":[2622,2623]},{"teal":2514,"source":"contracts/NFDRegistry.algo.ts:661","pc":[2624]},{"teal":2515,"source":"contracts/NFDRegistry.algo.ts:661","pc":[2625]},{"teal":2518,"source":"contracts/NFDRegistry.algo.ts:661","errorMessage":"box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value","pc":[2626]},{"teal":2519,"source":"contracts/NFDRegistry.algo.ts:661","pc":[2627,2628]},{"teal":2523,"source":"contracts/NFDRegistry.algo.ts:662","pc":[2629,2630]},{"teal":2524,"source":"contracts/NFDRegistry.algo.ts:662","pc":[2631]},{"teal":2527,"source":"contracts/NFDRegistry.algo.ts:662","errorMessage":"box value does not exist: this.boxes(approvProgName).size","pc":[2632]},{"teal":2528,"source":"contracts/NFDRegistry.algo.ts:662","pc":[2633,2634]},{"teal":2541,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2635]},{"teal":2542,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2636]},{"teal":2543,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2637,2638]},{"teal":2544,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2639,2640,2641,2642,2643,2644]},{"teal":2545,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2645,2646]},{"teal":2549,"source":"contracts/NFDRegistry.algo.ts:665","pc":[2647,2648]},{"teal":2550,"source":"contracts/NFDRegistry.algo.ts:665","pc":[2649,2650]},{"teal":2554,"source":"contracts/NFDRegistry.algo.ts:666","pc":[2651,2652]},{"teal":2555,"source":"contracts/NFDRegistry.algo.ts:666","pc":[2653,2654]},{"teal":2559,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2655,2656]},{"teal":2560,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2657]},{"teal":2561,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2658]},{"teal":2562,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2659]},{"teal":2563,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2660,2661,2662]},{"teal":2564,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2663]},{"teal":2565,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2664]},{"teal":2566,"source":"contracts/NFDRegistry.algo.ts:667","pc":[2665,2666]},{"teal":2573,"source":"contracts/NFDRegistry.algo.ts:669","pc":[2667,2668]},{"teal":2574,"source":"contracts/NFDRegistry.algo.ts:669","pc":[2669]},{"teal":2575,"source":"contracts/NFDRegistry.algo.ts:669","pc":[2670,2671]},{"teal":2576,"source":"contracts/NFDRegistry.algo.ts:669","pc":[2672]},{"teal":2577,"source":"contracts/NFDRegistry.algo.ts:669","pc":[2673,2674]},{"teal":2578,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2675,2676]},{"teal":2579,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2677,2678]},{"teal":2580,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2679,2680]},{"teal":2581,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2681,2682]},{"teal":2582,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2683]},{"teal":2583,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2684]},{"teal":2584,"source":"contracts/NFDRegistry.algo.ts:670","pc":[2685,2686]},{"teal":2588,"source":"contracts/NFDRegistry.algo.ts:672","pc":[2687,2688]},{"teal":2589,"source":"contracts/NFDRegistry.algo.ts:672","pc":[2689,2690]},{"teal":2592,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2691]},{"teal":2593,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2692,2693]},{"teal":2596,"source":"contracts/NFDRegistry.algo.ts:664","pc":[2694]},{"teal":2600,"source":"contracts/NFDRegistry.algo.ts:674","pc":[2695,2696]},{"teal":2603,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2697,2698]},{"teal":2606,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2699,2700]},{"teal":2607,"source":"contracts/NFDRegistry.algo.ts:639","pc":[2701]},{"teal":2612,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2702]},{"teal":2615,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2703,2704,2705]},{"teal":2616,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2706]},{"teal":2619,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2707,2708,2709]},{"teal":2620,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2710,2711,2712]},{"teal":2623,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2713,2714,2715]},{"teal":2624,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2716,2717]},{"teal":2625,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2718]},{"teal":2626,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2719,2720]},{"teal":2627,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2721]},{"teal":2628,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2722]},{"teal":2629,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2723]},{"teal":2630,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2724]},{"teal":2631,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2725]},{"teal":2635,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2726,2727,2728]},{"teal":2638,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2729]},{"teal":2642,"source":"contracts/NFDRegistry.algo.ts:682","pc":[2730,2731]},{"teal":2643,"source":"contracts/NFDRegistry.algo.ts:682","pc":[2732,2733,2734]},{"teal":2644,"source":"contracts/NFDRegistry.algo.ts:682","pc":[2735,2736]},{"teal":2649,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2737,2738]},{"teal":2650,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2739]},{"teal":2651,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2740]},{"teal":2652,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2741]},{"teal":2653,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2742]},{"teal":2654,"source":"contracts/NFDRegistry.algo.ts:684","pc":[2743,2744,2745]},{"teal":2659,"source":"contracts/NFDRegistry.algo.ts:685","pc":[2746,2747]},{"teal":2660,"source":"contracts/NFDRegistry.algo.ts:685","pc":[2748,2749]},{"teal":2661,"source":"contracts/NFDRegistry.algo.ts:685","pc":[2750,2751,2752]},{"teal":2662,"source":"contracts/NFDRegistry.algo.ts:685","pc":[2753,2754,2755]},{"teal":2667,"source":"contracts/NFDRegistry.algo.ts:687","pc":[2756,2757]},{"teal":2668,"source":"contracts/NFDRegistry.algo.ts:687","pc":[2758,2759]},{"teal":2669,"source":"contracts/NFDRegistry.algo.ts:687","pc":[2760,2761,2762]},{"teal":2673,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2763,2764]},{"teal":2674,"source":"contracts/NFDRegistry.algo.ts:681","pc":[2765]},{"teal":2679,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2766]},{"teal":2682,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2767,2768,2769]},{"teal":2683,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2770,2771,2772]},{"teal":2686,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2773,2774,2775]},{"teal":2687,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2776]},{"teal":2688,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2777]},{"teal":2689,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2778]},{"teal":2690,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2779]},{"teal":2691,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2780]},{"teal":2695,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2781,2782,2783]},{"teal":2698,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2784]},{"teal":2699,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2785]},{"teal":2703,"source":"contracts/NFDRegistry.algo.ts:692","pc":[2786,2787]},{"teal":2704,"source":"contracts/NFDRegistry.algo.ts:692","pc":[2788,2789,2790]},{"teal":2705,"source":"contracts/NFDRegistry.algo.ts:692","pc":[2791,2792]},{"teal":2710,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2793,2794]},{"teal":2711,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2795]},{"teal":2712,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2796]},{"teal":2713,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2797]},{"teal":2714,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2798]},{"teal":2715,"source":"contracts/NFDRegistry.algo.ts:693","pc":[2799,2800,2801]},{"teal":2720,"source":"contracts/NFDRegistry.algo.ts:694","pc":[2802]},{"teal":2721,"source":"contracts/NFDRegistry.algo.ts:694","pc":[2803,2804,2805]},{"teal":2726,"source":"contracts/NFDRegistry.algo.ts:697","pc":[2806,2807]},{"teal":2727,"source":"contracts/NFDRegistry.algo.ts:697","pc":[2808]},{"teal":2730,"source":"contracts/NFDRegistry.algo.ts:697","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[2809]},{"teal":2731,"source":"contracts/NFDRegistry.algo.ts:697","pc":[2810,2811]},{"teal":2735,"source":"contracts/NFDRegistry.algo.ts:698","pc":[2812,2813]},{"teal":2736,"source":"contracts/NFDRegistry.algo.ts:698","pc":[2814]},{"teal":2737,"source":"contracts/NFDRegistry.algo.ts:698","pc":[2815,2816]},{"teal":2738,"source":"contracts/NFDRegistry.algo.ts:698","pc":[2817]},{"teal":2739,"source":"contracts/NFDRegistry.algo.ts:698","pc":[2818]},{"teal":2743,"source":"contracts/NFDRegistry.algo.ts:699","pc":[2819,2820]},{"teal":2744,"source":"contracts/NFDRegistry.algo.ts:699","pc":[2821]},{"teal":2745,"source":"contracts/NFDRegistry.algo.ts:699","pc":[2822]},{"teal":2749,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2823,2824]},{"teal":2752,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2825,2826]},{"teal":2753,"source":"contracts/NFDRegistry.algo.ts:691","pc":[2827]},{"teal":2758,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2828]},{"teal":2761,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2829,2830,2831]},{"teal":2762,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2832]},{"teal":2763,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2833]},{"teal":2764,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2834,2835]},{"teal":2765,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2836]},{"teal":2768,"source":"contracts/NFDRegistry.algo.ts:702","errorMessage":"argument 0 (lookupAddress) for getAddressAppIds must be a address","pc":[2837]},{"teal":2771,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2838,2839,2840]},{"teal":2772,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2841]},{"teal":2773,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2842]},{"teal":2774,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2843]},{"teal":2775,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2844]},{"teal":2776,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2845]},{"teal":2777,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2846,2847,2848]},{"teal":2778,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2849]},{"teal":2779,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2850]},{"teal":2780,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2851]},{"teal":2781,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2852]},{"teal":2782,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2853]},{"teal":2783,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2854]},{"teal":2787,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2855,2856,2857]},{"teal":2790,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2858]},{"teal":2791,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2859,2860]},{"teal":2795,"source":"contracts/NFDRegistry.algo.ts:703","pc":[2861]},{"teal":2796,"source":"contracts/NFDRegistry.algo.ts:703","pc":[2862,2863]},{"teal":2800,"source":"contracts/NFDRegistry.algo.ts:704","pc":[2864,2865]},{"teal":2801,"source":"contracts/NFDRegistry.algo.ts:704","pc":[2866,2867,2868]},{"teal":2802,"source":"contracts/NFDRegistry.algo.ts:704","pc":[2869,2870]},{"teal":2807,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2871,2872]},{"teal":2808,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2873]},{"teal":2809,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2874]},{"teal":2810,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2875]},{"teal":2811,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2876]},{"teal":2812,"source":"contracts/NFDRegistry.algo.ts:705","pc":[2877,2878,2879]},{"teal":2817,"source":"contracts/NFDRegistry.algo.ts:706","pc":[2880,2881]},{"teal":2818,"source":"contracts/NFDRegistry.algo.ts:706","pc":[2882,2883,2884]},{"teal":2823,"source":"contracts/NFDRegistry.algo.ts:708","pc":[2885,2886]},{"teal":2824,"source":"contracts/NFDRegistry.algo.ts:708","pc":[2887]},{"teal":2827,"source":"contracts/NFDRegistry.algo.ts:708","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[2888]},{"teal":2828,"source":"contracts/NFDRegistry.algo.ts:708","pc":[2889,2890]},{"teal":2832,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2891]},{"teal":2833,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2892,2893]},{"teal":2838,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2894,2895]},{"teal":2839,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2896,2897]},{"teal":2840,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2898]},{"teal":2841,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2899]},{"teal":2842,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2900,2901,2902]},{"teal":2846,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2903,2904]},{"teal":2847,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2905,2906]},{"teal":2848,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2907]},{"teal":2849,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2908]},{"teal":2850,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2909]},{"teal":2851,"source":"contracts/NFDRegistry.algo.ts:710","pc":[2910,2911]},{"teal":2856,"source":"contracts/NFDRegistry.algo.ts:711","pc":[2912,2913]},{"teal":2857,"source":"contracts/NFDRegistry.algo.ts:711","pc":[2914]},{"teal":2858,"source":"contracts/NFDRegistry.algo.ts:711","pc":[2915]},{"teal":2859,"source":"contracts/NFDRegistry.algo.ts:711","pc":[2916,2917,2918]},{"teal":2864,"source":"contracts/NFDRegistry.algo.ts:712","pc":[2919,2920]},{"teal":2865,"source":"contracts/NFDRegistry.algo.ts:712","pc":[2921,2922]},{"teal":2866,"source":"contracts/NFDRegistry.algo.ts:712","pc":[2923]},{"teal":2867,"source":"contracts/NFDRegistry.algo.ts:712","pc":[2924]},{"teal":2868,"source":"contracts/NFDRegistry.algo.ts:712","pc":[2925,2926]},{"teal":2875,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2927,2928]},{"teal":2876,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2929]},{"teal":2877,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2930]},{"teal":2878,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2931,2932]},{"teal":2879,"source":"contracts/NFDRegistry.algo.ts:709","pc":[2933,2934,2935]},{"teal":2884,"source":"contracts/NFDRegistry.algo.ts:715","pc":[2936,2937]},{"teal":2888,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2938,2939]},{"teal":2891,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2940,2941]},{"teal":2892,"source":"contracts/NFDRegistry.algo.ts:702","pc":[2942]},{"teal":2897,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2943,2944,2945]},{"teal":2898,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2946,2947,2948]},{"teal":2901,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2949,2950,2951]},{"teal":2902,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2952]},{"teal":2905,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2953,2954,2955]},{"teal":2906,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2956,2957,2958]},{"teal":2909,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2959,2960,2961]},{"teal":2910,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2962]},{"teal":2911,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2963]},{"teal":2921,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2964,2965,2966]},{"teal":2925,"source":"contracts/NFDRegistry.algo.ts:726","pc":[2967,2968]},{"teal":2926,"source":"contracts/NFDRegistry.algo.ts:726","pc":[2969,2970,2971]},{"teal":2927,"source":"contracts/NFDRegistry.algo.ts:726","pc":[2972]},{"teal":2931,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2973,2974]},{"teal":2932,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2975,2976]},{"teal":2933,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2977]},{"teal":2934,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2978,2979]},{"teal":2935,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2980]},{"teal":2936,"source":"contracts/NFDRegistry.algo.ts:729","pc":[2981]},{"teal":2940,"source":"contracts/NFDRegistry.algo.ts:730","pc":[2982,2983]},{"teal":2941,"source":"contracts/NFDRegistry.algo.ts:730","pc":[2984,2985]},{"teal":2942,"source":"contracts/NFDRegistry.algo.ts:730","pc":[2986]},{"teal":2943,"source":"contracts/NFDRegistry.algo.ts:730","pc":[2987,2988]},{"teal":2944,"source":"contracts/NFDRegistry.algo.ts:730","pc":[2989]},{"teal":2945,"source":"contracts/NFDRegistry.algo.ts:725","pc":[2990]},{"teal":2950,"source":"contracts/NFDRegistry.algo.ts:740","pc":[2991,2992,2993]},{"teal":2951,"source":"contracts/NFDRegistry.algo.ts:740","pc":[2994,2995,2996]},{"teal":2954,"source":"contracts/NFDRegistry.algo.ts:740","pc":[2997,2998,2999]},{"teal":2955,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3000]},{"teal":2958,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3001,3002,3003]},{"teal":2959,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3004,3005,3006]},{"teal":2962,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3007,3008,3009]},{"teal":2963,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3010]},{"teal":2964,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3011]},{"teal":2974,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3012,3013,3014]},{"teal":2978,"source":"contracts/NFDRegistry.algo.ts:741","pc":[3015,3016]},{"teal":2979,"source":"contracts/NFDRegistry.algo.ts:741","pc":[3017,3018,3019]},{"teal":2980,"source":"contracts/NFDRegistry.algo.ts:741","pc":[3020]},{"teal":2984,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3021,3022]},{"teal":2985,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3023,3024]},{"teal":2986,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3025]},{"teal":2987,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3026,3027]},{"teal":2988,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3028,3029]},{"teal":2989,"source":"contracts/NFDRegistry.algo.ts:742","pc":[3030]},{"teal":2990,"source":"contracts/NFDRegistry.algo.ts:740","pc":[3031]},{"teal":2995,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3032,3033,3034]},{"teal":2996,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3035,3036,3037]},{"teal":2999,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3038,3039,3040]},{"teal":3000,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3041]},{"teal":3001,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3042]},{"teal":3009,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3043,3044,3045]},{"teal":3013,"source":"contracts/NFDRegistry.algo.ts:751","pc":[3046,3047]},{"teal":3014,"source":"contracts/NFDRegistry.algo.ts:751","pc":[3048,3049,3050]},{"teal":3015,"source":"contracts/NFDRegistry.algo.ts:751","pc":[3051]},{"teal":3019,"source":"contracts/NFDRegistry.algo.ts:752","pc":[3052,3053]},{"teal":3020,"source":"contracts/NFDRegistry.algo.ts:752","pc":[3054,3055]},{"teal":3021,"source":"contracts/NFDRegistry.algo.ts:752","pc":[3056]},{"teal":3022,"source":"contracts/NFDRegistry.algo.ts:750","pc":[3057]},{"teal":3027,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3058]},{"teal":3030,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3059,3060,3061]},{"teal":3031,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3062]},{"teal":3034,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3063,3064,3065]},{"teal":3035,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3066]},{"teal":3036,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3067]},{"teal":3037,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3068]},{"teal":3038,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3069]},{"teal":3039,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3070]},{"teal":3043,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3071,3072,3073]},{"teal":3046,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3074]},{"teal":3047,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3075,3076]},{"teal":3051,"source":"contracts/NFDRegistry.algo.ts:758","pc":[3077,3078]},{"teal":3052,"source":"contracts/NFDRegistry.algo.ts:758","pc":[3079,3080,3081,3082]},{"teal":3053,"source":"contracts/NFDRegistry.algo.ts:758","pc":[3083]},{"teal":3056,"source":"contracts/NFDRegistry.algo.ts:758","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('ts')","pc":[3084]},{"teal":3057,"source":"contracts/NFDRegistry.algo.ts:758","pc":[3085,3086]},{"teal":3061,"source":"contracts/NFDRegistry.algo.ts:759","pc":[3087,3088]},{"teal":3062,"source":"contracts/NFDRegistry.algo.ts:759","pc":[3089,3090,3091,3092,3093,3094,3095,3096,3097,3098]},{"teal":3063,"source":"contracts/NFDRegistry.algo.ts:759","pc":[3099]},{"teal":3066,"source":"contracts/NFDRegistry.algo.ts:759","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('decimals')","pc":[3100]},{"teal":3067,"source":"contracts/NFDRegistry.algo.ts:759","pc":[3101,3102]},{"teal":3071,"source":"contracts/NFDRegistry.algo.ts:760","pc":[3103,3104]},{"teal":3072,"source":"contracts/NFDRegistry.algo.ts:760","pc":[3105,3106,3107,3108,3109,3110,3111]},{"teal":3073,"source":"contracts/NFDRegistry.algo.ts:760","pc":[3112]},{"teal":3076,"source":"contracts/NFDRegistry.algo.ts:760","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('price')","pc":[3113]},{"teal":3077,"source":"contracts/NFDRegistry.algo.ts:760","pc":[3114,3115]},{"teal":3082,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3116,3117]},{"teal":3083,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3118,3119]},{"teal":3084,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3120]},{"teal":3085,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3121,3122]},{"teal":3086,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3123]},{"teal":3087,"source":"contracts/NFDRegistry.algo.ts:762","pc":[3124,3125,3126]},{"teal":3092,"source":"contracts/NFDRegistry.algo.ts:763","pc":[3127,3128]},{"teal":3093,"source":"contracts/NFDRegistry.algo.ts:763","pc":[3129,3130]},{"teal":3097,"source":"contracts/NFDRegistry.algo.ts:764","pc":[3131,3132]},{"teal":3098,"source":"contracts/NFDRegistry.algo.ts:764","pc":[3133,3134]},{"teal":3102,"source":"contracts/NFDRegistry.algo.ts:765","pc":[3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159]},{"teal":3103,"source":"contracts/NFDRegistry.algo.ts:765","pc":[3160]},{"teal":3108,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3161,3162]},{"teal":3109,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3163,3164]},{"teal":3110,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3165]},{"teal":3111,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3166,3167]},{"teal":3112,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3168,3169,3170]},{"teal":3113,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3171]},{"teal":3114,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3172,3173]},{"teal":3115,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3174]},{"teal":3116,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3175,3176]},{"teal":3117,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3177]},{"teal":3118,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3178,3179]},{"teal":3119,"source":"contracts/NFDRegistry.algo.ts:769","pc":[3180]},{"teal":3122,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3181,3182]},{"teal":3125,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3183,3184]},{"teal":3126,"source":"contracts/NFDRegistry.algo.ts:757","pc":[3185]},{"teal":3131,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3186]},{"teal":3134,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3187,3188,3189]},{"teal":3135,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3190]},{"teal":3136,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3191]},{"teal":3137,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3192,3193]},{"teal":3138,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3194]},{"teal":3141,"source":"contracts/NFDRegistry.algo.ts:777","errorMessage":"argument 0 (lookupAddress) for costToAddToAddress must be a address","pc":[3195]},{"teal":3144,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3196,3197,3198]},{"teal":3145,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3199]},{"teal":3146,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3200]},{"teal":3147,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3201]},{"teal":3148,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3202]},{"teal":3149,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3203]},{"teal":3157,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3204,3205,3206]},{"teal":3160,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3207]},{"teal":3164,"source":"contracts/NFDRegistry.algo.ts:778","pc":[3208,3209]},{"teal":3165,"source":"contracts/NFDRegistry.algo.ts:778","pc":[3210,3211,3212]},{"teal":3166,"source":"contracts/NFDRegistry.algo.ts:778","pc":[3213,3214]},{"teal":3171,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3215,3216]},{"teal":3172,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3217]},{"teal":3173,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3218]},{"teal":3174,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3219]},{"teal":3175,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3220]},{"teal":3176,"source":"contracts/NFDRegistry.algo.ts:779","pc":[3221,3222,3223]},{"teal":3181,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3224,3225]},{"teal":3182,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3226]},{"teal":3183,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3227]},{"teal":3184,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3228]},{"teal":3185,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3229]},{"teal":3186,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3230,3231,3232]},{"teal":3187,"source":"contracts/NFDRegistry.algo.ts:781","pc":[3233,3234,3235]},{"teal":3192,"source":"contracts/NFDRegistry.algo.ts:784","pc":[3236,3237,3238]},{"teal":3196,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3239,3240]},{"teal":3197,"source":"contracts/NFDRegistry.algo.ts:777","pc":[3241]},{"teal":3201,"source":"contracts/NFDRegistry.algo.ts:813","pc":[3242,3243,3244]},{"teal":3209,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3245,3246]},{"teal":3210,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3247,3248]},{"teal":3211,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3249,3250]},{"teal":3212,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3251,3252]},{"teal":3213,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3253]},{"teal":3214,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3254]},{"teal":3215,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3255]},{"teal":3216,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3256]},{"teal":3217,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3257,3258,3259]},{"teal":3218,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3260,3261]},{"teal":3219,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3262,3263]},{"teal":3220,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3264,3265]},{"teal":3221,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3266]},{"teal":3222,"source":"contracts/NFDRegistry.algo.ts:815","pc":[3267]},{"teal":3225,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3268]},{"teal":3226,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3269,3270,3271]},{"teal":3227,"source":"contracts/NFDRegistry.algo.ts:817","pc":[3272,3273]},{"teal":3228,"source":"contracts/NFDRegistry.algo.ts:817","pc":[3274,3275]},{"teal":3229,"source":"contracts/NFDRegistry.algo.ts:817","pc":[3276,3277]},{"teal":3230,"source":"contracts/NFDRegistry.algo.ts:817","pc":[3278]},{"teal":3231,"source":"contracts/NFDRegistry.algo.ts:816","pc":[3279]},{"teal":3234,"source":"contracts/NFDRegistry.algo.ts:813","pc":[3280]},{"teal":3238,"source":"contracts/NFDRegistry.algo.ts:821","pc":[3281,3282,3283]},{"teal":3242,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3284]},{"teal":3243,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3285,3286]},{"teal":3244,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3287]},{"teal":3245,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3288]},{"teal":3246,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3289]},{"teal":3247,"source":"contracts/NFDRegistry.algo.ts:823","pc":[3290,3291,3292]},{"teal":3248,"source":"contracts/NFDRegistry.algo.ts:821","pc":[3293]},{"teal":3252,"source":"contracts/NFDRegistry.algo.ts:826","pc":[3294,3295,3296]},{"teal":3257,"source":"contracts/NFDRegistry.algo.ts:827","pc":[3297,3298]},{"teal":3258,"source":"contracts/NFDRegistry.algo.ts:827","pc":[3299,3300,3301]},{"teal":3259,"source":"contracts/NFDRegistry.algo.ts:827","pc":[3302,3303,3304]},{"teal":3267,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3305]},{"teal":3268,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3306]},{"teal":3269,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3307,3308]},{"teal":3273,"source":"contracts/NFDRegistry.algo.ts:830","pc":[3309,3310]},{"teal":3274,"source":"contracts/NFDRegistry.algo.ts:830","pc":[3311,3312]},{"teal":3278,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333]},{"teal":3279,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3334,3335]},{"teal":3280,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3336,3337]},{"teal":3281,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3338,3339]},{"teal":3282,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3340,3341]},{"teal":3283,"source":"contracts/NFDRegistry.algo.ts:831","pc":[3342,3343]},{"teal":3286,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3344]},{"teal":3287,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3345,3346]},{"teal":3290,"source":"contracts/NFDRegistry.algo.ts:829","pc":[3347]},{"teal":3294,"source":"contracts/NFDRegistry.algo.ts:833","pc":[3348,3349]},{"teal":3295,"source":"contracts/NFDRegistry.algo.ts:833","pc":[3350]},{"teal":3296,"source":"contracts/NFDRegistry.algo.ts:833","pc":[3351]},{"teal":3297,"source":"contracts/NFDRegistry.algo.ts:833","pc":[3352]},{"teal":3298,"source":"contracts/NFDRegistry.algo.ts:833","pc":[3353]},{"teal":3306,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3354]},{"teal":3307,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3355]},{"teal":3308,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3356,3357]},{"teal":3309,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3358,3359,3360,3361,3362,3363]},{"teal":3310,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3364,3365]},{"teal":3314,"source":"contracts/NFDRegistry.algo.ts:837","pc":[3366,3367]},{"teal":3315,"source":"contracts/NFDRegistry.algo.ts:837","pc":[3368,3369]},{"teal":3319,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3370,3371]},{"teal":3320,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3372]},{"teal":3321,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3373]},{"teal":3322,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3374]},{"teal":3323,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3375,3376,3377]},{"teal":3324,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3378]},{"teal":3325,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3379]},{"teal":3326,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3380,3381]},{"teal":3327,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3382,3383]},{"teal":3328,"source":"contracts/NFDRegistry.algo.ts:838","pc":[3384,3385]},{"teal":3331,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3386]},{"teal":3332,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3387,3388]},{"teal":3335,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3389]},{"teal":3336,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3390,3391]},{"teal":3337,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3392]},{"teal":3338,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3393]},{"teal":3339,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3394,3395]},{"teal":3340,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3396,3397,3398]},{"teal":3341,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3399]},{"teal":3342,"source":"contracts/NFDRegistry.algo.ts:836","pc":[3400]},{"teal":3343,"source":"contracts/NFDRegistry.algo.ts:826","pc":[3401]},{"teal":3347,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3402,3403,3404]},{"teal":3350,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3405]},{"teal":3351,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3406,3407]},{"teal":3355,"source":"contracts/NFDRegistry.algo.ts:843","pc":[3408,3409]},{"teal":3356,"source":"contracts/NFDRegistry.algo.ts:843","pc":[3410]},{"teal":3357,"source":"contracts/NFDRegistry.algo.ts:843","pc":[3411]},{"teal":3358,"source":"contracts/NFDRegistry.algo.ts:843","pc":[3412]},{"teal":3363,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3413,3414]},{"teal":3364,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3415]},{"teal":3365,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3416]},{"teal":3366,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3417]},{"teal":3367,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3418]},{"teal":3368,"source":"contracts/NFDRegistry.algo.ts:844","pc":[3419,3420,3421]},{"teal":3373,"source":"contracts/NFDRegistry.algo.ts:845","pc":[3422]},{"teal":3374,"source":"contracts/NFDRegistry.algo.ts:845","pc":[3423,3424,3425]},{"teal":3379,"source":"contracts/NFDRegistry.algo.ts:847","pc":[3426,3427]},{"teal":3380,"source":"contracts/NFDRegistry.algo.ts:847","pc":[3428]},{"teal":3383,"source":"contracts/NFDRegistry.algo.ts:847","errorMessage":"box value does not exist: this.boxes(key).value","pc":[3429]},{"teal":3384,"source":"contracts/NFDRegistry.algo.ts:847","pc":[3430,3431]},{"teal":3388,"source":"contracts/NFDRegistry.algo.ts:848","pc":[3432,3433]},{"teal":3389,"source":"contracts/NFDRegistry.algo.ts:848","pc":[3434,3435]},{"teal":3393,"source":"contracts/NFDRegistry.algo.ts:849","pc":[3436,3437]},{"teal":3394,"source":"contracts/NFDRegistry.algo.ts:849","pc":[3438]},{"teal":3395,"source":"contracts/NFDRegistry.algo.ts:849","pc":[3439]},{"teal":3396,"source":"contracts/NFDRegistry.algo.ts:849","pc":[3440]},{"teal":3397,"source":"contracts/NFDRegistry.algo.ts:849","pc":[3441,3442]},{"teal":3401,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3443]},{"teal":3402,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3444,3445]},{"teal":3407,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3446,3447]},{"teal":3408,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3448,3449]},{"teal":3409,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3450]},{"teal":3410,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3451,3452,3453]},{"teal":3415,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3454,3455]},{"teal":3416,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3456,3457]},{"teal":3417,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3458]},{"teal":3418,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3459]},{"teal":3419,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3460]},{"teal":3420,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3461]},{"teal":3421,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3462]},{"teal":3422,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3463,3464]},{"teal":3423,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3465]},{"teal":3424,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3466,3467,3468]},{"teal":3429,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3469]},{"teal":3430,"source":"contracts/NFDRegistry.algo.ts:852","pc":[3470,3471,3472]},{"teal":3437,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3473,3474]},{"teal":3438,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3475]},{"teal":3439,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3476]},{"teal":3440,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3477,3478]},{"teal":3441,"source":"contracts/NFDRegistry.algo.ts:851","pc":[3479,3480,3481]},{"teal":3446,"source":"contracts/NFDRegistry.algo.ts:855","pc":[3482]},{"teal":3450,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3483,3484]},{"teal":3453,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3485,3486]},{"teal":3454,"source":"contracts/NFDRegistry.algo.ts:842","pc":[3487]},{"teal":3458,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3488,3489,3490]},{"teal":3461,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3491]},{"teal":3462,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3492,3493]},{"teal":3467,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3494,3495]},{"teal":3468,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3496]},{"teal":3469,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3497]},{"teal":3470,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3498]},{"teal":3471,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3499]},{"teal":3472,"source":"contracts/NFDRegistry.algo.ts:859","pc":[3500,3501,3502]},{"teal":3477,"source":"contracts/NFDRegistry.algo.ts:861","pc":[3503,3504]},{"teal":3478,"source":"contracts/NFDRegistry.algo.ts:861","pc":[3505,3506]},{"teal":3479,"source":"contracts/NFDRegistry.algo.ts:861","pc":[3507]},{"teal":3480,"source":"contracts/NFDRegistry.algo.ts:861","pc":[3508]},{"teal":3484,"source":"contracts/NFDRegistry.algo.ts:862","pc":[3509]},{"teal":3485,"source":"contracts/NFDRegistry.algo.ts:862","pc":[3510,3511,3512]},{"teal":3490,"source":"contracts/NFDRegistry.algo.ts:864","pc":[3513,3514]},{"teal":3491,"source":"contracts/NFDRegistry.algo.ts:864","pc":[3515]},{"teal":3494,"source":"contracts/NFDRegistry.algo.ts:864","errorMessage":"box value does not exist: this.boxes(key).value","pc":[3516]},{"teal":3495,"source":"contracts/NFDRegistry.algo.ts:864","pc":[3517,3518]},{"teal":3499,"source":"contracts/NFDRegistry.algo.ts:865","pc":[3519,3520]},{"teal":3500,"source":"contracts/NFDRegistry.algo.ts:865","pc":[3521]},{"teal":3501,"source":"contracts/NFDRegistry.algo.ts:865","pc":[3522]},{"teal":3502,"source":"contracts/NFDRegistry.algo.ts:865","pc":[3523]},{"teal":3503,"source":"contracts/NFDRegistry.algo.ts:865","pc":[3524,3525]},{"teal":3507,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3526]},{"teal":3508,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3527,3528]},{"teal":3513,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3529,3530]},{"teal":3514,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3531,3532]},{"teal":3515,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3533]},{"teal":3516,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3534,3535,3536]},{"teal":3520,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3537,3538]},{"teal":3521,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3539,3540]},{"teal":3522,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3541]},{"teal":3523,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3542]},{"teal":3524,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3543]},{"teal":3525,"source":"contracts/NFDRegistry.algo.ts:868","pc":[3544,3545]},{"teal":3530,"source":"contracts/NFDRegistry.algo.ts:870","pc":[3546,3547]},{"teal":3531,"source":"contracts/NFDRegistry.algo.ts:870","pc":[3548]},{"teal":3532,"source":"contracts/NFDRegistry.algo.ts:870","pc":[3549]},{"teal":3533,"source":"contracts/NFDRegistry.algo.ts:870","pc":[3550,3551,3552]},{"teal":3538,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3553,3554]},{"teal":3539,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3555,3556]},{"teal":3540,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3557]},{"teal":3541,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3558]},{"teal":3542,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3559,3560]},{"teal":3543,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3561]},{"teal":3544,"source":"contracts/NFDRegistry.algo.ts:872","pc":[3562]},{"teal":3548,"source":"contracts/NFDRegistry.algo.ts:873","pc":[3563]},{"teal":3549,"source":"contracts/NFDRegistry.algo.ts:873","pc":[3564,3565,3566]},{"teal":3555,"source":"contracts/NFDRegistry.algo.ts:875","pc":[3567,3568]},{"teal":3556,"source":"contracts/NFDRegistry.algo.ts:875","pc":[3569,3570]},{"teal":3557,"source":"contracts/NFDRegistry.algo.ts:875","pc":[3571]},{"teal":3558,"source":"contracts/NFDRegistry.algo.ts:875","pc":[3572,3573,3574]},{"teal":3563,"source":"contracts/NFDRegistry.algo.ts:876","pc":[3575]},{"teal":3564,"source":"contracts/NFDRegistry.algo.ts:876","pc":[3576,3577,3578]},{"teal":3571,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3579,3580]},{"teal":3572,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3581]},{"teal":3573,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3582]},{"teal":3574,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3583,3584]},{"teal":3575,"source":"contracts/NFDRegistry.algo.ts:867","pc":[3585,3586,3587]},{"teal":3581,"source":"contracts/NFDRegistry.algo.ts:880","pc":[3588,3589]},{"teal":3582,"source":"contracts/NFDRegistry.algo.ts:880","pc":[3590]},{"teal":3583,"source":"contracts/NFDRegistry.algo.ts:880","pc":[3591,3592,3593]},{"teal":3584,"source":"contracts/NFDRegistry.algo.ts:880","pc":[3594]},{"teal":3585,"source":"contracts/NFDRegistry.algo.ts:880","pc":[3595,3596,3597]},{"teal":3590,"source":"contracts/NFDRegistry.algo.ts:881","pc":[3598,3599]},{"teal":3591,"source":"contracts/NFDRegistry.algo.ts:881","pc":[3600]},{"teal":3595,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3601,3602]},{"teal":3596,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3603,3604]},{"teal":3597,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3605,3606]},{"teal":3598,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3607]},{"teal":3599,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3608]},{"teal":3600,"source":"contracts/NFDRegistry.algo.ts:882","pc":[3609]},{"teal":3604,"source":"contracts/NFDRegistry.algo.ts:883","pc":[3610]},{"teal":3605,"source":"contracts/NFDRegistry.algo.ts:883","pc":[3611,3612,3613]},{"teal":3610,"source":"contracts/NFDRegistry.algo.ts:886","pc":[3614]},{"teal":3614,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3615,3616]},{"teal":3617,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3617,3618]},{"teal":3618,"source":"contracts/NFDRegistry.algo.ts:858","pc":[3619]},{"teal":3622,"source":"contracts/NFDRegistry.algo.ts:889","pc":[3620,3621,3622]},{"teal":3627,"source":"contracts/NFDRegistry.algo.ts:894","pc":[3623,3624]},{"teal":3628,"source":"contracts/NFDRegistry.algo.ts:894","pc":[3625,3626,3627]},{"teal":3629,"source":"contracts/NFDRegistry.algo.ts:894","pc":[3628,3629,3630]},{"teal":3641,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3631]},{"teal":3642,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3632]},{"teal":3643,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3633,3634]},{"teal":3647,"source":"contracts/NFDRegistry.algo.ts:901","pc":[3635,3636]},{"teal":3648,"source":"contracts/NFDRegistry.algo.ts:901","pc":[3637,3638]},{"teal":3652,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664]},{"teal":3653,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3665,3666]},{"teal":3654,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3667,3668]},{"teal":3655,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3669,3670]},{"teal":3656,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3671,3672]},{"teal":3657,"source":"contracts/NFDRegistry.algo.ts:902","pc":[3673,3674]},{"teal":3660,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3675]},{"teal":3661,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3676,3677]},{"teal":3664,"source":"contracts/NFDRegistry.algo.ts:896","pc":[3678]},{"teal":3668,"source":"contracts/NFDRegistry.algo.ts:905","pc":[3679,3680]},{"teal":3669,"source":"contracts/NFDRegistry.algo.ts:905","pc":[3681]},{"teal":3670,"source":"contracts/NFDRegistry.algo.ts:905","pc":[3682]},{"teal":3671,"source":"contracts/NFDRegistry.algo.ts:905","pc":[3683]},{"teal":3672,"source":"contracts/NFDRegistry.algo.ts:905","pc":[3684]},{"teal":3680,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3685]},{"teal":3681,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3686]},{"teal":3682,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3687,3688]},{"teal":3683,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3689,3690,3691,3692,3693,3694]},{"teal":3684,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3695,3696]},{"teal":3688,"source":"contracts/NFDRegistry.algo.ts:909","pc":[3697,3698]},{"teal":3689,"source":"contracts/NFDRegistry.algo.ts:909","pc":[3699,3700]},{"teal":3693,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3701,3702]},{"teal":3694,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3703]},{"teal":3695,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3704]},{"teal":3696,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3705]},{"teal":3697,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3706,3707,3708]},{"teal":3698,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3709]},{"teal":3699,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3710]},{"teal":3700,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3711,3712]},{"teal":3701,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3713,3714]},{"teal":3702,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3715]},{"teal":3703,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3716]},{"teal":3704,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3717]},{"teal":3705,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3718,3719,3720]},{"teal":3706,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3721]},{"teal":3707,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3722]},{"teal":3708,"source":"contracts/NFDRegistry.algo.ts:910","pc":[3723,3724]},{"teal":3711,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3725]},{"teal":3712,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3726,3727]},{"teal":3715,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3728]},{"teal":3716,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3729,3730]},{"teal":3717,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3731]},{"teal":3718,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3732]},{"teal":3719,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3733,3734]},{"teal":3720,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3735,3736,3737]},{"teal":3721,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3738]},{"teal":3722,"source":"contracts/NFDRegistry.algo.ts:908","pc":[3739]},{"teal":3723,"source":"contracts/NFDRegistry.algo.ts:889","pc":[3740]},{"teal":3727,"source":"contracts/NFDRegistry.algo.ts:914","pc":[3741,3742,3743]},{"teal":3732,"source":"contracts/NFDRegistry.algo.ts:920","pc":[3744,3745]},{"teal":3733,"source":"contracts/NFDRegistry.algo.ts:920","pc":[3746,3747,3748]},{"teal":3734,"source":"contracts/NFDRegistry.algo.ts:920","pc":[3749,3750,3751]},{"teal":3742,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3752]},{"teal":3743,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3753]},{"teal":3744,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3754,3755]},{"teal":3748,"source":"contracts/NFDRegistry.algo.ts:927","pc":[3756,3757]},{"teal":3749,"source":"contracts/NFDRegistry.algo.ts:927","pc":[3758,3759]},{"teal":3753,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788]},{"teal":3754,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3789,3790]},{"teal":3755,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3791,3792]},{"teal":3756,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3793,3794]},{"teal":3757,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3795,3796]},{"teal":3758,"source":"contracts/NFDRegistry.algo.ts:928","pc":[3797,3798]},{"teal":3761,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3799]},{"teal":3762,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3800,3801]},{"teal":3765,"source":"contracts/NFDRegistry.algo.ts:926","pc":[3802]},{"teal":3769,"source":"contracts/NFDRegistry.algo.ts:930","pc":[3803,3804]},{"teal":3770,"source":"contracts/NFDRegistry.algo.ts:930","pc":[3805]},{"teal":3771,"source":"contracts/NFDRegistry.algo.ts:930","pc":[3806]},{"teal":3772,"source":"contracts/NFDRegistry.algo.ts:930","pc":[3807]},{"teal":3773,"source":"contracts/NFDRegistry.algo.ts:930","pc":[3808]},{"teal":3781,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3809]},{"teal":3782,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3810]},{"teal":3783,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3811,3812]},{"teal":3784,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3813,3814,3815,3816,3817,3818]},{"teal":3785,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3819,3820]},{"teal":3789,"source":"contracts/NFDRegistry.algo.ts:934","pc":[3821,3822]},{"teal":3790,"source":"contracts/NFDRegistry.algo.ts:934","pc":[3823,3824]},{"teal":3794,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3825,3826]},{"teal":3795,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3827]},{"teal":3796,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3828]},{"teal":3797,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3829]},{"teal":3798,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3830,3831,3832]},{"teal":3799,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3833]},{"teal":3800,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3834]},{"teal":3801,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3835,3836]},{"teal":3802,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3837,3838]},{"teal":3803,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3839,3840]},{"teal":3804,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3841,3842]},{"teal":3805,"source":"contracts/NFDRegistry.algo.ts:935","pc":[3843,3844]},{"teal":3808,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3845]},{"teal":3809,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3846,3847]},{"teal":3812,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3848]},{"teal":3813,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3849,3850]},{"teal":3814,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3851]},{"teal":3815,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3852]},{"teal":3816,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3853,3854]},{"teal":3817,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3855,3856,3857]},{"teal":3818,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3858]},{"teal":3819,"source":"contracts/NFDRegistry.algo.ts:933","pc":[3859]},{"teal":3820,"source":"contracts/NFDRegistry.algo.ts:914","pc":[3860]},{"teal":3824,"source":"contracts/NFDRegistry.algo.ts:940","pc":[3861,3862,3863]},{"teal":3829,"source":"contracts/NFDRegistry.algo.ts:941","pc":[3864,3865]},{"teal":3830,"source":"contracts/NFDRegistry.algo.ts:941","pc":[3866]},{"teal":3831,"source":"contracts/NFDRegistry.algo.ts:941","pc":[3867]},{"teal":3832,"source":"contracts/NFDRegistry.algo.ts:941","pc":[3868,3869,3870]},{"teal":3837,"source":"contracts/NFDRegistry.algo.ts:942","pc":[3871]},{"teal":3838,"source":"contracts/NFDRegistry.algo.ts:942","pc":[3872]},{"teal":3843,"source":"contracts/NFDRegistry.algo.ts:944","pc":[3873,3874]},{"teal":3844,"source":"contracts/NFDRegistry.algo.ts:944","pc":[3875,3876]},{"teal":3845,"source":"contracts/NFDRegistry.algo.ts:944","pc":[3877]},{"teal":3846,"source":"contracts/NFDRegistry.algo.ts:940","pc":[3878]},{"teal":3850,"source":"contracts/NFDRegistry.algo.ts:950","pc":[3879,3880,3881]},{"teal":3854,"source":"contracts/NFDRegistry.algo.ts:951","pc":[3882,3883,3884]},{"teal":3855,"source":"contracts/NFDRegistry.algo.ts:951","pc":[3885,3886,3887]},{"teal":3856,"source":"contracts/NFDRegistry.algo.ts:951","pc":[3888]},{"teal":3857,"source":"contracts/NFDRegistry.algo.ts:951","pc":[3889]},{"teal":3858,"source":"contracts/NFDRegistry.algo.ts:950","pc":[3890]},{"teal":3862,"source":"contracts/NFDRegistry.algo.ts:958","pc":[3891,3892,3893]},{"teal":3865,"source":"contracts/NFDRegistry.algo.ts:958","pc":[3894]},{"teal":3869,"source":"contracts/NFDRegistry.algo.ts:959","pc":[3895,3896,3897]},{"teal":3870,"source":"contracts/NFDRegistry.algo.ts:959","pc":[3898,3899,3900]},{"teal":3871,"source":"contracts/NFDRegistry.algo.ts:959","pc":[3901,3902]},{"teal":3876,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3903,3904]},{"teal":3877,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3905]},{"teal":3878,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3906]},{"teal":3879,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3907]},{"teal":3880,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3908]},{"teal":3881,"source":"contracts/NFDRegistry.algo.ts:960","pc":[3909,3910,3911]},{"teal":3886,"source":"contracts/NFDRegistry.algo.ts:961","pc":[3912]},{"teal":3887,"source":"contracts/NFDRegistry.algo.ts:961","pc":[3913]},{"teal":3891,"source":"contracts/NFDRegistry.algo.ts:962","pc":[3914]},{"teal":3896,"source":"contracts/NFDRegistry.algo.ts:965","pc":[3915,3916]},{"teal":3897,"source":"contracts/NFDRegistry.algo.ts:965","pc":[3917]},{"teal":3900,"source":"contracts/NFDRegistry.algo.ts:965","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[3918]},{"teal":3901,"source":"contracts/NFDRegistry.algo.ts:965","pc":[3919]},{"teal":3902,"source":"contracts/NFDRegistry.algo.ts:958","pc":[3920]},{"teal":3906,"source":"contracts/NFDRegistry.algo.ts:973","pc":[3921,3922,3923]},{"teal":3909,"source":"contracts/NFDRegistry.algo.ts:973","pc":[3924]},{"teal":3916,"source":"contracts/NFDRegistry.algo.ts:975","pc":[3925,3926,3927]},{"teal":3917,"source":"contracts/NFDRegistry.algo.ts:975","pc":[3928]},{"teal":3918,"source":"contracts/NFDRegistry.algo.ts:975","pc":[3929,3930,3931]},{"teal":3919,"source":"contracts/NFDRegistry.algo.ts:975","pc":[3932,3933,3934]},{"teal":3922,"source":"contracts/NFDRegistry.algo.ts:974","errorMessage":"must be existing v1 name","pc":[3935]},{"teal":3926,"source":"contracts/NFDRegistry.algo.ts:979","pc":[3936,3937,3938]},{"teal":3927,"source":"contracts/NFDRegistry.algo.ts:979","pc":[3939]},{"teal":3928,"source":"contracts/NFDRegistry.algo.ts:979","pc":[3940,3941,3942,3943,3944,3945,3946,3947,3948]},{"teal":3929,"source":"contracts/NFDRegistry.algo.ts:979","pc":[3949]},{"teal":3932,"source":"contracts/NFDRegistry.algo.ts:979","errorMessage":"global state value does not exist: AppID.fromUint64(btoi(this.txn.applicationArgs![2])).globalState(REGISTRY_KEY_ASAID)","pc":[3950]},{"teal":3933,"source":"contracts/NFDRegistry.algo.ts:979","pc":[3951,3952]},{"teal":3937,"source":"contracts/NFDRegistry.algo.ts:980","pc":[3953,3954]},{"teal":3938,"source":"contracts/NFDRegistry.algo.ts:980","pc":[3955]},{"teal":3939,"source":"contracts/NFDRegistry.algo.ts:980","pc":[3956]},{"teal":3940,"source":"contracts/NFDRegistry.algo.ts:980","pc":[3957]},{"teal":3949,"source":"contracts/NFDRegistry.algo.ts:985","pc":[3958]},{"teal":3950,"source":"contracts/NFDRegistry.algo.ts:984","pc":[3959,3960,3961]},{"teal":3951,"source":"contracts/NFDRegistry.algo.ts:984","pc":[3962]},{"teal":3952,"source":"contracts/NFDRegistry.algo.ts:983","pc":[3963,3964]},{"teal":3953,"source":"contracts/NFDRegistry.algo.ts:983","pc":[3965]},{"teal":3954,"source":"contracts/NFDRegistry.algo.ts:982","pc":[3966,3967,3968]},{"teal":3955,"source":"contracts/NFDRegistry.algo.ts:981","pc":[3969,3970,3971]},{"teal":3956,"source":"contracts/NFDRegistry.algo.ts:973","pc":[3972]},{"teal":3960,"source":"contracts/NFDRegistry.algo.ts:994","pc":[3973,3974,3975]},{"teal":3963,"source":"contracts/NFDRegistry.algo.ts:994","pc":[3976]},{"teal":3964,"source":"contracts/NFDRegistry.algo.ts:994","pc":[3977,3978]},{"teal":3969,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3979,3980]},{"teal":3970,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3981,3982,3983]},{"teal":3971,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3984]},{"teal":3972,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3985]},{"teal":3973,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3986]},{"teal":3974,"source":"contracts/NFDRegistry.algo.ts:995","pc":[3987,3988,3989]},{"teal":3979,"source":"contracts/NFDRegistry.algo.ts:997","pc":[3990]},{"teal":3984,"source":"contracts/NFDRegistry.algo.ts:1000","pc":[3991,3992,3993,3994,3995,3996,3997,3998,3999,4000]},{"teal":3985,"source":"contracts/NFDRegistry.algo.ts:1000","pc":[4001,4002]},{"teal":3986,"source":"contracts/NFDRegistry.algo.ts:1000","pc":[4003]},{"teal":3987,"source":"contracts/NFDRegistry.algo.ts:1000","pc":[4004,4005,4006]},{"teal":3988,"source":"contracts/NFDRegistry.algo.ts:1000","pc":[4007,4008]},{"teal":3992,"source":"contracts/NFDRegistry.algo.ts:1001","pc":[4009]},{"teal":3993,"source":"contracts/NFDRegistry.algo.ts:1001","pc":[4010,4011]},{"teal":3997,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4012]},{"teal":3998,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4013,4014]},{"teal":4003,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4015,4016]},{"teal":4004,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4017,4018]},{"teal":4005,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4019]},{"teal":4006,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4020,4021,4022]},{"teal":4010,"source":"contracts/NFDRegistry.algo.ts:1005","pc":[4023,4024]},{"teal":4011,"source":"contracts/NFDRegistry.algo.ts:1005","pc":[4025,4026]},{"teal":4012,"source":"contracts/NFDRegistry.algo.ts:1005","pc":[4027,4028,4029]},{"teal":4013,"source":"contracts/NFDRegistry.algo.ts:1005","pc":[4030]},{"teal":4014,"source":"contracts/NFDRegistry.algo.ts:1005","pc":[4031,4032]},{"teal":4019,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4033,4034]},{"teal":4020,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4035,4036,4037]},{"teal":4021,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4038,4039]},{"teal":4022,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4040]},{"teal":4023,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4041]},{"teal":4024,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4042]},{"teal":4025,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4043,4044,4045]},{"teal":4030,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4046,4047]},{"teal":4031,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4048,4049]},{"teal":4032,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4050,4051]},{"teal":4033,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4052]},{"teal":4034,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4053]},{"teal":4035,"source":"contracts/NFDRegistry.algo.ts:1008","pc":[4054,4055]},{"teal":4036,"source":"contracts/NFDRegistry.algo.ts:1007","pc":[4056,4057,4058]},{"teal":4042,"source":"contracts/NFDRegistry.algo.ts:1011","pc":[4059,4060]},{"teal":4043,"source":"contracts/NFDRegistry.algo.ts:1011","pc":[4061]},{"teal":4044,"source":"contracts/NFDRegistry.algo.ts:1011","pc":[4062]},{"teal":4045,"source":"contracts/NFDRegistry.algo.ts:1011","pc":[4063]},{"teal":4046,"source":"contracts/NFDRegistry.algo.ts:1011","pc":[4064,4065,4066]},{"teal":4051,"source":"contracts/NFDRegistry.algo.ts:1012","pc":[4067,4068]},{"teal":4052,"source":"contracts/NFDRegistry.algo.ts:1012","pc":[4069,4070,4071]},{"teal":4053,"source":"contracts/NFDRegistry.algo.ts:1012","pc":[4072,4073]},{"teal":4054,"source":"contracts/NFDRegistry.algo.ts:1012","pc":[4074]},{"teal":4059,"source":"contracts/NFDRegistry.algo.ts:1014","pc":[4075]},{"teal":4066,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4076,4077]},{"teal":4067,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4078]},{"teal":4068,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4079]},{"teal":4069,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4080,4081]},{"teal":4070,"source":"contracts/NFDRegistry.algo.ts:1004","pc":[4082,4083,4084]},{"teal":4073,"source":"contracts/NFDRegistry.algo.ts:994","pc":[4085]},{"teal":4086,"source":"contracts/NFDRegistry.algo.ts:1029","pc":[4086,4087,4088]},{"teal":4089,"source":"contracts/NFDRegistry.algo.ts:1029","pc":[4089]},{"teal":4094,"source":"contracts/NFDRegistry.algo.ts:1030","pc":[4090,4091]},{"teal":4095,"source":"contracts/NFDRegistry.algo.ts:1030","pc":[4092]},{"teal":4096,"source":"contracts/NFDRegistry.algo.ts:1030","pc":[4093,4094,4095]},{"teal":4101,"source":"contracts/NFDRegistry.algo.ts:1032","pc":[4096,4097]},{"teal":4102,"source":"contracts/NFDRegistry.algo.ts:1032","pc":[4098,4099,4100]},{"teal":4103,"source":"contracts/NFDRegistry.algo.ts:1032","pc":[4101]},{"teal":4106,"source":"contracts/NFDRegistry.algo.ts:1032","errorMessage":"NFD already exists with this name","pc":[4102]},{"teal":4111,"source":"contracts/NFDRegistry.algo.ts:1035","pc":[4103,4104]},{"teal":4112,"source":"contracts/NFDRegistry.algo.ts:1035","pc":[4105,4106,4107]},{"teal":4113,"source":"contracts/NFDRegistry.algo.ts:1035","pc":[4108,4109]},{"teal":4117,"source":"contracts/NFDRegistry.algo.ts:1036","pc":[4110,4111]},{"teal":4118,"source":"contracts/NFDRegistry.algo.ts:1036","pc":[4112]},{"teal":4122,"source":"contracts/NFDRegistry.algo.ts:1037","pc":[4113,4114]},{"teal":4123,"source":"contracts/NFDRegistry.algo.ts:1037","pc":[4115]},{"teal":4127,"source":"contracts/NFDRegistry.algo.ts:1038","pc":[4116,4117]},{"teal":4128,"source":"contracts/NFDRegistry.algo.ts:1038","pc":[4118]},{"teal":4129,"source":"contracts/NFDRegistry.algo.ts:1038","pc":[4119]},{"teal":4130,"source":"contracts/NFDRegistry.algo.ts:1038","pc":[4120]},{"teal":4131,"source":"contracts/NFDRegistry.algo.ts:1038","pc":[4121]},{"teal":4134,"source":"contracts/NFDRegistry.algo.ts:1038","errorMessage":"NFD has already been minted!","pc":[4122]},{"teal":4138,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4123,4124]},{"teal":4139,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4125,4126]},{"teal":4140,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4127]},{"teal":4141,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4128,4129]},{"teal":4142,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4130]},{"teal":4143,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4131]},{"teal":4144,"source":"contracts/NFDRegistry.algo.ts:1039","pc":[4132]},{"teal":4145,"source":"contracts/NFDRegistry.algo.ts:1029","pc":[4133]},{"teal":4149,"source":"contracts/NFDRegistry.algo.ts:1045","pc":[4134,4135,4136]},{"teal":4152,"source":"contracts/NFDRegistry.algo.ts:1045","pc":[4137]},{"teal":4156,"source":"contracts/NFDRegistry.algo.ts:1046","pc":[4138,4139]},{"teal":4157,"source":"contracts/NFDRegistry.algo.ts:1046","pc":[4140,4141]},{"teal":4158,"source":"contracts/NFDRegistry.algo.ts:1046","pc":[4142]},{"teal":4159,"source":"contracts/NFDRegistry.algo.ts:1046","pc":[4143,4144,4145]},{"teal":4160,"source":"contracts/NFDRegistry.algo.ts:1046","pc":[4146,4147]},{"teal":4165,"source":"contracts/NFDRegistry.algo.ts:1047","pc":[4148,4149]},{"teal":4166,"source":"contracts/NFDRegistry.algo.ts:1047","pc":[4150,4151,4152]},{"teal":4167,"source":"contracts/NFDRegistry.algo.ts:1047","pc":[4153]},{"teal":4168,"source":"contracts/NFDRegistry.algo.ts:1047","pc":[4154]},{"teal":4169,"source":"contracts/NFDRegistry.algo.ts:1047","pc":[4155,4156,4157]},{"teal":4174,"source":"contracts/NFDRegistry.algo.ts:1048","pc":[4158]},{"teal":4175,"source":"contracts/NFDRegistry.algo.ts:1048","pc":[4159,4160,4161]},{"teal":4180,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4162,4163]},{"teal":4181,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4164,4165,4166]},{"teal":4182,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4167,4168]},{"teal":4183,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4169]},{"teal":4184,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4170]},{"teal":4185,"source":"contracts/NFDRegistry.algo.ts:1050","pc":[4171]},{"teal":4189,"source":"contracts/NFDRegistry.algo.ts:1045","pc":[4172,4173]},{"teal":4190,"source":"contracts/NFDRegistry.algo.ts:1045","pc":[4174]},{"teal":4194,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4175,4176,4177]},{"teal":4197,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4178]},{"teal":4198,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4179,4180]},{"teal":4202,"source":"contracts/NFDRegistry.algo.ts:1055","pc":[4181,4182]},{"teal":4203,"source":"contracts/NFDRegistry.algo.ts:1055","pc":[4183]},{"teal":4206,"source":"contracts/NFDRegistry.algo.ts:1055","errorMessage":"box value does not exist: this.boxes(key).value","pc":[4184]},{"teal":4207,"source":"contracts/NFDRegistry.algo.ts:1055","pc":[4185,4186]},{"teal":4211,"source":"contracts/NFDRegistry.algo.ts:1057","pc":[4187,4188]},{"teal":4212,"source":"contracts/NFDRegistry.algo.ts:1057","pc":[4189]},{"teal":4213,"source":"contracts/NFDRegistry.algo.ts:1057","pc":[4190]},{"teal":4214,"source":"contracts/NFDRegistry.algo.ts:1057","pc":[4191]},{"teal":4218,"source":"contracts/NFDRegistry.algo.ts:1059","pc":[4192,4193]},{"teal":4219,"source":"contracts/NFDRegistry.algo.ts:1059","pc":[4194]},{"teal":4220,"source":"contracts/NFDRegistry.algo.ts:1059","pc":[4195,4196]},{"teal":4221,"source":"contracts/NFDRegistry.algo.ts:1059","pc":[4197]},{"teal":4224,"source":"contracts/NFDRegistry.algo.ts:1059","errorMessage":"int (appid) 'set' should already have at least two values","pc":[4198]},{"teal":4229,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4199,4200]},{"teal":4230,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4201]},{"teal":4231,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4202]},{"teal":4232,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4203,4204]},{"teal":4233,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4205]},{"teal":4234,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4206,4207,4208]},{"teal":4239,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4209]},{"teal":4240,"source":"contracts/NFDRegistry.algo.ts:1062","pc":[4210,4211,4212]},{"teal":4245,"source":"contracts/NFDRegistry.algo.ts:1064","pc":[4213,4214]},{"teal":4246,"source":"contracts/NFDRegistry.algo.ts:1064","pc":[4215]},{"teal":4247,"source":"contracts/NFDRegistry.algo.ts:1064","pc":[4216]},{"teal":4248,"source":"contracts/NFDRegistry.algo.ts:1064","pc":[4217]},{"teal":4249,"source":"contracts/NFDRegistry.algo.ts:1064","pc":[4218,4219]},{"teal":4253,"source":"contracts/NFDRegistry.algo.ts:1065","pc":[4220]},{"teal":4254,"source":"contracts/NFDRegistry.algo.ts:1065","pc":[4221,4222]},{"teal":4258,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4223]},{"teal":4259,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4224,4225]},{"teal":4264,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4226,4227]},{"teal":4265,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4228,4229]},{"teal":4266,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4230]},{"teal":4267,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4231,4232,4233]},{"teal":4272,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4234,4235]},{"teal":4273,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4236,4237]},{"teal":4274,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4238]},{"teal":4275,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4239]},{"teal":4276,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4240]},{"teal":4277,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4241,4242]},{"teal":4278,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4243]},{"teal":4279,"source":"contracts/NFDRegistry.algo.ts:1068","pc":[4244,4245,4246]},{"teal":4284,"source":"contracts/NFDRegistry.algo.ts:1069","pc":[4247,4248]},{"teal":4285,"source":"contracts/NFDRegistry.algo.ts:1069","pc":[4249,4250]},{"teal":4286,"source":"contracts/NFDRegistry.algo.ts:1070","pc":[4251,4252,4253]},{"teal":4293,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4254,4255]},{"teal":4294,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4256]},{"teal":4295,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4257]},{"teal":4296,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4258,4259]},{"teal":4297,"source":"contracts/NFDRegistry.algo.ts:1067","pc":[4260,4261,4262]},{"teal":4302,"source":"contracts/NFDRegistry.algo.ts:1073","pc":[4263,4264]},{"teal":4303,"source":"contracts/NFDRegistry.algo.ts:1073","pc":[4265]},{"teal":4304,"source":"contracts/NFDRegistry.algo.ts:1073","pc":[4266]},{"teal":4307,"source":"contracts/NFDRegistry.algo.ts:1073","errorMessage":"int (app id) must be found in set in order to move it","pc":[4267]},{"teal":4311,"source":"contracts/NFDRegistry.algo.ts:1075","pc":[4268,4269]},{"teal":4312,"source":"contracts/NFDRegistry.algo.ts:1075","pc":[4270]},{"teal":4313,"source":"contracts/NFDRegistry.algo.ts:1075","pc":[4271]},{"teal":4314,"source":"contracts/NFDRegistry.algo.ts:1075","pc":[4272,4273]},{"teal":4318,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4274,4275]},{"teal":4319,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4276]},{"teal":4320,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4277,4278]},{"teal":4321,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4279]},{"teal":4322,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4280]},{"teal":4323,"source":"contracts/NFDRegistry.algo.ts:1077","pc":[4281,4282]},{"teal":4327,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4283,4284]},{"teal":4328,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4285,4286]},{"teal":4329,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4287,4288]},{"teal":4330,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4289]},{"teal":4331,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4290]},{"teal":4332,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4291,4292]},{"teal":4333,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4293]},{"teal":4334,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4294]},{"teal":4335,"source":"contracts/NFDRegistry.algo.ts:1079","pc":[4295]},{"teal":4339,"source":"contracts/NFDRegistry.algo.ts:1080","pc":[4296]},{"teal":4343,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4297,4298]},{"teal":4346,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4299,4300]},{"teal":4347,"source":"contracts/NFDRegistry.algo.ts:1054","pc":[4301]},{"teal":4351,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4302,4303,4304]},{"teal":4354,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4305]},{"teal":4355,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4306,4307]},{"teal":4359,"source":"contracts/NFDRegistry.algo.ts:1084","pc":[4308,4309]},{"teal":4360,"source":"contracts/NFDRegistry.algo.ts:1084","pc":[4310]},{"teal":4363,"source":"contracts/NFDRegistry.algo.ts:1084","errorMessage":"box value does not exist: this.boxes(key).value","pc":[4311]},{"teal":4364,"source":"contracts/NFDRegistry.algo.ts:1084","pc":[4312,4313]},{"teal":4368,"source":"contracts/NFDRegistry.algo.ts:1085","pc":[4314,4315]},{"teal":4369,"source":"contracts/NFDRegistry.algo.ts:1085","pc":[4316]},{"teal":4370,"source":"contracts/NFDRegistry.algo.ts:1085","pc":[4317]},{"teal":4371,"source":"contracts/NFDRegistry.algo.ts:1085","pc":[4318]},{"teal":4372,"source":"contracts/NFDRegistry.algo.ts:1085","pc":[4319,4320]},{"teal":4376,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4321]},{"teal":4377,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4322,4323]},{"teal":4382,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4324,4325]},{"teal":4383,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4326,4327]},{"teal":4384,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4328]},{"teal":4385,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4329,4330,4331]},{"teal":4390,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4332,4333]},{"teal":4391,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4334,4335]},{"teal":4392,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4336]},{"teal":4393,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4337]},{"teal":4394,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4338]},{"teal":4395,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4339,4340]},{"teal":4396,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4341]},{"teal":4397,"source":"contracts/NFDRegistry.algo.ts:1088","pc":[4342,4343,4344]},{"teal":4403,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4345,4346]},{"teal":4404,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4347,4348]},{"teal":4405,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4349]},{"teal":4406,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4350]},{"teal":4407,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4351]},{"teal":4408,"source":"contracts/NFDRegistry.algo.ts:1089","pc":[4352,4353,4354]},{"teal":4413,"source":"contracts/NFDRegistry.algo.ts:1092","pc":[4355,4356]},{"teal":4414,"source":"contracts/NFDRegistry.algo.ts:1092","pc":[4357]},{"teal":4419,"source":"contracts/NFDRegistry.algo.ts:1093","pc":[4358,4359]},{"teal":4420,"source":"contracts/NFDRegistry.algo.ts:1093","pc":[4360]},{"teal":4421,"source":"contracts/NFDRegistry.algo.ts:1093","pc":[4361]},{"teal":4422,"source":"contracts/NFDRegistry.algo.ts:1093","pc":[4362,4363,4364]},{"teal":4427,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4365,4366]},{"teal":4428,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4367,4368]},{"teal":4429,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4369]},{"teal":4430,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4370,4371]},{"teal":4431,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4372]},{"teal":4432,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4373]},{"teal":4433,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4374]},{"teal":4434,"source":"contracts/NFDRegistry.algo.ts:1095","pc":[4375]},{"teal":4439,"source":"contracts/NFDRegistry.algo.ts:1097","pc":[4376]},{"teal":4440,"source":"contracts/NFDRegistry.algo.ts:1097","pc":[4377,4378,4379]},{"teal":4445,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4380,4381]},{"teal":4446,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4382,4383]},{"teal":4447,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4384]},{"teal":4448,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4385]},{"teal":4449,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4386,4387]},{"teal":4450,"source":"contracts/NFDRegistry.algo.ts:1100","pc":[4388]},{"teal":4454,"source":"contracts/NFDRegistry.algo.ts:1101","pc":[4389]},{"teal":4455,"source":"contracts/NFDRegistry.algo.ts:1101","pc":[4390,4391,4392]},{"teal":4462,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4393,4394]},{"teal":4463,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4395]},{"teal":4464,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4396]},{"teal":4465,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4397,4398]},{"teal":4466,"source":"contracts/NFDRegistry.algo.ts:1087","pc":[4399,4400,4401]},{"teal":4471,"source":"contracts/NFDRegistry.algo.ts:1105","pc":[4402]},{"teal":4475,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4403,4404]},{"teal":4478,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4405,4406]},{"teal":4479,"source":"contracts/NFDRegistry.algo.ts:1083","pc":[4407]},{"teal":4483,"source":"contracts/NFDRegistry.algo.ts:1108","pc":[4408,4409,4410]},{"teal":4487,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4411,4412]},{"teal":4488,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4413]},{"teal":4489,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4414,4415]},{"teal":4490,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4416]},{"teal":4491,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4417,4418]},{"teal":4492,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4419]},{"teal":4493,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4420]},{"teal":4494,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4421,4422]},{"teal":4495,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4423,4424]},{"teal":4496,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4425]},{"teal":4497,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4426]},{"teal":4498,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4427,4428]},{"teal":4499,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4429]},{"teal":4500,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4430]},{"teal":4501,"source":"contracts/NFDRegistry.algo.ts:1109","pc":[4431]},{"teal":4502,"source":"contracts/NFDRegistry.algo.ts:1108","pc":[4432]},{"teal":4506,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4433,4434,4435]},{"teal":4509,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4436]},{"teal":4510,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4437,4438]},{"teal":4514,"source":"contracts/NFDRegistry.algo.ts:1113","pc":[4439,4440]},{"teal":4515,"source":"contracts/NFDRegistry.algo.ts:1113","pc":[4441,4442]},{"teal":4516,"source":"contracts/NFDRegistry.algo.ts:1113","pc":[4443]},{"teal":4517,"source":"contracts/NFDRegistry.algo.ts:1113","pc":[4444,4445]},{"teal":4521,"source":"contracts/NFDRegistry.algo.ts:1114","pc":[4446,4447]},{"teal":4522,"source":"contracts/NFDRegistry.algo.ts:1114","pc":[4448]},{"teal":4523,"source":"contracts/NFDRegistry.algo.ts:1114","pc":[4449]},{"teal":4524,"source":"contracts/NFDRegistry.algo.ts:1114","pc":[4450]},{"teal":4525,"source":"contracts/NFDRegistry.algo.ts:1114","pc":[4451,4452]},{"teal":4529,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4453]},{"teal":4530,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4454,4455]},{"teal":4535,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4456,4457]},{"teal":4536,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4458,4459]},{"teal":4537,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4460]},{"teal":4538,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4461,4462,4463]},{"teal":4543,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4464,4465]},{"teal":4544,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4466,4467]},{"teal":4545,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4468]},{"teal":4546,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4469]},{"teal":4547,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4470]},{"teal":4548,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4471,4472]},{"teal":4549,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4473]},{"teal":4550,"source":"contracts/NFDRegistry.algo.ts:1117","pc":[4474,4475,4476]},{"teal":4555,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4477,4478]},{"teal":4556,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4479,4480]},{"teal":4557,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4481,4482]},{"teal":4558,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4483]},{"teal":4559,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4484]},{"teal":4560,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4485,4486]},{"teal":4561,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4487]},{"teal":4562,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4488,4489,4490]},{"teal":4563,"source":"contracts/NFDRegistry.algo.ts:1118","pc":[4491]},{"teal":4567,"source":"contracts/NFDRegistry.algo.ts:1119","pc":[4492]},{"teal":4568,"source":"contracts/NFDRegistry.algo.ts:1119","pc":[4493,4494,4495]},{"teal":4575,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4496,4497]},{"teal":4576,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4498]},{"teal":4577,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4499]},{"teal":4578,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4500,4501]},{"teal":4579,"source":"contracts/NFDRegistry.algo.ts:1116","pc":[4502,4503,4504]},{"teal":4584,"source":"contracts/NFDRegistry.algo.ts:1123","pc":[4505]},{"teal":4588,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4506,4507]},{"teal":4591,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4508,4509]},{"teal":4592,"source":"contracts/NFDRegistry.algo.ts:1112","pc":[4510]},{"teal":4596,"source":"contracts/NFDRegistry.algo.ts:1126","pc":[4511,4512,4513]},{"teal":4599,"source":"contracts/NFDRegistry.algo.ts:1126","pc":[4514]},{"teal":4603,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4515]},{"teal":4604,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4516,4517]},{"teal":4609,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4518,4519]},{"teal":4610,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4520,4521]},{"teal":4611,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4522]},{"teal":4612,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4523,4524,4525]},{"teal":4617,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4526,4527]},{"teal":4618,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4528,4529]},{"teal":4619,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4530,4531]},{"teal":4620,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4532,4533,4534]},{"teal":4621,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4535]},{"teal":4622,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4536,4537]},{"teal":4623,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4538,4539,4540]},{"teal":4624,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4541,4542,4543]},{"teal":4629,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4544]},{"teal":4630,"source":"contracts/NFDRegistry.algo.ts:1128","pc":[4545,4546,4547]},{"teal":4637,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4548,4549]},{"teal":4638,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4550]},{"teal":4639,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4551]},{"teal":4640,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4552,4553]},{"teal":4641,"source":"contracts/NFDRegistry.algo.ts:1127","pc":[4554,4555,4556]},{"teal":4646,"source":"contracts/NFDRegistry.algo.ts:1131","pc":[4557]},{"teal":4650,"source":"contracts/NFDRegistry.algo.ts:1126","pc":[4558,4559]},{"teal":4651,"source":"contracts/NFDRegistry.algo.ts:1126","pc":[4560]},{"teal":4655,"source":"contracts/NFDRegistry.algo.ts:1139","pc":[4561,4562,4563]},{"teal":4658,"source":"contracts/NFDRegistry.algo.ts:1139","pc":[4564]},{"teal":4659,"source":"contracts/NFDRegistry.algo.ts:1139","pc":[4565]},{"teal":4663,"source":"contracts/NFDRegistry.algo.ts:1140","pc":[4566,4567]},{"teal":4664,"source":"contracts/NFDRegistry.algo.ts:1140","pc":[4568,4569]},{"teal":4665,"source":"contracts/NFDRegistry.algo.ts:1140","pc":[4570]},{"teal":4666,"source":"contracts/NFDRegistry.algo.ts:1140","pc":[4571,4572]},{"teal":4670,"source":"contracts/NFDRegistry.algo.ts:1141","pc":[4573,4574]},{"teal":4671,"source":"contracts/NFDRegistry.algo.ts:1141","pc":[4575,4576]},{"teal":4672,"source":"contracts/NFDRegistry.algo.ts:1141","pc":[4577]},{"teal":4673,"source":"contracts/NFDRegistry.algo.ts:1141","pc":[4578,4579]},{"teal":4678,"source":"contracts/NFDRegistry.algo.ts:1142","pc":[4580,4581]},{"teal":4679,"source":"contracts/NFDRegistry.algo.ts:1142","pc":[4582,4583]},{"teal":4680,"source":"contracts/NFDRegistry.algo.ts:1142","pc":[4584]},{"teal":4681,"source":"contracts/NFDRegistry.algo.ts:1142","pc":[4585,4586,4587]},{"teal":4690,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4588]},{"teal":4691,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4589]},{"teal":4692,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4590,4591]},{"teal":4696,"source":"contracts/NFDRegistry.algo.ts:1144","pc":[4592,4593]},{"teal":4697,"source":"contracts/NFDRegistry.algo.ts:1144","pc":[4594,4595]},{"teal":4698,"source":"contracts/NFDRegistry.algo.ts:1144","pc":[4596]},{"teal":4699,"source":"contracts/NFDRegistry.algo.ts:1144","pc":[4597,4598]},{"teal":4703,"source":"contracts/NFDRegistry.algo.ts:1145","pc":[4599,4600,4601]},{"teal":4704,"source":"contracts/NFDRegistry.algo.ts:1145","pc":[4602,4603]},{"teal":4708,"source":"contracts/NFDRegistry.algo.ts:1146","pc":[4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614]},{"teal":4709,"source":"contracts/NFDRegistry.algo.ts:1146","pc":[4615,4616]},{"teal":4712,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4617]},{"teal":4713,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4618,4619]},{"teal":4716,"source":"contracts/NFDRegistry.algo.ts:1143","pc":[4620]},{"teal":4719,"source":"contracts/NFDRegistry.algo.ts:1139","pc":[4621]},{"teal":4723,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4622,4623,4624]},{"teal":4726,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4625]},{"teal":4727,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4626,4627]},{"teal":4731,"source":"contracts/NFDRegistry.algo.ts:1164","pc":[4628,4629]},{"teal":4732,"source":"contracts/NFDRegistry.algo.ts:1164","pc":[4630]},{"teal":4733,"source":"contracts/NFDRegistry.algo.ts:1164","pc":[4631,4632]},{"teal":4737,"source":"contracts/NFDRegistry.algo.ts:1166","pc":[4633,4634]},{"teal":4738,"source":"contracts/NFDRegistry.algo.ts:1166","pc":[4635]},{"teal":4739,"source":"contracts/NFDRegistry.algo.ts:1166","pc":[4636]},{"teal":4742,"source":"contracts/NFDRegistry.algo.ts:1166","errorMessage":"if not at least 6 chars can't be valid - minimum length to have .algo","pc":[4637]},{"teal":4746,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4638,4639]},{"teal":4747,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4640,4641]},{"teal":4748,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4642,4643]},{"teal":4749,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4644]},{"teal":4750,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4645,4646]},{"teal":4751,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4647]},{"teal":4752,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4648,4649,4650,4651,4652,4653,4654]},{"teal":4753,"source":"contracts/NFDRegistry.algo.ts:1167","pc":[4655]},{"teal":4756,"source":"contracts/NFDRegistry.algo.ts:1167","errorMessage":"string must end w/ .algo","pc":[4656]},{"teal":4760,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4657,4658]},{"teal":4761,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4659]},{"teal":4762,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4660]},{"teal":4763,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4661]},{"teal":4764,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4662,4663]},{"teal":4765,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4664]},{"teal":4766,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4665,4666]},{"teal":4767,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4667]},{"teal":4768,"source":"contracts/NFDRegistry.algo.ts:1169","pc":[4668,4669]},{"teal":4772,"source":"contracts/NFDRegistry.algo.ts:1170","pc":[4670]},{"teal":4773,"source":"contracts/NFDRegistry.algo.ts:1170","pc":[4671,4672]},{"teal":4777,"source":"contracts/NFDRegistry.algo.ts:1171","pc":[4673]},{"teal":4778,"source":"contracts/NFDRegistry.algo.ts:1171","pc":[4674,4675]},{"teal":4782,"source":"contracts/NFDRegistry.algo.ts:1172","pc":[4676]},{"teal":4783,"source":"contracts/NFDRegistry.algo.ts:1172","pc":[4677,4678]},{"teal":4787,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4679]},{"teal":4788,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4680,4681]},{"teal":4793,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4682,4683]},{"teal":4794,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4684,4685]},{"teal":4795,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4686,4687]},{"teal":4796,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4688]},{"teal":4797,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4689]},{"teal":4798,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4690,4691,4692]},{"teal":4802,"source":"contracts/NFDRegistry.algo.ts:1175","pc":[4693,4694]},{"teal":4803,"source":"contracts/NFDRegistry.algo.ts:1175","pc":[4695,4696]},{"teal":4804,"source":"contracts/NFDRegistry.algo.ts:1175","pc":[4697]},{"teal":4805,"source":"contracts/NFDRegistry.algo.ts:1175","pc":[4698,4699]},{"teal":4810,"source":"contracts/NFDRegistry.algo.ts:1177","pc":[4700,4701]},{"teal":4811,"source":"contracts/NFDRegistry.algo.ts:1177","pc":[4702,4703]},{"teal":4812,"source":"contracts/NFDRegistry.algo.ts:1177","pc":[4704]},{"teal":4813,"source":"contracts/NFDRegistry.algo.ts:1177","pc":[4705,4706,4707]},{"teal":4818,"source":"contracts/NFDRegistry.algo.ts:1178","pc":[4708,4709]},{"teal":4819,"source":"contracts/NFDRegistry.algo.ts:1178","pc":[4710]},{"teal":4820,"source":"contracts/NFDRegistry.algo.ts:1178","pc":[4711]},{"teal":4821,"source":"contracts/NFDRegistry.algo.ts:1178","pc":[4712,4713]},{"teal":4826,"source":"contracts/NFDRegistry.algo.ts:1180","pc":[4714,4715]},{"teal":4827,"source":"contracts/NFDRegistry.algo.ts:1180","pc":[4716]},{"teal":4828,"source":"contracts/NFDRegistry.algo.ts:1180","pc":[4717]},{"teal":4829,"source":"contracts/NFDRegistry.algo.ts:1180","pc":[4718,4719,4720]},{"teal":4834,"source":"contracts/NFDRegistry.algo.ts:1181","pc":[4721,4722]},{"teal":4835,"source":"contracts/NFDRegistry.algo.ts:1181","pc":[4723,4724]},{"teal":4839,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4725,4726]},{"teal":4840,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4727]},{"teal":4841,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4728]},{"teal":4842,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4729]},{"teal":4843,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4730,4731,4732]},{"teal":4844,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4733,4734]},{"teal":4845,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4735,4736]},{"teal":4846,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4737]},{"teal":4847,"source":"contracts/NFDRegistry.algo.ts:1182","pc":[4738]},{"teal":4851,"source":"contracts/NFDRegistry.algo.ts:1182","errorMessage":"must be 1-27 chars in nfd root or segment name","pc":[4739]},{"teal":4855,"source":"contracts/NFDRegistry.algo.ts:1183","pc":[4740]},{"teal":4856,"source":"contracts/NFDRegistry.algo.ts:1183","pc":[4741,4742]},{"teal":4857,"source":"contracts/NFDRegistry.algo.ts:1180","pc":[4743,4744,4745]},{"teal":4862,"source":"contracts/NFDRegistry.algo.ts:1184","pc":[4746,4747]},{"teal":4863,"source":"contracts/NFDRegistry.algo.ts:1184","pc":[4748,4749]},{"teal":4864,"source":"contracts/NFDRegistry.algo.ts:1184","pc":[4750]},{"teal":4865,"source":"contracts/NFDRegistry.algo.ts:1184","pc":[4751,4752,4753]},{"teal":4873,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4754,4755]},{"teal":4874,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4756]},{"teal":4875,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4757]},{"teal":4876,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4758]},{"teal":4877,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4759,4760,4761]},{"teal":4878,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4762,4763]},{"teal":4879,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4764,4765]},{"teal":4880,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4766]},{"teal":4881,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4767]},{"teal":4884,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4768]},{"teal":4885,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4769,4770,4771]},{"teal":4886,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4772,4773]},{"teal":4887,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4774,4775]},{"teal":4888,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4776,4777]},{"teal":4889,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4778]},{"teal":4890,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4779]},{"teal":4891,"source":"contracts/NFDRegistry.algo.ts:1186","pc":[4780]},{"teal":4895,"source":"contracts/NFDRegistry.algo.ts:1185","errorMessage":"must be 1-27 chars and at end of string","pc":[4781]},{"teal":4896,"source":"contracts/NFDRegistry.algo.ts:1184","pc":[4782,4783,4784]},{"teal":4900,"source":"contracts/NFDRegistry.algo.ts:1190","errorMessage":"too many '.' chars in name","pc":[4785]},{"teal":4903,"source":"contracts/NFDRegistry.algo.ts:1177","pc":[4786,4787,4788]},{"teal":4909,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4789,4790]},{"teal":4910,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4791,4792]},{"teal":4911,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4793]},{"teal":4912,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4794]},{"teal":4913,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4795,4796,4797]},{"teal":4914,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4798,4799]},{"teal":4915,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4800,4801]},{"teal":4916,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4802]},{"teal":4917,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4803]},{"teal":4920,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4804]},{"teal":4921,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4805,4806,4807]},{"teal":4922,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4808,4809]},{"teal":4923,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4810,4811]},{"teal":4924,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4812]},{"teal":4925,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4813]},{"teal":4926,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4814,4815,4816]},{"teal":4927,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4817,4818]},{"teal":4928,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4819,4820]},{"teal":4929,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4821]},{"teal":4930,"source":"contracts/NFDRegistry.algo.ts:1194","pc":[4822]},{"teal":4933,"source":"contracts/NFDRegistry.algo.ts:1193","pc":[4823]},{"teal":4936,"source":"contracts/NFDRegistry.algo.ts:1192","pc":[4824,4825,4826]},{"teal":4941,"source":"contracts/NFDRegistry.algo.ts:1196","pc":[4827,4828]},{"teal":4942,"source":"contracts/NFDRegistry.algo.ts:1196","pc":[4829]},{"teal":4943,"source":"contracts/NFDRegistry.algo.ts:1196","pc":[4830]},{"teal":4944,"source":"contracts/NFDRegistry.algo.ts:1196","pc":[4831,4832]},{"teal":4945,"source":"contracts/NFDRegistry.algo.ts:1192","pc":[4833,4834,4835]},{"teal":4949,"source":"contracts/NFDRegistry.algo.ts:1198","errorMessage":"invalid character in name","pc":[4836]},{"teal":4956,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4837,4838]},{"teal":4957,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4839]},{"teal":4958,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4840]},{"teal":4959,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4841,4842]},{"teal":4960,"source":"contracts/NFDRegistry.algo.ts:1174","pc":[4843,4844,4845]},{"teal":4966,"source":"contracts/NFDRegistry.algo.ts:1201","pc":[4846,4847]},{"teal":4967,"source":"contracts/NFDRegistry.algo.ts:1201","pc":[4848]},{"teal":4968,"source":"contracts/NFDRegistry.algo.ts:1201","pc":[4849]},{"teal":4969,"source":"contracts/NFDRegistry.algo.ts:1201","pc":[4850,4851,4852]},{"teal":4974,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4853,4854]},{"teal":4975,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4855,4856]},{"teal":4976,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4857,4858]},{"teal":4977,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4859]},{"teal":4978,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4860]},{"teal":4979,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4861]},{"teal":4980,"source":"contracts/NFDRegistry.algo.ts:1202","pc":[4862,4863]},{"teal":4984,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4864,4865]},{"teal":4985,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4866,4867]},{"teal":4986,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4868,4869]},{"teal":4987,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4870]},{"teal":4988,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4871,4872]},{"teal":4989,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4873]},{"teal":4990,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4874]},{"teal":4991,"source":"contracts/NFDRegistry.algo.ts:1203","pc":[4875,4876]},{"teal":4995,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4877,4878]},{"teal":4996,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4879,4880]},{"teal":4997,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4881,4882]},{"teal":4998,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4883,4884]},{"teal":4999,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4885,4886]},{"teal":5000,"source":"contracts/NFDRegistry.algo.ts:1204","pc":[4887,4888]},{"teal":5001,"source":"contracts/NFDRegistry.algo.ts:1201","pc":[4889,4890,4891]},{"teal":5006,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4892,4893]},{"teal":5007,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4894,4895]},{"teal":5008,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4896,4897]},{"teal":5009,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4898]},{"teal":5010,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4899]},{"teal":5011,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4900]},{"teal":5012,"source":"contracts/NFDRegistry.algo.ts:1206","pc":[4901,4902]},{"teal":5016,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4903,4904]},{"teal":5017,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4905,4906]},{"teal":5018,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4907,4908]},{"teal":5019,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4909]},{"teal":5020,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4910,4911]},{"teal":5021,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4912]},{"teal":5022,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4913]},{"teal":5023,"source":"contracts/NFDRegistry.algo.ts:1207","pc":[4914,4915]},{"teal":5027,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4916,4917]},{"teal":5028,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4918,4919]},{"teal":5029,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4920,4921]},{"teal":5030,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4922,4923]},{"teal":5031,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4924,4925]},{"teal":5032,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4926,4927]},{"teal":5033,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4928]},{"teal":5034,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4929,4930]},{"teal":5035,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4931]},{"teal":5036,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4932]},{"teal":5037,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4933]},{"teal":5038,"source":"contracts/NFDRegistry.algo.ts:1208","pc":[4934,4935]},{"teal":5043,"source":"contracts/NFDRegistry.algo.ts:1211","pc":[4936,4937]},{"teal":5046,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4938,4939]},{"teal":5049,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4940,4941]},{"teal":5050,"source":"contracts/NFDRegistry.algo.ts:1151","pc":[4942]},{"teal":5054,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4943,4944,4945]},{"teal":5057,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4946]},{"teal":5058,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4947]},{"teal":5062,"source":"contracts/NFDRegistry.algo.ts:1215","pc":[4948,4949]},{"teal":5063,"source":"contracts/NFDRegistry.algo.ts:1215","pc":[4950,4951,4952]},{"teal":5064,"source":"contracts/NFDRegistry.algo.ts:1215","pc":[4953,4954]},{"teal":5069,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4955,4956]},{"teal":5070,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4957]},{"teal":5071,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4958]},{"teal":5072,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4959]},{"teal":5073,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4960]},{"teal":5074,"source":"contracts/NFDRegistry.algo.ts:1216","pc":[4961,4962,4963]},{"teal":5079,"source":"contracts/NFDRegistry.algo.ts:1217","pc":[4964]},{"teal":5080,"source":"contracts/NFDRegistry.algo.ts:1217","pc":[4965,4966,4967]},{"teal":5085,"source":"contracts/NFDRegistry.algo.ts:1219","pc":[4968,4969]},{"teal":5086,"source":"contracts/NFDRegistry.algo.ts:1219","pc":[4970]},{"teal":5089,"source":"contracts/NFDRegistry.algo.ts:1219","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[4971]},{"teal":5090,"source":"contracts/NFDRegistry.algo.ts:1219","pc":[4972,4973]},{"teal":5094,"source":"contracts/NFDRegistry.algo.ts:1220","pc":[4974,4975]},{"teal":5095,"source":"contracts/NFDRegistry.algo.ts:1220","pc":[4976]},{"teal":5096,"source":"contracts/NFDRegistry.algo.ts:1220","pc":[4977,4978]},{"teal":5097,"source":"contracts/NFDRegistry.algo.ts:1220","pc":[4979]},{"teal":5098,"source":"contracts/NFDRegistry.algo.ts:1220","pc":[4980]},{"teal":5102,"source":"contracts/NFDRegistry.algo.ts:1221","pc":[4981,4982]},{"teal":5103,"source":"contracts/NFDRegistry.algo.ts:1221","pc":[4983]},{"teal":5104,"source":"contracts/NFDRegistry.algo.ts:1221","pc":[4984]},{"teal":5108,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4985,4986]},{"teal":5111,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4987,4988]},{"teal":5112,"source":"contracts/NFDRegistry.algo.ts:1214","pc":[4989]},{"teal":5116,"source":"contracts/NFDRegistry.algo.ts:1224","pc":[4990,4991,4992]},{"teal":5120,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[4993,4994]},{"teal":5121,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[4995,4996]},{"teal":5122,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[4997,4998]},{"teal":5123,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[4999,5000]},{"teal":5124,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[5001,5002,5003]},{"teal":5125,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[5004]},{"teal":5126,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[5005,5006]},{"teal":5127,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[5007]},{"teal":5128,"source":"contracts/NFDRegistry.algo.ts:1225","pc":[5008]},{"teal":5129,"source":"contracts/NFDRegistry.algo.ts:1224","pc":[5009]},{"teal":5133,"source":"contracts/NFDRegistry.algo.ts:1228","pc":[5010,5011,5012]},{"teal":5138,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5013,5014]},{"teal":5139,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5015,5016]},{"teal":5140,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5017]},{"teal":5141,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5018]},{"teal":5142,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5019]},{"teal":5143,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5020]},{"teal":5144,"source":"contracts/NFDRegistry.algo.ts:1229","pc":[5021,5022,5023]},{"teal":5149,"source":"contracts/NFDRegistry.algo.ts:1230","pc":[5024]},{"teal":5150,"source":"contracts/NFDRegistry.algo.ts:1230","pc":[5025]},{"teal":5155,"source":"contracts/NFDRegistry.algo.ts:1232","pc":[5026,5027]},{"teal":5156,"source":"contracts/NFDRegistry.algo.ts:1232","pc":[5028,5029]},{"teal":5157,"source":"contracts/NFDRegistry.algo.ts:1232","pc":[5030]},{"teal":5160,"source":"contracts/NFDRegistry.algo.ts:1232","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5031]},{"teal":5161,"source":"contracts/NFDRegistry.algo.ts:1228","pc":[5032]},{"teal":5165,"source":"contracts/NFDRegistry.algo.ts:1235","pc":[5033,5034,5035]},{"teal":5170,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5036,5037]},{"teal":5171,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5038,5039]},{"teal":5172,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5040]},{"teal":5173,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5041]},{"teal":5174,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5042]},{"teal":5175,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5043]},{"teal":5176,"source":"contracts/NFDRegistry.algo.ts:1236","pc":[5044,5045,5046]},{"teal":5181,"source":"contracts/NFDRegistry.algo.ts:1237","pc":[5047]},{"teal":5182,"source":"contracts/NFDRegistry.algo.ts:1237","pc":[5048]},{"teal":5187,"source":"contracts/NFDRegistry.algo.ts:1239","pc":[5049,5050]},{"teal":5188,"source":"contracts/NFDRegistry.algo.ts:1239","pc":[5051,5052]},{"teal":5189,"source":"contracts/NFDRegistry.algo.ts:1239","pc":[5053]},{"teal":5192,"source":"contracts/NFDRegistry.algo.ts:1239","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5054]},{"teal":5193,"source":"contracts/NFDRegistry.algo.ts:1239","pc":[5055]},{"teal":5194,"source":"contracts/NFDRegistry.algo.ts:1235","pc":[5056]},{"teal":5221,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5057,5058,5059]},{"teal":5224,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5060]},{"teal":5225,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5061,5062]},{"teal":5229,"source":"contracts/NFDRegistry.algo.ts:1267","pc":[5063,5064,5065]},{"teal":5230,"source":"contracts/NFDRegistry.algo.ts:1267","pc":[5066,5067]},{"teal":5235,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5068,5069]},{"teal":5236,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5070,5071]},{"teal":5237,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5072,5073]},{"teal":5238,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5074]},{"teal":5239,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5075]},{"teal":5240,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5076,5077,5078]},{"teal":5245,"source":"contracts/NFDRegistry.algo.ts:1271","pc":[5079,5080]},{"teal":5246,"source":"contracts/NFDRegistry.algo.ts:1271","pc":[5081,5082]},{"teal":5247,"source":"contracts/NFDRegistry.algo.ts:1271","pc":[5083,5084,5085]},{"teal":5248,"source":"contracts/NFDRegistry.algo.ts:1271","pc":[5086,5087,5088]},{"teal":5249,"source":"contracts/NFDRegistry.algo.ts:1271","pc":[5089,5090]},{"teal":5253,"source":"contracts/NFDRegistry.algo.ts:1272","pc":[5091,5092]},{"teal":5254,"source":"contracts/NFDRegistry.algo.ts:1272","pc":[5093]},{"teal":5255,"source":"contracts/NFDRegistry.algo.ts:1272","pc":[5094]},{"teal":5258,"source":"contracts/NFDRegistry.algo.ts:1272","errorMessage":"parent nfd/id must be found","pc":[5095]},{"teal":5262,"source":"contracts/NFDRegistry.algo.ts:1274","pc":[5096]},{"teal":5263,"source":"contracts/NFDRegistry.algo.ts:1274","pc":[5097,5098]},{"teal":5268,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5099,5100]},{"teal":5269,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5101,5102]},{"teal":5270,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5103,5104,5105]},{"teal":5271,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5106,5107]},{"teal":5272,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5108]},{"teal":5273,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5109,5110,5111]},{"teal":5278,"source":"contracts/NFDRegistry.algo.ts:1278","pc":[5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130]},{"teal":5279,"source":"contracts/NFDRegistry.algo.ts:1278","pc":[5131,5132]},{"teal":5280,"source":"contracts/NFDRegistry.algo.ts:1278","pc":[5133,5134,5135]},{"teal":5281,"source":"contracts/NFDRegistry.algo.ts:1278","pc":[5136,5137]},{"teal":5286,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5138,5139]},{"teal":5287,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5140,5141]},{"teal":5288,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5142,5143,5144]},{"teal":5289,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5145]},{"teal":5290,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5146]},{"teal":5291,"source":"contracts/NFDRegistry.algo.ts:1279","pc":[5147,5148,5149]},{"teal":5296,"source":"contracts/NFDRegistry.algo.ts:1280","pc":[5150,5151]},{"teal":5297,"source":"contracts/NFDRegistry.algo.ts:1280","pc":[5152,5153,5154]},{"teal":5298,"source":"contracts/NFDRegistry.algo.ts:1280","pc":[5155]},{"teal":5299,"source":"contracts/NFDRegistry.algo.ts:1280","pc":[5156,5157]},{"teal":5302,"source":"contracts/NFDRegistry.algo.ts:1276","pc":[5158,5159,5160]},{"teal":5307,"source":"contracts/NFDRegistry.algo.ts:1284","pc":[5161,5162]},{"teal":5308,"source":"contracts/NFDRegistry.algo.ts:1284","pc":[5163,5164,5165]},{"teal":5309,"source":"contracts/NFDRegistry.algo.ts:1284","pc":[5166]},{"teal":5310,"source":"contracts/NFDRegistry.algo.ts:1284","pc":[5167,5168]},{"teal":5318,"source":"contracts/NFDRegistry.algo.ts:1288","pc":[5169,5170]},{"teal":5319,"source":"contracts/NFDRegistry.algo.ts:1288","pc":[5171,5172]},{"teal":5320,"source":"contracts/NFDRegistry.algo.ts:1288","pc":[5173,5174,5175]},{"teal":5321,"source":"contracts/NFDRegistry.algo.ts:1288","pc":[5176]},{"teal":5322,"source":"contracts/NFDRegistry.algo.ts:1288","pc":[5177]},{"teal":5325,"source":"contracts/NFDRegistry.algo.ts:1287","errorMessage":"segment mint cost must be at least NFD_MIN_SEGMENT_USD","pc":[5178]},{"teal":5329,"source":"contracts/NFDRegistry.algo.ts:1293","pc":[5179,5180]},{"teal":5330,"source":"contracts/NFDRegistry.algo.ts:1293","pc":[5181,5182,5183]},{"teal":5331,"source":"contracts/NFDRegistry.algo.ts:1293","pc":[5184,5185]},{"teal":5332,"source":"contracts/NFDRegistry.algo.ts:1269","pc":[5186,5187,5188]},{"teal":5337,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5189,5190]},{"teal":5338,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5191,5192]},{"teal":5339,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5193,5194]},{"teal":5340,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5195,5196,5197]},{"teal":5341,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5198]},{"teal":5342,"source":"contracts/NFDRegistry.algo.ts:1296","pc":[5199,5200]},{"teal":5346,"source":"contracts/NFDRegistry.algo.ts:1297","pc":[5201]},{"teal":5347,"source":"contracts/NFDRegistry.algo.ts:1297","pc":[5202,5203]},{"teal":5352,"source":"contracts/NFDRegistry.algo.ts:1298","pc":[5204,5205]},{"teal":5353,"source":"contracts/NFDRegistry.algo.ts:1298","pc":[5206,5207]},{"teal":5354,"source":"contracts/NFDRegistry.algo.ts:1298","pc":[5208]},{"teal":5355,"source":"contracts/NFDRegistry.algo.ts:1298","pc":[5209,5210,5211]},{"teal":5360,"source":"contracts/NFDRegistry.algo.ts:1299","pc":[5212,5213,5214]},{"teal":5361,"source":"contracts/NFDRegistry.algo.ts:1299","pc":[5215,5216]},{"teal":5362,"source":"contracts/NFDRegistry.algo.ts:1298","pc":[5217,5218,5219]},{"teal":5367,"source":"contracts/NFDRegistry.algo.ts:1300","pc":[5220,5221]},{"teal":5368,"source":"contracts/NFDRegistry.algo.ts:1300","pc":[5222,5223]},{"teal":5369,"source":"contracts/NFDRegistry.algo.ts:1300","pc":[5224]},{"teal":5370,"source":"contracts/NFDRegistry.algo.ts:1300","pc":[5225,5226,5227]},{"teal":5375,"source":"contracts/NFDRegistry.algo.ts:1301","pc":[5228,5229,5230]},{"teal":5376,"source":"contracts/NFDRegistry.algo.ts:1301","pc":[5231,5232]},{"teal":5377,"source":"contracts/NFDRegistry.algo.ts:1300","pc":[5233,5234,5235]},{"teal":5382,"source":"contracts/NFDRegistry.algo.ts:1302","pc":[5236,5237]},{"teal":5383,"source":"contracts/NFDRegistry.algo.ts:1302","pc":[5238,5239]},{"teal":5384,"source":"contracts/NFDRegistry.algo.ts:1302","pc":[5240]},{"teal":5385,"source":"contracts/NFDRegistry.algo.ts:1302","pc":[5241,5242,5243]},{"teal":5390,"source":"contracts/NFDRegistry.algo.ts:1303","pc":[5244,5245,5246]},{"teal":5391,"source":"contracts/NFDRegistry.algo.ts:1303","pc":[5247,5248]},{"teal":5392,"source":"contracts/NFDRegistry.algo.ts:1302","pc":[5249,5250,5251]},{"teal":5397,"source":"contracts/NFDRegistry.algo.ts:1304","pc":[5252,5253]},{"teal":5398,"source":"contracts/NFDRegistry.algo.ts:1304","pc":[5254,5255]},{"teal":5399,"source":"contracts/NFDRegistry.algo.ts:1304","pc":[5256]},{"teal":5400,"source":"contracts/NFDRegistry.algo.ts:1304","pc":[5257,5258,5259]},{"teal":5405,"source":"contracts/NFDRegistry.algo.ts:1305","pc":[5260,5261,5262]},{"teal":5406,"source":"contracts/NFDRegistry.algo.ts:1305","pc":[5263,5264]},{"teal":5407,"source":"contracts/NFDRegistry.algo.ts:1304","pc":[5265,5266,5267]},{"teal":5412,"source":"contracts/NFDRegistry.algo.ts:1306","pc":[5268,5269]},{"teal":5413,"source":"contracts/NFDRegistry.algo.ts:1306","pc":[5270]},{"teal":5414,"source":"contracts/NFDRegistry.algo.ts:1306","pc":[5271]},{"teal":5415,"source":"contracts/NFDRegistry.algo.ts:1306","pc":[5272,5273,5274]},{"teal":5420,"source":"contracts/NFDRegistry.algo.ts:1307","pc":[5275,5276,5277,5278]},{"teal":5421,"source":"contracts/NFDRegistry.algo.ts:1307","pc":[5279,5280]},{"teal":5422,"source":"contracts/NFDRegistry.algo.ts:1306","pc":[5281,5282,5283]},{"teal":5426,"source":"contracts/NFDRegistry.algo.ts:1309","errorMessage":"invalid cost calc","pc":[5284]},{"teal":5431,"source":"contracts/NFDRegistry.algo.ts:1311","pc":[5285,5286]},{"teal":5432,"source":"contracts/NFDRegistry.algo.ts:1311","pc":[5287,5288]},{"teal":5433,"source":"contracts/NFDRegistry.algo.ts:1311","pc":[5289,5290,5291]},{"teal":5434,"source":"contracts/NFDRegistry.algo.ts:1311","pc":[5292,5293]},{"teal":5438,"source":"contracts/NFDRegistry.algo.ts:1312","pc":[5294,5295]},{"teal":5439,"source":"contracts/NFDRegistry.algo.ts:1312","pc":[5296,5297,5298]},{"teal":5440,"source":"contracts/NFDRegistry.algo.ts:1312","pc":[5299,5300]},{"teal":5445,"source":"contracts/NFDRegistry.algo.ts:1316","pc":[5301,5302]},{"teal":5446,"source":"contracts/NFDRegistry.algo.ts:1316","pc":[5303,5304,5305]},{"teal":5447,"source":"contracts/NFDRegistry.algo.ts:1316","pc":[5306,5307]},{"teal":5451,"source":"contracts/NFDRegistry.algo.ts:1317","pc":[5308]},{"teal":5452,"source":"contracts/NFDRegistry.algo.ts:1317","pc":[5309,5310]},{"teal":5456,"source":"contracts/NFDRegistry.algo.ts:1318","pc":[5311]},{"teal":5457,"source":"contracts/NFDRegistry.algo.ts:1318","pc":[5312,5313]},{"teal":5462,"source":"contracts/NFDRegistry.algo.ts:1319","pc":[5314,5315]},{"teal":5463,"source":"contracts/NFDRegistry.algo.ts:1319","pc":[5316]},{"teal":5464,"source":"contracts/NFDRegistry.algo.ts:1319","pc":[5317]},{"teal":5465,"source":"contracts/NFDRegistry.algo.ts:1319","pc":[5318,5319,5320]},{"teal":5470,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5321,5322]},{"teal":5471,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5323,5324]},{"teal":5472,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5325]},{"teal":5473,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5326]},{"teal":5476,"source":"contracts/NFDRegistry.algo.ts:1320","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[5327]},{"teal":5477,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5328]},{"teal":5478,"source":"contracts/NFDRegistry.algo.ts:1320","pc":[5329,5330]},{"teal":5482,"source":"contracts/NFDRegistry.algo.ts:1321","pc":[5331,5332]},{"teal":5483,"source":"contracts/NFDRegistry.algo.ts:1321","pc":[5333,5334]},{"teal":5484,"source":"contracts/NFDRegistry.algo.ts:1321","pc":[5335,5336,5337]},{"teal":5485,"source":"contracts/NFDRegistry.algo.ts:1321","pc":[5338,5339]},{"teal":5489,"source":"contracts/NFDRegistry.algo.ts:1322","pc":[5340,5341]},{"teal":5490,"source":"contracts/NFDRegistry.algo.ts:1322","pc":[5342,5343,5344]},{"teal":5491,"source":"contracts/NFDRegistry.algo.ts:1322","pc":[5345,5346]},{"teal":5496,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5347,5348]},{"teal":5497,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5349]},{"teal":5498,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5350,5351,5352]},{"teal":5499,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5353,5354]},{"teal":5500,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5355]},{"teal":5501,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5356]},{"teal":5504,"source":"contracts/NFDRegistry.algo.ts:1323","pc":[5357,5358,5359]},{"teal":5509,"source":"contracts/NFDRegistry.algo.ts:1324","pc":[5360]},{"teal":5510,"source":"contracts/NFDRegistry.algo.ts:1324","pc":[5361,5362]},{"teal":5514,"source":"contracts/NFDRegistry.algo.ts:1327","pc":[5363,5364]},{"teal":5515,"source":"contracts/NFDRegistry.algo.ts:1327","pc":[5365,5366,5367]},{"teal":5516,"source":"contracts/NFDRegistry.algo.ts:1327","pc":[5368]},{"teal":5517,"source":"contracts/NFDRegistry.algo.ts:1327","pc":[5369,5370,5371]},{"teal":5518,"source":"contracts/NFDRegistry.algo.ts:1327","pc":[5372,5373]},{"teal":5522,"source":"contracts/NFDRegistry.algo.ts:1328","pc":[5374,5375]},{"teal":5523,"source":"contracts/NFDRegistry.algo.ts:1328","pc":[5376,5377]},{"teal":5527,"source":"contracts/NFDRegistry.algo.ts:1329","pc":[5378,5379]},{"teal":5528,"source":"contracts/NFDRegistry.algo.ts:1329","pc":[5380,5381]},{"teal":5532,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5382,5383]},{"teal":5533,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5384,5385]},{"teal":5534,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5386,5387,5388]},{"teal":5535,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5389]},{"teal":5536,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5390,5391]},{"teal":5537,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5392]},{"teal":5538,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5393,5394]},{"teal":5539,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5395]},{"teal":5540,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5396,5397]},{"teal":5541,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5398]},{"teal":5542,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5399]},{"teal":5543,"source":"contracts/NFDRegistry.algo.ts:1330","pc":[5400,5401]},{"teal":5547,"source":"contracts/NFDRegistry.algo.ts:1335","pc":[5402,5403]},{"teal":5548,"source":"contracts/NFDRegistry.algo.ts:1335","pc":[5404,5405]},{"teal":5549,"source":"contracts/NFDRegistry.algo.ts:1335","pc":[5406]},{"teal":5550,"source":"contracts/NFDRegistry.algo.ts:1335","pc":[5407]},{"teal":5555,"source":"contracts/NFDRegistry.algo.ts:1336","pc":[5408,5409]},{"teal":5556,"source":"contracts/NFDRegistry.algo.ts:1336","pc":[5410,5411]},{"teal":5557,"source":"contracts/NFDRegistry.algo.ts:1336","pc":[5412]},{"teal":5558,"source":"contracts/NFDRegistry.algo.ts:1336","pc":[5413,5414,5415]},{"teal":5563,"source":"contracts/NFDRegistry.algo.ts:1337","pc":[5416,5417]},{"teal":5564,"source":"contracts/NFDRegistry.algo.ts:1337","pc":[5418,5419]},{"teal":5565,"source":"contracts/NFDRegistry.algo.ts:1336","pc":[5420,5421,5422]},{"teal":5570,"source":"contracts/NFDRegistry.algo.ts:1339","pc":[5423,5424]},{"teal":5571,"source":"contracts/NFDRegistry.algo.ts:1339","pc":[5425,5426]},{"teal":5572,"source":"contracts/NFDRegistry.algo.ts:1339","pc":[5427]},{"teal":5573,"source":"contracts/NFDRegistry.algo.ts:1339","pc":[5428,5429]},{"teal":5577,"source":"contracts/NFDRegistry.algo.ts:1340","pc":[5430,5431]},{"teal":5578,"source":"contracts/NFDRegistry.algo.ts:1340","pc":[5432,5433]},{"teal":5579,"source":"contracts/NFDRegistry.algo.ts:1340","pc":[5434]},{"teal":5580,"source":"contracts/NFDRegistry.algo.ts:1340","pc":[5435,5436]},{"teal":5584,"source":"contracts/NFDRegistry.algo.ts:1341","pc":[5437,5438]},{"teal":5585,"source":"contracts/NFDRegistry.algo.ts:1341","pc":[5439,5440]},{"teal":5586,"source":"contracts/NFDRegistry.algo.ts:1341","pc":[5441]},{"teal":5587,"source":"contracts/NFDRegistry.algo.ts:1341","pc":[5442,5443]},{"teal":5591,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5444,5445]},{"teal":5592,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5446,5447]},{"teal":5593,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5448]},{"teal":5594,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5449,5450]},{"teal":5595,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5451]},{"teal":5596,"source":"contracts/NFDRegistry.algo.ts:1342","pc":[5452,5453]},{"teal":5600,"source":"contracts/NFDRegistry.algo.ts:1343","pc":[5454,5455]},{"teal":5601,"source":"contracts/NFDRegistry.algo.ts:1343","pc":[5456,5457]},{"teal":5602,"source":"contracts/NFDRegistry.algo.ts:1343","pc":[5458]},{"teal":5603,"source":"contracts/NFDRegistry.algo.ts:1343","pc":[5459,5460]},{"teal":5608,"source":"contracts/NFDRegistry.algo.ts:1345","pc":[5461,5462]},{"teal":5609,"source":"contracts/NFDRegistry.algo.ts:1345","pc":[5463,5464]},{"teal":5610,"source":"contracts/NFDRegistry.algo.ts:1345","pc":[5465]},{"teal":5611,"source":"contracts/NFDRegistry.algo.ts:1345","pc":[5466,5467,5468]},{"teal":5616,"source":"contracts/NFDRegistry.algo.ts:1346","pc":[5469,5470]},{"teal":5617,"source":"contracts/NFDRegistry.algo.ts:1346","pc":[5471,5472]},{"teal":5628,"source":"contracts/NFDRegistry.algo.ts:1351","pc":[5473,5474]},{"teal":5629,"source":"contracts/NFDRegistry.algo.ts:1351","pc":[5475,5476,5477,5478]},{"teal":5630,"source":"contracts/NFDRegistry.algo.ts:1351","pc":[5479]},{"teal":5633,"source":"contracts/NFDRegistry.algo.ts:1351","errorMessage":"price always needs to be at least 1 algo","pc":[5480]},{"teal":5643,"source":"contracts/NFDRegistry.algo.ts:1353","pc":[5481,5482]},{"teal":5644,"source":"contracts/NFDRegistry.algo.ts:1353","pc":[5483]},{"teal":5645,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5484,5485]},{"teal":5646,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5486]},{"teal":5647,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5487]},{"teal":5648,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5488,5489,5490]},{"teal":5649,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5491,5492]},{"teal":5650,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5493,5494,5495]},{"teal":5651,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5496,5497,5498]},{"teal":5654,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5499]},{"teal":5657,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5500]},{"teal":5658,"source":"contracts/NFDRegistry.algo.ts:1354","pc":[5501]},{"teal":5659,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5502,5503]},{"teal":5660,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5504]},{"teal":5661,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5505,5506]},{"teal":5662,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5507]},{"teal":5663,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5508]},{"teal":5664,"source":"contracts/NFDRegistry.algo.ts:1355","pc":[5509]},{"teal":5665,"source":"contracts/NFDRegistry.algo.ts:1357","pc":[5510]},{"teal":5666,"source":"contracts/NFDRegistry.algo.ts:1357","pc":[5511,5512]},{"teal":5667,"source":"contracts/NFDRegistry.algo.ts:1357","pc":[5513]},{"teal":5668,"source":"contracts/NFDRegistry.algo.ts:1356","pc":[5514,5515]},{"teal":5669,"source":"contracts/NFDRegistry.algo.ts:1356","pc":[5516,5517]},{"teal":5670,"source":"contracts/NFDRegistry.algo.ts:1356","pc":[5518]},{"teal":5671,"source":"contracts/NFDRegistry.algo.ts:1352","pc":[5519]},{"teal":5674,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5520,5521]},{"teal":5677,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5522,5523]},{"teal":5678,"source":"contracts/NFDRegistry.algo.ts:1266","pc":[5524]},{"teal":5683,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5525]},{"teal":5686,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5526,5527,5528]},{"teal":5687,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5529]},{"teal":5690,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5530,5531,5532]},{"teal":5691,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5533]},{"teal":5694,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5534,5535,5536]},{"teal":5695,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5537]},{"teal":5696,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5538]},{"teal":5697,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5539]},{"teal":5698,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5540]},{"teal":5699,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5541]},{"teal":5710,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5542,5543,5544]},{"teal":5713,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5545]},{"teal":5714,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5546,5547]},{"teal":5719,"source":"contracts/NFDRegistry.algo.ts:1372","pc":[5548,5549]},{"teal":5720,"source":"contracts/NFDRegistry.algo.ts:1372","pc":[5550,5551]},{"teal":5721,"source":"contracts/NFDRegistry.algo.ts:1372","pc":[5552]},{"teal":5722,"source":"contracts/NFDRegistry.algo.ts:1372","pc":[5553,5554,5555]},{"teal":5727,"source":"contracts/NFDRegistry.algo.ts:1374","pc":[5556,5557]},{"teal":5728,"source":"contracts/NFDRegistry.algo.ts:1374","pc":[5558,5559,5560]},{"teal":5733,"source":"contracts/NFDRegistry.algo.ts:1376","pc":[5561,5562]},{"teal":5734,"source":"contracts/NFDRegistry.algo.ts:1376","pc":[5563,5564]},{"teal":5735,"source":"contracts/NFDRegistry.algo.ts:1376","pc":[5565]},{"teal":5736,"source":"contracts/NFDRegistry.algo.ts:1376","pc":[5566,5567]},{"teal":5740,"source":"contracts/NFDRegistry.algo.ts:1379","pc":[5568,5569]},{"teal":5741,"source":"contracts/NFDRegistry.algo.ts:1379","pc":[5570,5571,5572,5573,5574]},{"teal":5742,"source":"contracts/NFDRegistry.algo.ts:1379","pc":[5575]},{"teal":5743,"source":"contracts/NFDRegistry.algo.ts:1379","pc":[5576,5577]},{"teal":5748,"source":"contracts/NFDRegistry.algo.ts:1380","pc":[5578,5579]},{"teal":5749,"source":"contracts/NFDRegistry.algo.ts:1380","pc":[5580]},{"teal":5750,"source":"contracts/NFDRegistry.algo.ts:1380","pc":[5581]},{"teal":5751,"source":"contracts/NFDRegistry.algo.ts:1380","pc":[5582,5583,5584]},{"teal":5756,"source":"contracts/NFDRegistry.algo.ts:1381","pc":[5585,5586]},{"teal":5757,"source":"contracts/NFDRegistry.algo.ts:1381","pc":[5587,5588,5589]},{"teal":5762,"source":"contracts/NFDRegistry.algo.ts:1387","pc":[5590,5591]},{"teal":5763,"source":"contracts/NFDRegistry.algo.ts:1387","pc":[5592,5593]},{"teal":5764,"source":"contracts/NFDRegistry.algo.ts:1387","pc":[5594]},{"teal":5765,"source":"contracts/NFDRegistry.algo.ts:1387","pc":[5595,5596]},{"teal":5766,"source":"contracts/NFDRegistry.algo.ts:1387","pc":[5597,5598]},{"teal":5770,"source":"contracts/NFDRegistry.algo.ts:1388","pc":[5599,5600]},{"teal":5771,"source":"contracts/NFDRegistry.algo.ts:1388","pc":[5601,5602]},{"teal":5772,"source":"contracts/NFDRegistry.algo.ts:1388","pc":[5603]},{"teal":5773,"source":"contracts/NFDRegistry.algo.ts:1388","pc":[5604,5605]},{"teal":5774,"source":"contracts/NFDRegistry.algo.ts:1388","pc":[5606]},{"teal":5778,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5607,5608]},{"teal":5781,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5609,5610]},{"teal":5782,"source":"contracts/NFDRegistry.algo.ts:1369","pc":[5611]},{"teal":5786,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5612,5613,5614]},{"teal":5789,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5615]},{"teal":5790,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5616]},{"teal":5794,"source":"contracts/NFDRegistry.algo.ts:1392","pc":[5617,5618]},{"teal":5795,"source":"contracts/NFDRegistry.algo.ts:1392","pc":[5619,5620]},{"teal":5796,"source":"contracts/NFDRegistry.algo.ts:1392","pc":[5621]},{"teal":5797,"source":"contracts/NFDRegistry.algo.ts:1392","pc":[5622,5623]},{"teal":5798,"source":"contracts/NFDRegistry.algo.ts:1392","pc":[5624,5625]},{"teal":5802,"source":"contracts/NFDRegistry.algo.ts:1393","pc":[5626,5627]},{"teal":5805,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5628,5629]},{"teal":5808,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5630,5631]},{"teal":5809,"source":"contracts/NFDRegistry.algo.ts:1391","pc":[5632]},{"teal":5813,"source":"contracts/NFDRegistry.algo.ts:1396","pc":[5633,5634,5635]},{"teal":5816,"source":"contracts/NFDRegistry.algo.ts:1396","pc":[5636]},{"teal":5820,"source":"contracts/NFDRegistry.algo.ts:1405","pc":[5637,5638]},{"teal":5821,"source":"contracts/NFDRegistry.algo.ts:1405","pc":[5639,5640]},{"teal":5825,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5641,5642]},{"teal":5826,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5643,5644]},{"teal":5827,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5645,5646]},{"teal":5828,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5647]},{"teal":5829,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5648]},{"teal":5830,"source":"contracts/NFDRegistry.algo.ts:1406","pc":[5649,5650]},{"teal":5834,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5651,5652]},{"teal":5835,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5653,5654]},{"teal":5836,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5655,5656]},{"teal":5837,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5657]},{"teal":5838,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5658]},{"teal":5839,"source":"contracts/NFDRegistry.algo.ts:1407","pc":[5659,5660]},{"teal":5843,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5661,5662]},{"teal":5844,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5663,5664]},{"teal":5845,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5665,5666]},{"teal":5846,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5667]},{"teal":5847,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5668]},{"teal":5848,"source":"contracts/NFDRegistry.algo.ts:1408","pc":[5669,5670]},{"teal":5852,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5671,5672]},{"teal":5853,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5673,5674]},{"teal":5854,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5675,5676]},{"teal":5855,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5677]},{"teal":5856,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5678]},{"teal":5857,"source":"contracts/NFDRegistry.algo.ts:1409","pc":[5679,5680]},{"teal":5861,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5681,5682]},{"teal":5862,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5683,5684]},{"teal":5863,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5685,5686]},{"teal":5864,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5687]},{"teal":5865,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5688]},{"teal":5866,"source":"contracts/NFDRegistry.algo.ts:1410","pc":[5689,5690]},{"teal":5870,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5691,5692]},{"teal":5871,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5693,5694]},{"teal":5872,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5695,5696]},{"teal":5873,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5697]},{"teal":5874,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5698]},{"teal":5875,"source":"contracts/NFDRegistry.algo.ts:1411","pc":[5699,5700]},{"teal":5879,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5701,5702]},{"teal":5880,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5703,5704]},{"teal":5881,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5705,5706]},{"teal":5882,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5707]},{"teal":5883,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5708]},{"teal":5884,"source":"contracts/NFDRegistry.algo.ts:1412","pc":[5709,5710]},{"teal":5888,"source":"contracts/NFDRegistry.algo.ts:1413","pc":[5711,5712]},{"teal":5891,"source":"contracts/NFDRegistry.algo.ts:1396","pc":[5713,5714]},{"teal":5892,"source":"contracts/NFDRegistry.algo.ts:1396","pc":[5715]},{"teal":5896,"source":"contracts/NFDRegistry.algo.ts:1416","pc":[5716,5717,5718]},{"teal":5900,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5719,5720,5721]},{"teal":5901,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5722,5723]},{"teal":5902,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5724]},{"teal":5903,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5725,5726]},{"teal":5904,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5727,5728,5729]},{"teal":5905,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5730]},{"teal":5906,"source":"contracts/NFDRegistry.algo.ts:1417","pc":[5731]},{"teal":5907,"source":"contracts/NFDRegistry.algo.ts:1416","pc":[5732]},{"teal":5911,"source":"contracts/NFDRegistry.algo.ts:1421","pc":[5733,5734,5735]},{"teal":5916,"source":"contracts/NFDRegistry.algo.ts:1422","pc":[5736,5737]},{"teal":5917,"source":"contracts/NFDRegistry.algo.ts:1422","pc":[5738]},{"teal":5918,"source":"contracts/NFDRegistry.algo.ts:1422","pc":[5739,5740]},{"teal":5919,"source":"contracts/NFDRegistry.algo.ts:1422","pc":[5741]},{"teal":5920,"source":"contracts/NFDRegistry.algo.ts:1422","pc":[5742,5743,5744]},{"teal":5925,"source":"contracts/NFDRegistry.algo.ts:1423","pc":[5745,5746]},{"teal":5926,"source":"contracts/NFDRegistry.algo.ts:1423","pc":[5747]},{"teal":5931,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5748,5749]},{"teal":5932,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5750]},{"teal":5933,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5751,5752]},{"teal":5934,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5753,5754]},{"teal":5935,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5755]},{"teal":5936,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5756]},{"teal":5937,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5757]},{"teal":5938,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5758,5759]},{"teal":5939,"source":"contracts/NFDRegistry.algo.ts:1426","pc":[5760]},{"teal":5940,"source":"contracts/NFDRegistry.algo.ts:1421","pc":[5761]},{"teal":5944,"source":"contracts/NFDRegistry.algo.ts:1429","pc":[5762,5763,5764]},{"teal":5947,"source":"contracts/NFDRegistry.algo.ts:1429","pc":[5765]},{"teal":5951,"source":"contracts/NFDRegistry.algo.ts:1430","pc":[5766,5767]},{"teal":5952,"source":"contracts/NFDRegistry.algo.ts:1430","pc":[5768,5769]},{"teal":5957,"source":"contracts/NFDRegistry.algo.ts:1431","pc":[5770,5771]},{"teal":5958,"source":"contracts/NFDRegistry.algo.ts:1431","pc":[5772,5773]},{"teal":5959,"source":"contracts/NFDRegistry.algo.ts:1431","pc":[5774]},{"teal":5960,"source":"contracts/NFDRegistry.algo.ts:1431","pc":[5775,5776,5777]},{"teal":5965,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5778,5779]},{"teal":5966,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5780,5781]},{"teal":5967,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5782]},{"teal":5968,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5783,5784]},{"teal":5969,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5785]},{"teal":5970,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5786]},{"teal":5971,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5787,5788,5789]},{"teal":5972,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5790,5791]},{"teal":5973,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5792,5793]},{"teal":5974,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5794]},{"teal":5975,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5795,5796,5797]},{"teal":5976,"source":"contracts/NFDRegistry.algo.ts:1432","pc":[5798,5799]},{"teal":5977,"source":"contracts/NFDRegistry.algo.ts:1431","pc":[5800,5801,5802]},{"teal":5982,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5803,5804]},{"teal":5983,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5805,5806]},{"teal":5984,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5807]},{"teal":5985,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5808]},{"teal":5986,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5809,5810,5811]},{"teal":5987,"source":"contracts/NFDRegistry.algo.ts:1433","pc":[5812,5813]},{"teal":5992,"source":"contracts/NFDRegistry.algo.ts:1435","pc":[5814,5815]},{"teal":5993,"source":"contracts/NFDRegistry.algo.ts:1435","pc":[5816,5817]},{"teal":5994,"source":"contracts/NFDRegistry.algo.ts:1435","pc":[5818]},{"teal":5997,"source":"contracts/NFDRegistry.algo.ts:1429","pc":[5819,5820]},{"teal":5998,"source":"contracts/NFDRegistry.algo.ts:1429","pc":[5821]},{"teal":6002,"source":"contracts/NFDRegistry.algo.ts:1438","pc":[5822,5823,5824]},{"teal":6006,"source":"contracts/NFDRegistry.algo.ts:1439","pc":[5825]},{"teal":6007,"source":"contracts/NFDRegistry.algo.ts:1439","pc":[5826,5827]},{"teal":6008,"source":"contracts/NFDRegistry.algo.ts:1439","pc":[5828,5829,5830]},{"teal":6009,"source":"contracts/NFDRegistry.algo.ts:1438","pc":[5831]},{"teal":6013,"source":"contracts/NFDRegistry.algo.ts:1442","pc":[5832,5833,5834]},{"teal":6016,"source":"contracts/NFDRegistry.algo.ts:1442","pc":[5835]},{"teal":6024,"source":"contracts/NFDRegistry.algo.ts:1446","pc":[5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884]},{"teal":6025,"source":"contracts/NFDRegistry.algo.ts:1443","pc":[5885,5886]},{"teal":6029,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5887,5888]},{"teal":6030,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5889]},{"teal":6031,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5890,5891,5892]},{"teal":6032,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5893]},{"teal":6033,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5894]},{"teal":6034,"source":"contracts/NFDRegistry.algo.ts:1448","pc":[5895,5896]},{"teal":6038,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5897,5898]},{"teal":6039,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5899,5900]},{"teal":6040,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5901]},{"teal":6041,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5902,5903,5904]},{"teal":6042,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5905]},{"teal":6043,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5906,5907]},{"teal":6044,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5908]},{"teal":6045,"source":"contracts/NFDRegistry.algo.ts:1449","pc":[5909,5910]},{"teal":6049,"source":"contracts/NFDRegistry.algo.ts:1450","pc":[5911,5912,5913,5914,5915,5916,5917,5918,5919]},{"teal":6050,"source":"contracts/NFDRegistry.algo.ts:1450","pc":[5920,5921]},{"teal":6051,"source":"contracts/NFDRegistry.algo.ts:1450","pc":[5922]},{"teal":6052,"source":"contracts/NFDRegistry.algo.ts:1450","pc":[5923]},{"teal":6055,"source":"contracts/NFDRegistry.algo.ts:1442","pc":[5924,5925]},{"teal":6056,"source":"contracts/NFDRegistry.algo.ts:1442","pc":[5926]},{"teal":6060,"source":"contracts/NFDRegistry.algo.ts:1453","pc":[5927,5928,5929]},{"teal":6063,"source":"contracts/NFDRegistry.algo.ts:1453","pc":[5930]},{"teal":6067,"source":"contracts/NFDRegistry.algo.ts:1454","pc":[5931,5932]},{"teal":6068,"source":"contracts/NFDRegistry.algo.ts:1454","pc":[5933,5934]},{"teal":6069,"source":"contracts/NFDRegistry.algo.ts:1454","pc":[5935]},{"teal":6070,"source":"contracts/NFDRegistry.algo.ts:1454","pc":[5936,5937,5938]},{"teal":6071,"source":"contracts/NFDRegistry.algo.ts:1454","pc":[5939,5940]},{"teal":6078,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5941,5942]},{"teal":6079,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5943,5944,5945]},{"teal":6080,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5946,5947]},{"teal":6081,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5948]},{"teal":6082,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5949]},{"teal":6083,"source":"contracts/NFDRegistry.algo.ts:1457","pc":[5950]},{"teal":6086,"source":"contracts/NFDRegistry.algo.ts:1456","errorMessage":"lsig has to have i.appid localstate","pc":[5951]},{"teal":6090,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5952,5953]},{"teal":6091,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5954,5955]},{"teal":6092,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5956]},{"teal":6093,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5957,5958]},{"teal":6094,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5959]},{"teal":6095,"source":"contracts/NFDRegistry.algo.ts:1460","pc":[5960]},{"teal":6098,"source":"contracts/NFDRegistry.algo.ts:1453","pc":[5961,5962]},{"teal":6099,"source":"contracts/NFDRegistry.algo.ts:1453","pc":[5963]},{"teal":6103,"source":"contracts/NFDRegistry.algo.ts:1463","pc":[5964,5965,5966]},{"teal":6107,"source":"contracts/NFDRegistry.algo.ts:1464","pc":[5967,5968]},{"teal":6108,"source":"contracts/NFDRegistry.algo.ts:1464","pc":[5969,5970]},{"teal":6109,"source":"contracts/NFDRegistry.algo.ts:1464","pc":[5971]},{"teal":6110,"source":"contracts/NFDRegistry.algo.ts:1464","pc":[5972]},{"teal":6111,"source":"contracts/NFDRegistry.algo.ts:1463","pc":[5973]},{"teal":6115,"source":"contracts/NFDRegistry.algo.ts:1467","pc":[5974,5975,5976]},{"teal":6119,"source":"contracts/NFDRegistry.algo.ts:1468","pc":[5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988]},{"teal":6120,"source":"contracts/NFDRegistry.algo.ts:1468","pc":[5989,5990]},{"teal":6121,"source":"contracts/NFDRegistry.algo.ts:1468","pc":[5991]},{"teal":6122,"source":"contracts/NFDRegistry.algo.ts:1468","pc":[5992]},{"teal":6123,"source":"contracts/NFDRegistry.algo.ts:1467","pc":[5993]},{"teal":6127,"source":"contracts/NFDRegistry.algo.ts:1473","pc":[5994,5995,5996]},{"teal":6131,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[5997,5998,5999]},{"teal":6132,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[6000,6001]},{"teal":6133,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[6002,6003]},{"teal":6134,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[6004]},{"teal":6135,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[6005]},{"teal":6136,"source":"contracts/NFDRegistry.algo.ts:1474","pc":[6006]},{"teal":6137,"source":"contracts/NFDRegistry.algo.ts:1473","pc":[6007]},{"teal":6141,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6008,6009,6010]},{"teal":6144,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6011]},{"teal":6145,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6012,6013]},{"teal":6149,"source":"contracts/NFDRegistry.algo.ts:1478","pc":[6014,6015]},{"teal":6150,"source":"contracts/NFDRegistry.algo.ts:1478","pc":[6016,6017,6018]},{"teal":6151,"source":"contracts/NFDRegistry.algo.ts:1478","pc":[6019,6020]},{"teal":6155,"source":"contracts/NFDRegistry.algo.ts:1479","pc":[6021,6022]},{"teal":6156,"source":"contracts/NFDRegistry.algo.ts:1479","pc":[6023]},{"teal":6159,"source":"contracts/NFDRegistry.algo.ts:1479","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[6024]},{"teal":6160,"source":"contracts/NFDRegistry.algo.ts:1479","pc":[6025,6026]},{"teal":6164,"source":"contracts/NFDRegistry.algo.ts:1480","pc":[6027,6028]},{"teal":6165,"source":"contracts/NFDRegistry.algo.ts:1480","pc":[6029]},{"teal":6168,"source":"contracts/NFDRegistry.algo.ts:1480","errorMessage":"box value does not exist: this.boxes(boxName).size","pc":[6030]},{"teal":6169,"source":"contracts/NFDRegistry.algo.ts:1480","pc":[6031,6032]},{"teal":6174,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6033,6034]},{"teal":6175,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6035]},{"teal":6176,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6036]},{"teal":6177,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6037]},{"teal":6178,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6038]},{"teal":6179,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6039,6040,6041]},{"teal":6184,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6042]},{"teal":6185,"source":"contracts/NFDRegistry.algo.ts:1483","pc":[6043,6044,6045]},{"teal":6191,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6046,6047]},{"teal":6192,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6048,6049]},{"teal":6193,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6050]},{"teal":6194,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6051,6052,6053]},{"teal":6199,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6054]},{"teal":6200,"source":"contracts/NFDRegistry.algo.ts:1485","pc":[6055,6056,6057]},{"teal":6206,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6058,6059]},{"teal":6207,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6060]},{"teal":6208,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6061,6062]},{"teal":6209,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6063]},{"teal":6210,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6064,6065,6066]},{"teal":6215,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6067]},{"teal":6216,"source":"contracts/NFDRegistry.algo.ts:1486","pc":[6068,6069,6070]},{"teal":6222,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6071,6072]},{"teal":6223,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6073,6074]},{"teal":6224,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6075]},{"teal":6227,"source":"contracts/NFDRegistry.algo.ts:1487","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)","pc":[6076]},{"teal":6228,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6077,6078]},{"teal":6229,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6079]},{"teal":6230,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6080,6081,6082]},{"teal":6235,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6083]},{"teal":6236,"source":"contracts/NFDRegistry.algo.ts:1487","pc":[6084,6085,6086]},{"teal":6241,"source":"contracts/NFDRegistry.algo.ts:1488","pc":[6087,6088]},{"teal":6242,"source":"contracts/NFDRegistry.algo.ts:1488","pc":[6089]},{"teal":6243,"source":"contracts/NFDRegistry.algo.ts:1488","pc":[6090]},{"teal":6244,"source":"contracts/NFDRegistry.algo.ts:1488","pc":[6091,6092]},{"teal":6245,"source":"contracts/NFDRegistry.algo.ts:1488","pc":[6093]},{"teal":6249,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6094,6095]},{"teal":6252,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6096,6097]},{"teal":6253,"source":"contracts/NFDRegistry.algo.ts:1477","pc":[6098]},{"teal":6266,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6099,6100,6101]},{"teal":6269,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6102]},{"teal":6270,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6103]},{"teal":6274,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6104,6105]},{"teal":6275,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6106,6107]},{"teal":6276,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6108]},{"teal":6277,"source":"contracts/config.algo.ts:5","pc":[6109,6110]},{"teal":6278,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6111]},{"teal":6279,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6112,6113]},{"teal":6280,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6114]},{"teal":6281,"source":"contracts/NFDRegistry.algo.ts:1502","pc":[6115,6116]},{"teal":6285,"source":"contracts/NFDRegistry.algo.ts:1503","pc":[6117,6118]},{"teal":6286,"source":"contracts/NFDRegistry.algo.ts:1503","pc":[6119,6120]},{"teal":6287,"source":"contracts/NFDRegistry.algo.ts:1503","pc":[6121]},{"teal":6288,"source":"contracts/NFDRegistry.algo.ts:1503","pc":[6122,6123]},{"teal":6295,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6124,6125]},{"teal":6296,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6126,6127]},{"teal":6297,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6128,6129]},{"teal":6298,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6130,6131]},{"teal":6299,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6132]},{"teal":6300,"source":"contracts/config.algo.ts:5","pc":[6133,6134]},{"teal":6301,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6135]},{"teal":6302,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6136]},{"teal":6303,"source":"contracts/NFDRegistry.algo.ts:1506","pc":[6137]},{"teal":6306,"source":"contracts/NFDRegistry.algo.ts:1505","errorMessage":"max expiration exceeded parameters defined by registry","pc":[6138]},{"teal":6310,"source":"contracts/NFDRegistry.algo.ts:1509","pc":[6139,6140]},{"teal":6313,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6141,6142]},{"teal":6316,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6143,6144]},{"teal":6317,"source":"contracts/NFDRegistry.algo.ts:1501","pc":[6145]},{"teal":6321,"source":"contracts/NFDRegistry.algo.ts:1512","pc":[6146,6147,6148]},{"teal":6324,"source":"contracts/NFDRegistry.algo.ts:1512","pc":[6149]},{"teal":6328,"source":"contracts/NFDRegistry.algo.ts:1513","pc":[6150,6151]},{"teal":6329,"source":"contracts/NFDRegistry.algo.ts:1513","pc":[6152,6153]},{"teal":6330,"source":"contracts/NFDRegistry.algo.ts:1513","pc":[6154]},{"teal":6333,"source":"contracts/NFDRegistry.algo.ts:1513","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(NFD_KEY_VERSION)","pc":[6155]},{"teal":6334,"source":"contracts/NFDRegistry.algo.ts:1513","pc":[6156,6157,6158]},{"teal":6335,"source":"contracts/NFDRegistry.algo.ts:1513","pc":[6159,6160]},{"teal":6339,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6161,6162]},{"teal":6340,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6163,6164,6165,6166]},{"teal":6341,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6167]},{"teal":6342,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6168]},{"teal":6343,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6169,6170,6171]},{"teal":6344,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6172,6173]},{"teal":6345,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6174,6175,6176,6177]},{"teal":6346,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6178]},{"teal":6347,"source":"contracts/NFDRegistry.algo.ts:1514","pc":[6179]},{"teal":6351,"source":"contracts/NFDRegistry.algo.ts:1512","pc":[6180,6181]},{"teal":6352,"source":"contracts/NFDRegistry.algo.ts:1512","pc":[6182]},{"teal":6355,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6183]},{"teal":6356,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6184]},{"teal":6359,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6185,6186,6187,6188,6189,6190]},{"teal":6360,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6191,6192,6193]},{"teal":6361,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6194,6195,6196,6197]},{"teal":6364,"source":"contracts/NFDRegistry.algo.ts:51","errorMessage":"this contract does not implement the given ABI method for create NoOp","pc":[6198]},{"teal":6367,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6199,6200,6201,6202,6203,6204]},{"teal":6368,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6205,6206,6207,6208,6209,6210]},{"teal":6369,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6211,6212,6213,6214,6215,6216]},{"teal":6370,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6217,6218,6219,6220,6221,6222]},{"teal":6371,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6223,6224,6225,6226,6227,6228]},{"teal":6372,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6229,6230,6231,6232,6233,6234]},{"teal":6373,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6235,6236,6237,6238,6239,6240]},{"teal":6374,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6241,6242,6243,6244,6245,6246]},{"teal":6375,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6247,6248,6249,6250,6251,6252]},{"teal":6376,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6253,6254,6255,6256,6257,6258]},{"teal":6377,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6259,6260,6261,6262,6263,6264]},{"teal":6378,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6265,6266,6267,6268,6269,6270]},{"teal":6379,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6271,6272,6273,6274,6275,6276]},{"teal":6380,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6277,6278,6279,6280,6281,6282]},{"teal":6381,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6283,6284,6285,6286,6287,6288]},{"teal":6382,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6289,6290,6291,6292,6293,6294]},{"teal":6383,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6295,6296,6297,6298,6299,6300]},{"teal":6384,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6301,6302,6303,6304,6305,6306]},{"teal":6385,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6307,6308,6309,6310,6311,6312]},{"teal":6386,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6313,6314,6315,6316,6317,6318]},{"teal":6387,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6319,6320,6321,6322,6323,6324]},{"teal":6388,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6325,6326,6327]},{"teal":6389,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371]},{"teal":6392,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6372,6373,6374]},{"teal":6393,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6375]},{"teal":6394,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6376]},{"teal":6397,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6377,6378,6379,6380,6381,6382]},{"teal":6398,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6383,6384,6385]},{"teal":6399,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6386,6387,6388,6389]},{"teal":6402,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6390,6391,6392]},{"teal":6403,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6393]},{"teal":6404,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6394]},{"teal":6407,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6395,6396,6397]},{"teal":6408,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409]},{"teal":6409,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6410,6411]},{"teal":6410,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6412]},{"teal":6411,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6413]},{"teal":6412,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6414]},{"teal":6416,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6415,6416,6417]},{"teal":6417,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6418,6419]},{"teal":6418,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6420]},{"teal":6419,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6421]},{"teal":6420,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6422,6423,6424]},{"teal":6421,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6425,6426,6427]},{"teal":6422,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6428]},{"teal":6425,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6429,6430]},{"teal":6426,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6431,6432]},{"teal":6427,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6433]},{"teal":6428,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6434]},{"teal":6429,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6435]},{"teal":6430,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6436,6437,6438]},{"teal":6431,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6439,6440]},{"teal":6432,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6441,6442]},{"teal":6433,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6443]},{"teal":6434,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6444,6445,6446]},{"teal":6435,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6447,6448,6449]},{"teal":6438,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6450]},{"teal":6441,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6451,6452]},{"teal":6442,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6453,6454]},{"teal":6443,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6455]},{"teal":6444,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6456,6457,6458]},{"teal":6445,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6459]},{"teal":6446,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6460]},{"teal":6449,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6461,6462,6463]},{"teal":6450,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6464,6465]},{"teal":6451,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6466,6467]},{"teal":6452,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6468]},{"teal":6453,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6469,6470]},{"teal":6454,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6471,6472]},{"teal":6455,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6473]},{"teal":6458,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6474,6475,6476]},{"teal":6459,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6477,6478]},{"teal":6460,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6479,6480]},{"teal":6461,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6481]},{"teal":6462,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6482,6483]},{"teal":6463,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6484,6485]},{"teal":6464,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6486]},{"teal":6465,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6487]},{"teal":6466,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6488,6489]},{"teal":6467,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6490]},{"teal":6468,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6491]},{"teal":6469,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6492]},{"teal":6470,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6493,6494,6495]},{"teal":6471,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6496,6497]},{"teal":6472,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6498,6499]},{"teal":6473,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6500]},{"teal":6474,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6501]},{"teal":6475,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6502,6503]},{"teal":6476,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6504,6505]},{"teal":6477,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6506,6507]},{"teal":6478,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6508,6509]},{"teal":6479,"source":"contracts/NFDRegistry.algo.ts:51","pc":[6510]}],"pcOffsetMethod":"cblocks"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgOCA2IDMyIDIgNSAzIDQgNDA5NiAxNiAxMDAwMDAgMTAgVE1QTF9hbGdvVXNkT3JhY2xlQXBwSWQgODY0MDAgMzY1IDEwXzAwMCAzMCBUTVBMX2RldmVsb3BtZW50QWxsb3dTaG9ydE1pbnRzIDU2OTc1MDI4NDgwMCAyODUwMCA1MDAwMCAyNyA2MCAxMjggMjU1IFRNUExfbmZkQ29tbWlzc2lvbjFSYXRlIFRNUExfYWRtaW5Bc2FJZApieXRlY2Jsb2NrIDB4IDB4MTUxZjdjNzUgImkub3duZXIuYSIgMHgwYTgxMDEgMHgwMDAwMDAwMDAwMDAwMDAwICJjdXJyZW50IiAidi5jYUFsZ28uMC5hcyIgInUuY2F2LmFsZ28uYSIgImNvbnRyYWN0OkE6IiAiaS52ZXIiIFRNUExfbmZkVHJlYXN1cnlBZGRyICJpLmV4cGlyYXRpb25UaW1lIiAiY29udHJhY3Q6QzoiIDB4NmU2MTZkNjUyZiAiaS5hcHBpZCIgMHgwMCAiaS5zZWdtZW50TG9ja2VkIiAiLi4uYWxnbyIgImkuYXBwcyIgImkubmFtZSIgIjAiIFRNUExfbmZkQ29tbWlzc2lvbjFBZGRyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNi4xCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gISEhISBXQVJOSU5HOiBUaGlzIGNvbnRyYWN0IGlzICpOT1QqIEFSQzQgY29tcGxpYW50LiBJdCBtYXkgY29udGFpbiBBQkkgbWV0aG9kcywgYnV0IGl0IGFsc28gYWxsb3dzIGFwcCBjYWxscyB3aGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgZG9lcyBOT1QgbWF0Y2ggYW4gQUJJIHNlbGVjdG9yCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDMgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy5hcHAuY3JlYXRvcikKCXR4biBTZW5kZXIKCXR4bmEgQXBwbGljYXRpb25zIDAKCWFwcF9wYXJhbXNfZ2V0IEFwcENyZWF0b3IKCXBvcAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBvbkNhbGwoKTogdm9pZApvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NgoJLy8gdGhpcy50eG4ub25Db21wbGV0aW9uID09PSA0Cgl0eG4gT25Db21wbGV0aW9uCglpbnRjIDggLy8gNAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NwoJLy8gdGhpcy51cGRhdGVBcHBsaWNhdGlvbigpCgljYWxsc3ViIHVwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzgKCS8vIHJldHVybgoJcmV0c3ViCgoqaWYwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjgwCgkvLyBhc3NlcnQodGhpcy50eG4ucmVrZXlUbyA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCXR4biBSZWtleVRvCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODIKCS8vIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09ICdnYXMnCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAweDY3NjE3MyAvLyAiZ2FzIgoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4MwoJLy8gcmV0dXJuCglyZXRzdWIKCippZjFfZW5kOgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg2CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IFJFR0lTVFJZX0NBTExfSVNfVkFMSURfTkZEQVBQSUQKCXR4biBOdW1BcHBBcmdzCglpbnRjIDcgLy8gMwoJPT0KCWR1cAoJYnogKnNraXBfYW5kMAoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglwdXNoYnl0ZXMgImlzX3ZhbGlkX25mZF9hcHBpZCIKCT09CgkmJgoKKnNraXBfYW5kMDoKCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5MQoJLy8gbG9nKAoJLy8gICAgICAgICAgICAgICAgIGl0b2IoCgkvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWYWxpZE5mZEFwcElkKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMV0gYXMgYnl0ZXMsIGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsyXSkpCgkvLyAgICAgICAgICAgICAgICAgICAgICAgICA/IDEKCS8vICAgICAgICAgICAgICAgICAgICAgICAgIDogMCwKCS8vICAgICAgICAgICAgICAgICApLAoJLy8gICAgICAgICAgICAgKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWNhbGxzdWIgaXNWYWxpZE5mZEFwcElkCglieiAqdGVybmFyeTBfZmFsc2UKCWludGMgMSAvLyAxCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludGMgMCAvLyAwCgoqdGVybmFyeTBfZW5kOgoJaXRvYgoJbG9nCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTgKCS8vIHJldHVybgoJcmV0c3ViCgoqaWYyX2VuZDoKCS8vICppZjNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDUKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDQgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gUkVHSVNUUllfQ0FMTF9WRVJJRllfTkZEX0FERFJFU1MKCXR4biBOdW1BcHBBcmdzCglpbnRjIDggLy8gNAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMQoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglwdXNoYnl0ZXMgInZlcmlmeV9uZmRfYWRkciIKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTAKCS8vIHRoaXMubGlua05mZEFkZHJlc3MoCgkvLyAgICAgICAgICAgICAgICAgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcywKCS8vICAgICAgICAgICAgICAgICBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbM10pLAoJLy8gICAgICAgICAgICAgKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAzCgl0eG4gQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiBsaW5rTmZkQWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNQoJLy8gcmV0dXJuCglyZXRzdWIKCippZjNfZW5kOgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gNCAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBSRUdJU1RSWV9DQUxMX1VOTElOS19ORkRfQUREUkVTUwoJdHhuIE51bUFwcEFyZ3MKCWludGMgOCAvLyA0Cgk9PQoJZHVwCglieiAqc2tpcF9hbmQyCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidW5saW5rX25mZF9hZGRyIgoJPT0KCSYmCgoqc2tpcF9hbmQyOgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyMgoJLy8gdGhpcy51bmxpbmtOZmRBZGRyZXNzKAoJLy8gICAgICAgICAgICAgICAgIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMV0gYXMgYnl0ZXMsCgkvLyAgICAgICAgICAgICAgICAgYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzJdKSwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzNdKSwKCS8vICAgICAgICAgICAgICkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMwoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWNhbGxzdWIgdW5saW5rTmZkQWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyNwoJLy8gcmV0dXJuCglyZXRzdWIKCippZjRfZW5kOgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMAoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gNCAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBSRUdJU1RSWV9DQUxMX1NFVF9BRERSX1BSSU1BUllfTkZECgl0eG4gTnVtQXBwQXJncwoJaW50YyA4IC8vIDQKCT09CglkdXAKCWJ6ICpza2lwX2FuZDMKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJzZXRfYWRkcl9wcmltYXJ5X25mZCIKCT09CgkmJgoKKnNraXBfYW5kMzoKCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzUKCS8vIHRoaXMuc2V0QWRkcmVzc1ByaW1hcnlOZmQoCgkvLyAgICAgICAgICAgICAgICAgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcywKCS8vICAgICAgICAgICAgICAgICBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbM10pLAoJLy8gICAgICAgICAgICAgKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAzCgl0eG4gQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiBzZXRBZGRyZXNzUHJpbWFyeU5mZAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MAoJLy8gcmV0dXJuCglyZXRzdWIKCippZjVfZW5kOgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBSRUdJU1RSWV9DQUxMX0dFVF9OQU1FX0FQUElECgl0eG4gTnVtQXBwQXJncwoJaW50YyA1IC8vIDIKCT09CglkdXAKCWJ6ICpza2lwX2FuZDQKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJnZXRfbmFtZV9hcHBpZCIKCT09CgkmJgoKKnNraXBfYW5kNDoKCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDQKCS8vIHRoaXMuZ2V0Tm9uQWJpTmFtZUFwcElkKCkKCWNhbGxzdWIgZ2V0Tm9uQWJpTmFtZUFwcElkCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ1CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmNl9lbmQ6CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ3CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IFJFR0lTVFJZX0NBTExfR0VUX0FERFJFU1NfQVBQSURTCgl0eG4gTnVtQXBwQXJncwoJaW50YyA3IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDUKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJnZXRfYWRkcmVzc19hcHBpZHMiCgk9PQoJJiYKCipza2lwX2FuZDU6CglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ4CgkvLyB0aGlzLm5vbkFiaWdldEFkZHJlc3NBcHBJZHMoKQoJY2FsbHN1YiBub25BYmlnZXRBZGRyZXNzQXBwSWRzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ5CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmN19lbmQ6CgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTU0CgkvLyBnbG9iYWxzLmdyb3VwU2l6ZSA+PSAyCglnbG9iYWwgR3JvdXBTaXplCglpbnRjIDUgLy8gMgoJPj0KCWJ6ICppZjhfZW5kCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNTgKCS8vIHByaW9yVHJhbnNhY3Rpb24gPSB0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglmcmFtZV9idXJ5IDAgLy8gcHJpb3JUcmFuc2FjdGlvbjogdHhuCgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE2MAoJLy8gcHJpb3JUcmFuc2FjdGlvbi50eXBlRW51bSA9PT0gVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQgJiYKCS8vICAgICAgICAgICAgICAgICBwcmlvclRyYW5zYWN0aW9uLnJla2V5VG8gPT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYKCS8vICAgICAgICAgICAgICAgICBwcmlvclRyYW5zYWN0aW9uLmNsb3NlUmVtYWluZGVyVG8gPT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYKCS8vICAgICAgICAgICAgICAgICAocHJpb3JUcmFuc2FjdGlvbi5hbW91bnQgPj0gZ2xvYmFscy5taW5UeG5GZWUgfHwgcHJpb3JUcmFuc2FjdGlvbi5mZWUgPiBnbG9iYWxzLm1pblR4bkZlZSkgJiYKCS8vICAgICAgICAgICAgICAgICB0aGlzLmlzVHhuTGFiKHByaW9yVHJhbnNhY3Rpb24pCglmcmFtZV9kaWcgMCAvLyBwcmlvclRyYW5zYWN0aW9uOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCWR1cAoJYnogKnNraXBfYW5kNgoJZnJhbWVfZGlnIDAgLy8gcHJpb3JUcmFuc2FjdGlvbjogdHhuCglndHhucyBSZWtleVRvCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kNjoKCWR1cAoJYnogKnNraXBfYW5kNwoJZnJhbWVfZGlnIDAgLy8gcHJpb3JUcmFuc2FjdGlvbjogdHhuCglndHhucyBDbG9zZVJlbWFpbmRlclRvCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kNzoKCWR1cAoJYnogKnNraXBfYW5kOAoJZnJhbWVfZGlnIDAgLy8gcHJpb3JUcmFuc2FjdGlvbjogdHhuCglndHhucyBBbW91bnQKCWdsb2JhbCBNaW5UeG5GZWUKCT49CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAwIC8vIHByaW9yVHJhbnNhY3Rpb246IHR4bgoJZ3R4bnMgRmVlCglnbG9iYWwgTWluVHhuRmVlCgk+Cgl8fAoKKnNraXBfb3IwOgoJJiYKCipza2lwX2FuZDg6CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAwIC8vIHByaW9yVHJhbnNhY3Rpb246IHR4bgoJY2FsbHN1YiBpc1R4bkxhYgoJJiYKCipza2lwX2FuZDk6CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNjgKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDIgJiYKCS8vICAgICAgICAgICAgICAgICAgICAgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gUkVHSVNUUllfQ0FMTF9SRU1PVkVfQUREUkVTUyAmJgoJLy8gICAgICAgICAgICAgICAgICAgICAvLyBWZXJpZnkgVHhuTGFiIEZ1bmRlZCBhY2N0IGluIHByaW9yIGNoZWNrcyBhbmQgVEhBVCB3YXMgdGhlbiBvdXIgY2FsbGVyCgkvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdLnJlY2VpdmVyID09PSB0aGlzLnR4bi5zZW5kZXIKCXR4biBOdW1BcHBBcmdzCglpbnRjIDUgLy8gMgoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTAKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJyZW1vdmVfYWRkciIKCT09CgkmJgoKKnNraXBfYW5kMTA6CglkdXAKCWJ6ICpza2lwX2FuZDExCgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWd0eG5zIFJlY2VpdmVyCgl0eG4gU2VuZGVyCgk9PQoJJiYKCipza2lwX2FuZDExOgoJYnogKmlmMTBfZWxzZQoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE3MwoJLy8gdGhpcy5yZW1vdmVJbnRGcm9tVjFNdWx0aXNldCgKCS8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgICAgICAgICAgICAgICAgICAgIFJFR0lTVFJZX0tFWV9BUFBJRFNFVFBSRUZJWCwKCS8vICAgICAgICAgICAgICAgICAgICAgICAgIDE2LAoJLy8gICAgICAgICAgICAgICAgICAgICAgICAgYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdKSwKCS8vICAgICAgICAgICAgICAgICAgICAgKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCglpbnRjIDEwIC8vIDE2CglieXRlYyAxOCAvLyAiaS5hcHBzIgoJdHhuIFNlbmRlcgoJY2FsbHN1YiByZW1vdmVJbnRGcm9tVjFNdWx0aXNldAoJYiAqaWYxMF9lbmQKCippZjEwX2Vsc2U6CgkvLyBpbnZhbGlkCgllcnIKCippZjEwX2VuZDoKCippZjlfZW5kOgoKKmlmOF9lbmQ6CgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE4NQoJLy8gdGhpcy5pc1R4bkxhYih0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXhdKQoJdHhuIEdyb3VwSW5kZXgKCWNhbGxzdWIgaXNUeG5MYWIKCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTg2CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IFJFR0lTVFJZX0NBTExfTUlHUkFURV9OQU1FCgl0eG4gTnVtQXBwQXJncwoJaW50YyA3IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDEyCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAibWlncmF0ZV9uYW1lIgoJPT0KCSYmCgoqc2tpcF9hbmQxMjoKCWJ6ICppZjEyX2VuZAoKCS8vICppZjEyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE4NwoJLy8gdGhpcy5taWdyYXRlVjFOYW1lKCkKCWNhbGxzdWIgbWlncmF0ZVYxTmFtZQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE4OAoJLy8gcmV0dXJuCglyZXRzdWIKCippZjEyX2VuZDoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTkwCgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IFJFR0lTVFJZX0NBTExfTUlHUkFURV9BRERSRVNTCgl0eG4gTnVtQXBwQXJncwoJaW50YyA3IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDEzCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAibWlncmF0ZV9hZGRyZXNzIgoJPT0KCSYmCgoqc2tpcF9hbmQxMzoKCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE5MQoJLy8gdGhpcy5taWdyYXRlVjFBZGRyZXNzS2V5cyh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdIGFzIGJ5dGVzLCB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzJdIGFzIGJ5dGVzKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWNhbGxzdWIgbWlncmF0ZVYxQWRkcmVzc0tleXMKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxOTIKCS8vIHJldHVybgoJcmV0c3ViCgoqaWYxM19lbmQ6CgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE5NAoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBSRUdJU1RSWV9DQUxMX1NXRUVQX0RVU1QKCXR4biBOdW1BcHBBcmdzCglpbnRjIDUgLy8gMgoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTQKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJzd2VlcF9kdXN0IgoJPT0KCSYmCgoqc2tpcF9hbmQxNDoKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE5NQoJLy8gdGhpcy5zd2VlcER1c3QoKQoJY2FsbHN1YiBzd2VlcER1c3QKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxOTYKCS8vIHJldHVybgoJcmV0c3ViCgoqaWYxNF9lbmQ6CgkvLyBpbnZhbGlkIG1ldGhvZAoJZXJyCgoqaWYxMV9lbmQ6CgkvLyB1bmtub3duIG1ldGhvZAoJZXJyCglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGdldFByaWNlKHN0cmluZyxhZGRyZXNzKSh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKQoqYWJpX3JvdXRlX2dldFByaWNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxIC8vIDB4MTUxZjdjNzUKCgkvLyBjYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoY2FsbGVyKSBmb3IgZ2V0UHJpY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGdldFByaWNlKHN0cmluZyxhZGRyZXNzKSh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKQoJY2FsbHN1YiBnZXRQcmljZQoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFByaWNlKG5mZE5hbWU6IHN0cmluZywgY2FsbGVyOiBBZGRyZXNzKTogUHJpY2VJbmZvCi8vCi8vIFJldHVybnMgdGhlIHByaWNlIGZvciBhIGdpdmVuIE5GRCAoc2luZ2xlIHllYXIpLCB0aGUgbWF4ICMgb2YgeWVhcnMgYWxsb3dlZCAoTmFtZSBmb3IgRGlzcGxheSksCi8vIGFuZCBleHRyYSBhbGdvIHJlcXVpcmVkIHRvIGNvdmVyIE1CUiB3aGVuIHB1cmNoYXNpbmcuCi8vCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIC0gVGhlIE5GRCBuYW1lIGZvciB3aGljaCB0byByZXRyaWV2ZSB0aGUgcHJpY2UuCi8vIEBwYXJhbSB7QWRkcmVzc30gY2FsbGVyIC0gdGhlIGFkZHJlc3MgdGhpcyByZXF1ZXN0IGlzIG9uIGJlaGFsZiBvZiAoc2luY2UgYW4gbmZkIGNvbnRyYWN0IG1pZ2h0IGNhbGwgdXMgaXQKLy8gbmVlZHMgdG8gYmUgYWJsZSB0byBwYXNzIG9uIHRoZSByZXF1ZXN0IG9uIGJlaGFsZiBvZiBJVFMgY2FsbGVyIC0gaWU6IGdldHRpbmcgcHJpY2UgZm9yIGFuIGV4cGlyZWQgbmZkIHdpbGwgYmUKLy8gZGlmZmVyZW50IGlmIGl0cyBvd25lciBpciBhc2tpbmcuCi8vIEByZXR1cm4ge1ByaWNlSW5mb30gVHlwZSBjb250YWluaW5nIHRoZSBwcmljZSwgY2FycnkgY29zdCwgZXRjLgpnZXRQcmljZToKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjIxNwoJLy8gcmV0dXJuIHRoaXMuZ2V0UHJpY2VGb3JOYW1lKG5mZE5hbWUsIHRoaXMubnVtTGV0dGVyc0luTmZkKG5mZE5hbWUpLCBjYWxsZXIpCglmcmFtZV9kaWcgLTIgLy8gY2FsbGVyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIG51bUxldHRlcnNJbk5mZAoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXRQcmljZUZvck5hbWUKCXJldHN1YgoKLy8gZ2V0Q29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldENvbnN0cmFpbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldENvbnN0cmFpbnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0Q29uc3RyYWludHMKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRDb25zdHJhaW50cygpOiBDb25zdHJhaW50cwpnZXRDb25zdHJhaW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyMjEKCS8vIHBsYXRmb3JtUHJpY2UgPSB0aGlzLmNhbGNGdXR1cmVQcmljZShORkRfTUlOX1NFR01FTlRfVVNELCBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCXB1c2hpbnQgNTAwCgljYWxsc3ViIGNhbGNGdXR1cmVQcmljZQoJZnJhbWVfYnVyeSAwIC8vIHBsYXRmb3JtUHJpY2U6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjIyMgoJLy8gZHVyYXRpb24gPSB0aGlzLmRldmVsb3BtZW50QWxsb3dTaG9ydE1pbnRzID09PSAxID8gTkZEX0FVQ1RJT05fREVWX0RVUkFUSU9OIDogTkZEX0FVQ1RJT05fRFVSQVRJT04KCWludGMgMTggLy8gVE1QTF9kZXZlbG9wbWVudEFsbG93U2hvcnRNaW50cwoJaW50YyAxIC8vIDEKCT09CglieiAqdGVybmFyeTFfZmFsc2UKCWludGMgMSAvLyAxCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCXB1c2hpbnQgMjgKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDEgLy8gZHVyYXRpb246IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjIyMwoJLy8gcmV0dXJuIHsKCS8vICAgICAgICAgICAgIHNlZ21lbnRQbGF0Zm9ybUNvc3RJblVzZDogcGxhdGZvcm1QcmljZSwKCS8vICAgICAgICAgICAgIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHRoaXMudXNkSW5NaWNyb0FsZ28ocGxhdGZvcm1QcmljZSksCgkvLyAgICAgICAgICAgICBtYXhZZWFyc0FsbG93ZWQ6IE5GRF9NQVhfRVhQSVJBVElPTl9ZRUFSUywKCS8vICAgICAgICAgICAgIHRyZWFzdXJ5QWRkcmVzczogdGhpcy5uZmRUcmVhc3VyeUFkZHIsCgkvLyAgICAgICAgICAgICBleHBpcmVkQXVjdGlvbkR1cmF0aW9uOiBkdXJhdGlvbiwKCS8vICAgICAgICAgICAgIGV4cGlyZWRTdGFydGluZ1ByaWNlOiBORkRfQVVDVElPTl9TVEFSVFBSSUNFLAoJLy8gICAgICAgICAgICAgbWF4TWludENhcnJ5Q29zdDogdGhpcy5nZXROZmRNYnJDb3N0KCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLmFsZ28nKSwgLy8gbWF4IGxlbmd0aCBuZmQKCS8vICAgICAgICAgfQoJZnJhbWVfZGlnIDAgLy8gcGxhdGZvcm1QcmljZTogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMCAvLyBwbGF0Zm9ybVByaWNlOiB1aW50NjQKCWNhbGxzdWIgdXNkSW5NaWNyb0FsZ28KCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAxNAoJY29uY2F0CglieXRlYyAxMCAvLyBUTVBMX25mZFRyZWFzdXJ5QWRkcgoJY29uY2F0CglmcmFtZV9kaWcgMSAvLyBkdXJhdGlvbjogdWludDY0CglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDA5ODk2ODAKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMmUzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAyZTYxNmM2NzZmIC8vICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLmFsZ28iCgljYWxsc3ViIGdldE5mZE1ickNvc3QKCWl0b2IKCWNvbmNhdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZ2V0TmZkTWJyQ29zdChzdHJpbmcpdWludDY0CiphYmlfcm91dGVfZ2V0TmZkTWJyQ29zdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMSAvLyAweDE1MWY3Yzc1CgoJLy8gbmZkTmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZ2V0TmZkTWJyQ29zdChzdHJpbmcpdWludDY0CgljYWxsc3ViIGdldE5mZE1ickNvc3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXROZmRNYnJDb3N0KG5mZE5hbWU6IHN0cmluZyk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBNQlIgYW1vdW50cyBuZWVkZWQgdG8gTUlOVCBhbiBuZmQuCi8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgYWRkZWQgdG8gcHVyY2hhc2UgcHJpY2UgaW4gbWludE5mZCBjYWxsLgovLyBnZXRQcmljZSgpIHJldHVybnMgaXQgdGhvdWdoLgpnZXROZmRNYnJDb3N0OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI0NAoJLy8gcmVnaXN0cnlDYXJyeUNvc3QgPQoJLy8gICAgICAgICAgICAgdGhpcy5taW5CYWxhbmNlRm9yQWNjb3VudCgxLCBudW1FeHRyYVBhZ2VzLCAwLCAwLCAwLCAwLCBudW1HbG9iYWxCeXRlcykgLSBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFCglpbnRjIDE3IC8vIDMwCglpbnRjIDAgLy8gMAoJZHVwbiAzCglpbnRjIDcgLy8gMwoJaW50YyAxIC8vIDEKCWNhbGxzdWIgbWluQmFsYW5jZUZvckFjY291bnQKCWludGMgMTEgLy8gMTAwMDAwCgktCglmcmFtZV9idXJ5IDAgLy8gcmVnaXN0cnlDYXJyeUNvc3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI1MQoJLy8gYm94U3RvcmFnZUNvc3QgPSB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDIsIDMyICsgMTYgKyAzMyArIDggKyBuZmROYW1lLmxlbmd0aCkKCXB1c2hpbnQgODkKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWxlbgoJKwoJaW50YyA1IC8vIDIKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWZyYW1lX2J1cnkgMSAvLyBib3hTdG9yYWdlQ29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MjUyCgkvLyByZXR1cm4gcmVnaXN0cnlDYXJyeUNvc3QgKyBib3hTdG9yYWdlQ29zdCArIHRoaXMuZ2V0TmZkSW5zdGFuY2VNYnIoKQoJZnJhbWVfZGlnIDAgLy8gcmVnaXN0cnlDYXJyeUNvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gYm94U3RvcmFnZUNvc3Q6IHVpbnQ2NAoJKwoJY2FsbHN1YiBnZXROZmRJbnN0YW5jZU1icgoJKwoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZ2V0TmZkTGlua09uTWludEV4dHJhTWJyQ29zdChhZGRyZXNzKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldE5mZExpbmtPbk1pbnRFeHRyYU1ickNvc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDEgLy8gMHgxNTFmN2M3NQoKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYWRkcmVzcykgZm9yIGdldE5mZExpbmtPbk1pbnRFeHRyYU1ickNvc3QgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0TmZkTGlua09uTWludEV4dHJhTWJyQ29zdChhZGRyZXNzKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXROZmRMaW5rT25NaW50RXh0cmFNYnJDb3N0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TmZkTGlua09uTWludEV4dHJhTWJyQ29zdChhZGRyZXNzOiBBZGRyZXNzKTogTGlua09uTWludEV4dHJhTWJyQ29zdHMKZ2V0TmZkTGlua09uTWludEV4dHJhTWJyQ29zdDoKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI1NwoJLy8gcmV0dXJuIHsKCS8vICAgICAgICAgICAgIGxpbmtpbmdOZmRNYnJDb3N0OiB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDEsIE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQubGVuZ3RoICsgMzIpLAoJLy8gICAgICAgICAgICAgbGlua2luZ1JlZ2lzdHJ5TWJyQ29zdDogdGhpcy5jb3N0VG9BZGRUb0FkZHJlc3MoYWRkcmVzcyksCgkvLyAgICAgICAgIH0KCWJ5dGVjIDYgLy8gInYuY2FBbGdvLjAuYXMiCglsZW4KCWludGMgNCAvLyAzMgoJKwoJaW50YyAxIC8vIDEKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWZyYW1lX2RpZyAtMSAvLyBhZGRyZXNzOiBBZGRyZXNzCgljYWxsc3ViIGNvc3RUb0FkZFRvQWRkcmVzcwoJaXRvYgoJY29uY2F0CglyZXRzdWIKCi8vIG1pbnROZmQocGF5LHN0cmluZyxhZGRyZXNzLGJvb2wpdWludDY0CiphYmlfcm91dGVfbWludE5mZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMSAvLyAweDE1MWY3Yzc1CgoJLy8gbGlua09uTWludDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxpbmtPbk1pbnQpIGZvciBtaW50TmZkIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludGMgMCAvLyAwCglnZXRiaXQKCgkvLyByZXNlcnZlZEZvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChyZXNlcnZlZEZvcikgZm9yIG1pbnROZmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBwdXJjaGFzZVR4bjogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1cmNoYXNlVHhuKSBmb3IgbWludE5mZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnROZmQocGF5LHN0cmluZyxhZGRyZXNzLGJvb2wpdWludDY0CgljYWxsc3ViIG1pbnROZmQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtaW50TmZkKHB1cmNoYXNlVHhuOiBQYXlUeG4sIG5mZE5hbWU6IHN0cmluZywgcmVzZXJ2ZWRGb3I6IEFkZHJlc3MsIGxpbmtPbk1pbnQ6IGJvb2xlYW4pOiB1aW50NjQKLy8KLy8gTWludCBhbiBORkQgKE5GVCkgYW5kIGNyZWF0ZSBhIG5ldyBORkQgaW5zdGFuY2UuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBwdXJjaGFzZVR4biAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIGNvdmVyaW5nIHRoZSBwdXJjaGFzZSBhbW91bnQgb2YgdGhlIG5mZAovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQgdG8gbWludAovLyBAcGFyYW0ge0FkZHJlc3N9IHJlc2VydmVkRm9yIC0gVGhlIGFkZHJlc3MgdGhhdCB3aWxsIG93biB0aGUgTkZEIG9uY2UgbWludGVkIChzbyB5b3UgY2FuIGJ1eSBmb3Igc29tZW9uZSBlbHNlKQovLyBAcGFyYW0ge2Jvb2xlYW59IGxpbmtPbk1pbnQgLSB3aGV0aGVyIHRvIGF1dG8tbGluayB0aGUgYWRkcmVzcyAocmVzZXJ2ZWQgZm9yIE1VU1QgTUFUQ0ggcGF5ZXIhKSBhdCBtaW50Ci8vIEByZXR1cm4ge3VpbnQ2NH0gLSBUaGUgSUQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgTkZEIGluc3RhbmNlLgptaW50TmZkOgoJcHJvdG8gNCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMTcKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyNzMKCS8vIHZlcmlmeVBheVR4bihwdXJjaGFzZVR4biwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcHVyY2hhc2VUeG46IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicHVyY2hhc2VUeG4iLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI3NQoJLy8gYXNzZXJ0KGxlbihyZXNlcnZlZEZvcikgPT09IDMyKQoJaW50YyA0IC8vIDMyCglkdXAKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyNzYKCS8vIGFzc2VydChyZXNlcnZlZEZvciAhPT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMyAvLyByZXNlcnZlZEZvcjogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Mjc4CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDMgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgMyAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MjgxCgkvLyBuZmROYW1lSW5mbyA9IHRoaXMubnVtTGV0dGVyc0luTmZkKG5mZE5hbWUpCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIG51bUxldHRlcnNJbk5mZAoJZnJhbWVfYnVyeSAwIC8vIG5mZE5hbWVJbmZvOiAoYm9vbCx1aW50NjQsdWludDY0KQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI4MwoJLy8gcGFyZW50QXBwSWQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyODQKCS8vIHBhcmVudFBheW91dEFkZHJlc3MgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgMiAvLyBwYXJlbnRQYXlvdXRBZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmMTVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyODYKCS8vIG5mZE5hbWVJbmZvLmlzU2VnbWVudAoJZnJhbWVfZGlnIDAgLy8gbmZkTmFtZUluZm86IChib29sLHVpbnQ2NCx1aW50NjQpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vIDAKCWdldGJpdAoJYnogKmlmMTVfZW5kCgoJLy8gKmlmMTVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Mjg3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDMgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgMyAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Mjg5CgkvLyBwYXJlbnRBcHBJZCA9IHRoaXMuZmV0Y2hBcHBJZEZvck5hbWUodGhpcy5mcm9tTmFtZUluZm9HZXRQYXJlbnROYW1lKG5mZE5hbWUsIG5mZE5hbWVJbmZvKSkKCWZyYW1lX2RpZyAwIC8vIG5mZE5hbWVJbmZvOiAoYm9vbCx1aW50NjQsdWludDY0KQoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBmcm9tTmFtZUluZm9HZXRQYXJlbnROYW1lCgljYWxsc3ViIGZldGNoQXBwSWRGb3JOYW1lCglmcmFtZV9idXJ5IDEgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI5MAoJLy8gYXNzZXJ0KHBhcmVudEFwcElkICE9PSAwLCAncGFyZW50IG5mZC9pZCBtdXN0IGJlIGZvdW5kJykKCWZyYW1lX2RpZyAxIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIHBhcmVudCBuZmQvaWQgbXVzdCBiZSBmb3VuZAoJYXNzZXJ0CgoJLy8gKmlmMTZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoyOTMKCS8vIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChwYXJlbnRBcHBJZCwgTkZEX0tFWV9JU1NFR01FTlRMT0NLRUQpID09PSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMTYgLy8gImkuc2VnbWVudExvY2tlZCIKCWZyYW1lX2RpZyAxIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXRFeAoJYnl0ZWMgMjAgLy8gIjAiCgk9PQoJYnogKmlmMTZfZWxzZQoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI5NAoJLy8gcGFyZW50UGF5b3V0QWRkcmVzcyA9IEFwcElELmZyb21VaW50NjQocGFyZW50QXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKSBhcyBBZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBwYXJlbnRBcHBJZDogdWludDY0CglwdXNoYnl0ZXMgImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwYXJlbnRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBwYXJlbnRQYXlvdXRBZGRyZXNzOiBhZGRyZXNzCgliICppZjE2X2VuZAoKKmlmMTZfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjI5NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgICAgICBwdXJjaGFzZVR4bi5zZW5kZXIgPT09IEFwcElELmZyb21VaW50NjQocGFyZW50QXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLAoJLy8gICAgICAgICAgICAgICAgICAgICAnb25seSBvd25lciBvZiByb290IGNhbiBtaW50IHNlZ21lbnRzIGlmIHNlZ21lbnRzIGFyZSBsb2NrZWQnLAoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwdXJjaGFzZVR4bjogUGF5VHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAxIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWJ5dGVjIDIgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBhcmVudEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0Cgk9PQoKCS8vIG9ubHkgb3duZXIgb2Ygcm9vdCBjYW4gbWludCBzZWdtZW50cyBpZiBzZWdtZW50cyBhcmUgbG9ja2VkCglhc3NlcnQKCippZjE2X2VuZDoKCippZjE1X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMwNQoJLy8gb25lWWVhclByaWNlID0gdGhpcy5nZXRQcmljZUZvck5hbWUobmZkTmFtZSwgbmZkTmFtZUluZm8sIHRoaXMudHhuLnNlbmRlcikub25lWWVhclByaWNlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBuZmROYW1lSW5mbzogKGJvb2wsdWludDY0LHVpbnQ2NCkKCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lOiBzdHJpbmcKCWNhbGxzdWIgZ2V0UHJpY2VGb3JOYW1lCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBvbmVZZWFyUHJpY2U6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMwNgoJLy8gYXNzZXJ0KG9uZVllYXJQcmljZSA+IDAsICdwcmljZSBjYW4gbmV2ZXIgYmUgMCcpCglmcmFtZV9kaWcgMyAvLyBvbmVZZWFyUHJpY2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCgkvLyBwcmljZSBjYW4gbmV2ZXIgYmUgMAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzA5CgkvLyBuZmRNYnJDb3N0ID0gdGhpcy5nZXROZmRNYnJDb3N0KG5mZE5hbWUpCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGdldE5mZE1ickNvc3QKCWZyYW1lX2J1cnkgNCAvLyBuZmRNYnJDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMTAKCS8vIGxpbmtpbmdOZmRNYnJDb3N0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNSAvLyBsaW5raW5nTmZkTWJyQ29zdDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMTEKCS8vIGxpbmtPbk1pbnQKCWZyYW1lX2RpZyAtNCAvLyBsaW5rT25NaW50OiBib29sZWFuCglieiAqaWYxN19lbmQKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMTIKCS8vIGV4dHJhTWJyQ29zdHMgPSB0aGlzLmdldE5mZExpbmtPbk1pbnRFeHRyYU1ickNvc3QodGhpcy50eG4uc2VuZGVyKQoJdHhuIFNlbmRlcgoJY2FsbHN1YiBnZXROZmRMaW5rT25NaW50RXh0cmFNYnJDb3N0CglmcmFtZV9idXJ5IDYgLy8gZXh0cmFNYnJDb3N0czogKHVpbnQ2NCx1aW50NjQpCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzEzCgkvLyBsaW5raW5nTmZkTWJyQ29zdCA9IGV4dHJhTWJyQ29zdHMubGlua2luZ05mZE1ickNvc3QKCWZyYW1lX2RpZyA2IC8vIGV4dHJhTWJyQ29zdHM6ICh1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgNSAvLyBsaW5raW5nTmZkTWJyQ29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzE0CgkvLyBuZmRNYnJDb3N0ICs9IGV4dHJhTWJyQ29zdHMubGlua2luZ05mZE1ickNvc3QgKyBleHRyYU1ickNvc3RzLmxpbmtpbmdSZWdpc3RyeU1ickNvc3QKCWZyYW1lX2RpZyA0IC8vIG5mZE1ickNvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDYgLy8gZXh0cmFNYnJDb3N0czogKHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIDYgLy8gZXh0cmFNYnJDb3N0czogKHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDggOAoJYnRvaQoJKwoJKwoJZnJhbWVfYnVyeSA0IC8vIG5mZE1ickNvc3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMxNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gcmVzZXJ2ZWRGb3IsCgkvLyAgICAgICAgICAgICAgICAgJ2lmIGxpbmtpbmcgb24gbWludCwgdGhlIGJ1eWVyIE1VU1QgYmUgd2hvIHdpbGwgYmUgdGhlIG93bmVyIChyZXNlcnZlZEZvciknLAoJLy8gICAgICAgICAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIHJlc2VydmVkRm9yOiBBZGRyZXNzCgk9PQoKCS8vIGlmIGxpbmtpbmcgb24gbWludCwgdGhlIGJ1eWVyIE1VU1QgYmUgd2hvIHdpbGwgYmUgdGhlIG93bmVyIChyZXNlcnZlZEZvcikKCWFzc2VydAoKKmlmMTdfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMjAKCS8vIHRoaXMuZGV2ZWxvcG1lbnRBbGxvd1Nob3J0TWludHMgPT09IDAKCWludGMgMTggLy8gVE1QTF9kZXZlbG9wbWVudEFsbG93U2hvcnRNaW50cwoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMjIKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgICAgICAoMzY1ICogKHB1cmNoYXNlVHhuLmFtb3VudCAtIG5mZE1ickNvc3QpKSAvIG9uZVllYXJQcmljZSA+PSAzMCwKCS8vICAgICAgICAgICAgICAgICAncGF5bWVudCB0cmFuc2FjdGlvbiBtdXN0IGJlIGF0IGxlYXN0IGVub3VnaCB0byBjb3ZlciAzMCBkYXlzIG9mIG5mZCBjb3N0ICsgY2FycnkgY29zdCcsCgkvLyAgICAgICAgICAgICApCglpbnRjIDE1IC8vIDM2NQoJZnJhbWVfZGlnIC0xIC8vIHB1cmNoYXNlVHhuOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDQgLy8gbmZkTWJyQ29zdDogdWludDY0CgktCgkqCglmcmFtZV9kaWcgMyAvLyBvbmVZZWFyUHJpY2U6IHVpbnQ2NAoJLwoJaW50YyAxNyAvLyAzMAoJPj0KCgkvLyBwYXltZW50IHRyYW5zYWN0aW9uIG11c3QgYmUgYXQgbGVhc3QgZW5vdWdoIHRvIGNvdmVyIDMwIGRheXMgb2YgbmZkIGNvc3QgKyBjYXJyeSBjb3N0Cglhc3NlcnQKCippZjE4X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMzMAoJLy8gY3VycmVudENvbnRyYWN0VmVyID0gdGhpcy5ib3hlcyhSRUdJU1RSWV9DT05UUkFDVF9CT1hfQ1VSUkVOVF9DT05UUkFDVCkudmFsdWUgYXMgYnl0ZXMKCWJ5dGVjIDUgLy8gImN1cnJlbnQiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DVVJSRU5UX0NPTlRSQUNUKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDcgLy8gY3VycmVudENvbnRyYWN0VmVyOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozMzEKCS8vIGFwcHJvdlByb2dOYW1lID0gY29uY2F0KAoJLy8gICAgICAgICAgICAgUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0FQUFJPVkFMX05BTUVQUkVGSVgsCgkvLyAgICAgICAgICAgICB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DVVJSRU5UX0NPTlRSQUNUKS52YWx1ZSBhcyBieXRlcywKCS8vICAgICAgICAgKQoJYnl0ZWMgOCAvLyAiY29udHJhY3Q6QToiCglieXRlYyA1IC8vICJjdXJyZW50IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhSRUdJU1RSWV9DT05UUkFDVF9CT1hfQ1VSUkVOVF9DT05UUkFDVCkudmFsdWUKCWFzc2VydAoJY29uY2F0CglmcmFtZV9idXJ5IDggLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMzNQoJLy8gY2xlYXJQcm9nID0gdGhpcy5ib3hlcyhjb25jYXQoUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0NMRUFSX05BTUVQUkVGSVgsIGN1cnJlbnRDb250cmFjdFZlcikpLnZhbHVlIGFzIGJ5dGVzCglieXRlYyAxMiAvLyAiY29udHJhY3Q6QzoiCglmcmFtZV9kaWcgNyAvLyBjdXJyZW50Q29udHJhY3RWZXI6IGJ5dGVbXQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGNvbmNhdChSRUdJU1RSWV9DT05UUkFDVF9CT1hfQ0xFQVJfTkFNRVBSRUZJWCwgY3VycmVudENvbnRyYWN0VmVyKSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSA5IC8vIGNsZWFyUHJvZzogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzM2CgkvLyBhcHByb3ZQcm9nTGVuZ3RoID0gdGhpcy5ib3hlcyhhcHByb3ZQcm9nTmFtZSkuc2l6ZQoJZnJhbWVfZGlnIDggLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhhcHByb3ZQcm9nTmFtZSkuc2l6ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEwIC8vIGFwcHJvdlByb2dMZW5ndGg6IHVpbnQ2NAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzM4CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDIwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJcHVzaGludCAyMDAKCTwKCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjMzOQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDMgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgNiAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTlfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzQyCgkvLyBleHBUaW1lID0gdGhpcy5jYWxjRXhwaXJhdGlvbigKCS8vICAgICAgICAgICAgIG9uZVllYXJQcmljZSwKCS8vICAgICAgICAgICAgIHB1cmNoYXNlVHhuLmFtb3VudCAtIG5mZE1ickNvc3QsCgkvLyAgICAgICAgICAgICBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCwKCS8vICAgICAgICAgICAgIE5GRF9NQVhfRVhQSVJBVElPTl9ZRUFSUywKCS8vICAgICAgICAgKQoJcHVzaGludCAyMAoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJZnJhbWVfZGlnIC0xIC8vIHB1cmNoYXNlVHhuOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDQgLy8gbmZkTWJyQ29zdDogdWludDY0CgktCglmcmFtZV9kaWcgMyAvLyBvbmVZZWFyUHJpY2U6IHVpbnQ2NAoJY2FsbHN1YiBjYWxjRXhwaXJhdGlvbgoJZnJhbWVfYnVyeSAxMSAvLyBleHBUaW1lOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozNDgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgICAgICAgICB0aGlzLmJveGVzKGFwcHJvdlByb2dOYW1lKS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYm94ZXMoYXBwcm92UHJvZ05hbWUpLmV4dHJhY3QoNDA5NiwgYXBwcm92UHJvZ0xlbmd0aCAtIDQwOTYpLAoJLy8gICAgICAgICAgICAgXSwKCS8vICAgICAgICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjbGVhclByb2csCgkvLyAgICAgICAgICAgICBnbG9iYWxOdW1VaW50OiBORkRJbnN0YW5jZS5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IE5GREluc3RhbmNlLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgICAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgICAgICAgICAvLyBuZmROYW1lOiBzdHJpbmcsCgkvLyAgICAgICAgICAgICAgICAgLy8gc2VsbGVyOiBBZGRyZXNzLCAvLyB0cmVhc3VyeSBhZGRyZXNzCgkvLyAgICAgICAgICAgICAgICAgLy8gYnV5ZXI6IEFkZHJlc3MsIC8vIChidXllciAvIHJlc2VydmVkLWZvciBhZGRyZXNzCgkvLyAgICAgICAgICAgICAgICAgLy8ga2lja29mZkFtb3VudDogdWludDY0LCAvLyBwYXNzIHdoYXQgdGhleSBQQUlEIG1pbnVzIE1CUiBhbW91bnRzICEhCgkvLyAgICAgICAgICAgICAgICAgLy8gZXhwVGltZTogdWludDY0LCAvLyBleHBpcmF0aW9uIHRpbWUgdG8gc2V0IGludG8gY29udHJhY3QKCS8vICAgICAgICAgICAgICAgICAvLyBjb21taXNzaW9uMUFkZHI6IEFkZHJlc3MsIC8vIGNvbW1pc3Npb24gYWdlbnQgcHJpbWFyeQoJLy8gICAgICAgICAgICAgICAgIC8vIGNvbW1pc3Npb24xUGN0OiB1aW50NjQsIC8vIGNvbW1pc3Npb24gJSAtIHNpbmdsZSBkZWNpbWFsIC0gaWU6IDI1IGlzIDIuNSUKCS8vICAgICAgICAgICAgICAgICAvLyBjb21taXNzaW9uMkFkZHI6IEFkZHJlc3MsIC8vIGNvbW1pc3Npb24gYWdlbnQgc2Vjb25kYXJ5CgkvLyAgICAgICAgICAgICAgICAgLy8gY29tbWlzc2lvbjJQY3Q6IHVpbnQ2NCwgLy8gY29tbWlzc2lvbiAlIC0gc2luZ2xlIGRlY2ltYWwgLSBpZTogMjUgaXMgMi41JQoJLy8gICAgICAgICAgICAgICAgIC8vIHNlZ21lbnRSb290QXBwSWQ6IHVpbnQ2NCwgLy8gcGFyZW50IGFwcCBpZCBvZiBzZWdtZW50IG9yIDAgLSBjb21taXNzaW9uIG9uIHNlZ21lbnQgaXMgb25seSBpZiBvcGVuIHNlZ21lbnQKCS8vICAgICAgICAgICAgICAgICAvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBBZGRyZXNzLCAvLyBvcGVuIHNlZ21lbnQgcGFyZW50IGNvbW1pc3Npb24gYWdlbnQgb3IgWkVSTyBBRERSRVNTIElGIE5PVCBVU0VECgkvLyAgICAgICAgICAgICAgICAgbWV0aG9kKAoJLy8gICAgICAgICAgICAgICAgICAgICAnY3JlYXRlQXBwbGljYXRpb24oc3RyaW5nLGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzKXZvaWQnLAoJLy8gICAgICAgICAgICAgICAgICksCgkvLyAgICAgICAgICAgICAgICAgcmF3Qnl0ZXMobmZkTmFtZSksCgkvLyAgICAgICAgICAgICAgICAgcmF3Qnl0ZXModGhpcy5uZmRUcmVhc3VyeUFkZHIpLAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHJlc2VydmVkRm9yKSwKCS8vICAgICAgICAgICAgICAgICAvLyB0aGlzIG5leHQgdmFsdWUgd2lsbCBiZSB3aGF0IHRoZSBORkQgd2lsbCBiZSAnb24gc2FsZSBmb3InIGF0IGNyZWF0ZSAhIGFuZCBpcyB1c2VkIGFzIHBhcnQgb2YgbGF0ZXIKCS8vICAgICAgICAgICAgICAgICAvLyBwYXlvdXRzIGluIG1pbnRQYXlvdXQgY2FsbAoJLy8gICAgICAgICAgICAgICAgIGl0b2IocHVyY2hhc2VUeG4uYW1vdW50IC0gbmZkTWJyQ29zdCksCgkvLyAgICAgICAgICAgICAgICAgaXRvYihleHBUaW1lKSwKCS8vICAgICAgICAgICAgICAgICByYXdCeXRlcyh0aGlzLm5mZENvbW1pc3Npb24xQWRkciksCgkvLyAgICAgICAgICAgICAgICAgaXRvYih0aGlzLm5mZENvbW1pc3Npb24xUmF0ZSksCgkvLyAgICAgICAgICAgICAgICAgLy8gbm8gc2Vjb25kYXJ5IGNvbW1pc3Npb25zICEKCS8vICAgICAgICAgICAgICAgICByYXdCeXRlcyhnbG9iYWxzLnplcm9BZGRyZXNzKSwKCS8vICAgICAgICAgICAgICAgICBpdG9iKDApLAoJLy8gICAgICAgICAgICAgICAgIC8vCgkvLyAgICAgICAgICAgICAgICAgaXRvYihwYXJlbnRBcHBJZCksCgkvLyAgICAgICAgICAgICAgICAgcmF3Qnl0ZXMocGFyZW50UGF5b3V0QWRkcmVzcyksCgkvLyAgICAgICAgICAgICBdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzQ5CgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnRjIDAgLy8gIE5vT3AKCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MzUwCgkvLyBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgICAgICAgICB0aGlzLmJveGVzKGFwcHJvdlByb2dOYW1lKS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYm94ZXMoYXBwcm92UHJvZ05hbWUpLmV4dHJhY3QoNDA5NiwgYXBwcm92UHJvZ0xlbmd0aCAtIDQwOTYpLAoJLy8gICAgICAgICAgICAgXQoJZnJhbWVfZGlnIDggLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoJaW50YyAwIC8vIDAKCWludGMgOSAvLyA0MDk2Cglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJZnJhbWVfZGlnIDggLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoJaW50YyA5IC8vIDQwOTYKCWZyYW1lX2RpZyAxMCAvLyBhcHByb3ZQcm9nTGVuZ3RoOiB1aW50NjQKCWludGMgOSAvLyA0MDk2CgktCglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjM1NAoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IGNsZWFyUHJvZwoJZnJhbWVfZGlnIDkgLy8gY2xlYXJQcm9nOiBieXRlW10KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozNTUKCS8vIGdsb2JhbE51bVVpbnQ6IE5GREluc3RhbmNlLnNjaGVtYS5nbG9iYWwubnVtVWludAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjM1NgoJLy8gZ2xvYmFsTnVtQnl0ZVNsaWNlOiBORkRJbnN0YW5jZS5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50YyAxNyAvLyAzMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozNTcKCS8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzCglpbnRjIDcgLy8gMwoJaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjM1OAoJLy8gYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgICAgICAgICAgLy8gbmZkTmFtZTogc3RyaW5nLAoJLy8gICAgICAgICAgICAgICAgIC8vIHNlbGxlcjogQWRkcmVzcywgLy8gdHJlYXN1cnkgYWRkcmVzcwoJLy8gICAgICAgICAgICAgICAgIC8vIGJ1eWVyOiBBZGRyZXNzLCAvLyAoYnV5ZXIgLyByZXNlcnZlZC1mb3IgYWRkcmVzcwoJLy8gICAgICAgICAgICAgICAgIC8vIGtpY2tvZmZBbW91bnQ6IHVpbnQ2NCwgLy8gcGFzcyB3aGF0IHRoZXkgUEFJRCBtaW51cyBNQlIgYW1vdW50cyAhIQoJLy8gICAgICAgICAgICAgICAgIC8vIGV4cFRpbWU6IHVpbnQ2NCwgLy8gZXhwaXJhdGlvbiB0aW1lIHRvIHNldCBpbnRvIGNvbnRyYWN0CgkvLyAgICAgICAgICAgICAgICAgLy8gY29tbWlzc2lvbjFBZGRyOiBBZGRyZXNzLCAvLyBjb21taXNzaW9uIGFnZW50IHByaW1hcnkKCS8vICAgICAgICAgICAgICAgICAvLyBjb21taXNzaW9uMVBjdDogdWludDY0LCAvLyBjb21taXNzaW9uICUgLSBzaW5nbGUgZGVjaW1hbCAtIGllOiAyNSBpcyAyLjUlCgkvLyAgICAgICAgICAgICAgICAgLy8gY29tbWlzc2lvbjJBZGRyOiBBZGRyZXNzLCAvLyBjb21taXNzaW9uIGFnZW50IHNlY29uZGFyeQoJLy8gICAgICAgICAgICAgICAgIC8vIGNvbW1pc3Npb24yUGN0OiB1aW50NjQsIC8vIGNvbW1pc3Npb24gJSAtIHNpbmdsZSBkZWNpbWFsIC0gaWU6IDI1IGlzIDIuNSUKCS8vICAgICAgICAgICAgICAgICAvLyBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQsIC8vIHBhcmVudCBhcHAgaWQgb2Ygc2VnbWVudCBvciAwIC0gY29tbWlzc2lvbiBvbiBzZWdtZW50IGlzIG9ubHkgaWYgb3BlbiBzZWdtZW50CgkvLyAgICAgICAgICAgICAgICAgLy8gc2VnbWVudFJvb3RDb21taXNzaW9uQWRkcjogQWRkcmVzcywgLy8gb3BlbiBzZWdtZW50IHBhcmVudCBjb21taXNzaW9uIGFnZW50IG9yIFpFUk8gQUREUkVTUyBJRiBOT1QgVVNFRAoJLy8gICAgICAgICAgICAgICAgIG1ldGhvZCgKCS8vICAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkJywKCS8vICAgICAgICAgICAgICAgICApLAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKG5mZE5hbWUpLAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHRoaXMubmZkVHJlYXN1cnlBZGRyKSwKCS8vICAgICAgICAgICAgICAgICByYXdCeXRlcyhyZXNlcnZlZEZvciksCgkvLyAgICAgICAgICAgICAgICAgLy8gdGhpcyBuZXh0IHZhbHVlIHdpbGwgYmUgd2hhdCB0aGUgTkZEIHdpbGwgYmUgJ29uIHNhbGUgZm9yJyBhdCBjcmVhdGUgISBhbmQgaXMgdXNlZCBhcyBwYXJ0IG9mIGxhdGVyCgkvLyAgICAgICAgICAgICAgICAgLy8gcGF5b3V0cyBpbiBtaW50UGF5b3V0IGNhbGwKCS8vICAgICAgICAgICAgICAgICBpdG9iKHB1cmNoYXNlVHhuLmFtb3VudCAtIG5mZE1ickNvc3QpLAoJLy8gICAgICAgICAgICAgICAgIGl0b2IoZXhwVGltZSksCgkvLyAgICAgICAgICAgICAgICAgcmF3Qnl0ZXModGhpcy5uZmRDb21taXNzaW9uMUFkZHIpLAoJLy8gICAgICAgICAgICAgICAgIGl0b2IodGhpcy5uZmRDb21taXNzaW9uMVJhdGUpLAoJLy8gICAgICAgICAgICAgICAgIC8vIG5vIHNlY29uZGFyeSBjb21taXNzaW9ucyAhCgkvLyAgICAgICAgICAgICAgICAgcmF3Qnl0ZXMoZ2xvYmFscy56ZXJvQWRkcmVzcyksCgkvLyAgICAgICAgICAgICAgICAgaXRvYigwKSwKCS8vICAgICAgICAgICAgICAgICAvLwoJLy8gICAgICAgICAgICAgICAgIGl0b2IocGFyZW50QXBwSWQpLAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHBhcmVudFBheW91dEFkZHJlc3MpLAoJLy8gICAgICAgICAgICAgXQoJcHVzaGJ5dGVzIDB4MGRjYTUyYzEgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3Mpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDEwIC8vIFRNUExfbmZkVHJlYXN1cnlBZGRyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIHJlc2VydmVkRm9yOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIHB1cmNoYXNlVHhuOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDQgLy8gbmZkTWJyQ29zdDogdWludDY0CgktCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDExIC8vIGV4cFRpbWU6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDIxIC8vIFRNUExfbmZkQ29tbWlzc2lvbjFBZGRyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50YyAyNiAvLyBUTVBMX25mZENvbW1pc3Npb24xUmF0ZQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDQgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDEgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyIC8vIHBhcmVudFBheW91dEFkZHJlc3M6IGFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjM5MgoJLy8gbmZkQXBwSWQgPSB0aGlzLml0eG4uY3JlYXRlZEFwcGxpY2F0aW9uSUQuaWQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWZyYW1lX2J1cnkgMTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjM5MwoJLy8gbmZkU0NBZGRyZXNzID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklELmFkZHJlc3MKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfYnVyeSAxMyAvLyBuZmRTQ0FkZHJlc3M6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czozOTQKCS8vIG5mZEluc3RhbmNlTWJyID0gdGhpcy5nZXROZmRJbnN0YW5jZU1icigpCgljYWxsc3ViIGdldE5mZEluc3RhbmNlTWJyCglmcmFtZV9idXJ5IDE0IC8vIG5mZEluc3RhbmNlTWJyOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0MDIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogcHVyY2hhc2VUeG4uYW1vdW50IC0gbmZkTWJyQ29zdCArIG5mZEluc3RhbmNlTWJyICsgbGlua2luZ05mZE1ickNvc3QsCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogbmZkU0NBZGRyZXNzLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0MDMKCS8vIGFtb3VudDogcHVyY2hhc2VUeG4uYW1vdW50IC0gbmZkTWJyQ29zdCArIG5mZEluc3RhbmNlTWJyICsgbGlua2luZ05mZE1ickNvc3QKCWZyYW1lX2RpZyAtMSAvLyBwdXJjaGFzZVR4bjogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyA0IC8vIG5mZE1ickNvc3Q6IHVpbnQ2NAoJLQoJZnJhbWVfZGlnIDE0IC8vIG5mZEluc3RhbmNlTWJyOiB1aW50NjQKCSsKCWZyYW1lX2RpZyA1IC8vIGxpbmtpbmdOZmRNYnJDb3N0OiB1aW50NjQKCSsKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDA0CgkvLyByZWNlaXZlcjogbmZkU0NBZGRyZXNzCglmcmFtZV9kaWcgMTMgLy8gbmZkU0NBZGRyZXNzOiBhZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQwNwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GREluc3RhbmNlLnByb3RvdHlwZS5taW50QXNhPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKSwKCS8vICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgICAgICB0aGlzLmNvbmRlbnNlZEFzYU5hbWUobmZkTmFtZSksIC8vIDw9MzIgY2hhcnMgKGlmIGxvbmdlciBlbmRzIGxpa2UgbG9uZ25hbWUuLi5hbGdvKQoJLy8gICAgICAgICAgICAgICAgICd0ZW1wbGF0ZS1pcGZzOi8ve2lwZnNjaWQ6MTpkYWctcGI6cmVzZXJ2ZTpzaGEyLTI1Nn0vbmZkLmpzb24nLAoJLy8gICAgICAgICAgICAgXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MDZkZjJlNWIgLy8gbWV0aG9kICJtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDA4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIDEyIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQwOQoJLy8gbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAgICAgICAgIHRoaXMuY29uZGVuc2VkQXNhTmFtZShuZmROYW1lKSwgLy8gPD0zMiBjaGFycyAoaWYgbG9uZ2VyIGVuZHMgbGlrZSBsb25nbmFtZS4uLmFsZ28pCgkvLyAgICAgICAgICAgICAgICAgJ3RlbXBsYXRlLWlwZnM6Ly97aXBmc2NpZDoxOmRhZy1wYjpyZXNlcnZlOnNoYTItMjU2fS9uZmQuanNvbicsCgkvLyAgICAgICAgICAgICBdCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGNvbmRlbnNlZEFzYU5hbWUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAzYzc0NjU2ZDcwNmM2MTc0NjUyZDY5NzA2NjczM2EyZjJmN2I2OTcwNjY3MzYzNjk2NDNhMzEzYTY0NjE2NzJkNzA2MjNhNzI2NTczNjU3Mjc2NjUzYTczNjg2MTMyMmQzMjM1MzY3ZDJmNmU2NjY0MmU2YTczNmY2ZQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDE1CgkvLyBuZmRBc2FJZCA9IGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWZyYW1lX2J1cnkgMTUgLy8gbmZkQXNhSWQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQxOAoJLy8gdGhpcy5hc3NpZ25OYW1lVG9SZWdpc3RyeShuZmROYW1lLCBuZmRBc2FJZCwgbmZkQXBwSWQsIGZhbHNlKQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAxMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgMTUgLy8gbmZkQXNhSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBhc3NpZ25OYW1lVG9SZWdpc3RyeQoKCS8vICppZjIwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDIxCgkvLyBwYXJlbnRBcHBJZCAhPT0gMAoJZnJhbWVfZGlnIDEgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyAqaWYyMV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQyMwoJLy8gdGhpcy5pc1ByZVYzKHBhcmVudEFwcElkKQoJZnJhbWVfZGlnIDEgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoJY2FsbHN1YiBpc1ByZVYzCglieiAqaWYyMV9lbHNlCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDI0CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICAgICAgICAgIChBcHBJRC5mcm9tVWludDY0KHBhcmVudEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX1ZFUlNJT04pIGFzIGJ5dGVzKSA9PT0gJzIuMTInLAoJLy8gICAgICAgICAgICAgICAgICAgICAnbmZkIHJvb3Qgbm90IDMueCBtdXN0IGJlIHZlcnNpb24gMi4xMiBpbiBvcmRlciBmb3Igc2VnbWVudCBtaW50aW5nIHRvIHN1Y2NlZWQnLAoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWJ5dGVjIDkgLy8gImkudmVyIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocGFyZW50QXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikKCWFzc2VydAoJcHVzaGJ5dGVzIDB4MzIyZTMxMzIgLy8gIjIuMTIiCgk9PQoKCS8vIG5mZCByb290IG5vdCAzLnggbXVzdCBiZSB2ZXJzaW9uIDIuMTIgaW4gb3JkZXIgZm9yIHNlZ21lbnQgbWludGluZyB0byBzdWNjZWVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0MjgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwYXJlbnRBcHBJZCksCgkvLyAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uQXJnczogWyd1cGRhdGVfc2VnbWVudF9jb3VudCcsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpXSwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDI5CgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnRjIDAgLy8gIE5vT3AKCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDMwCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBhcmVudEFwcElkKQoJZnJhbWVfZGlnIDEgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDMxCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsndXBkYXRlX3NlZ21lbnRfY291bnQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKV0KCXB1c2hieXRlcyAweDc1NzA2NDYxNzQ2NTVmNzM2NTY3NmQ2NTZlNzQ1ZjYzNmY3NTZlNzQgLy8gInVwZGF0ZV9zZWdtZW50X2NvdW50IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgliICppZjIxX2VuZAoKKmlmMjFfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQzNAoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GREluc3RhbmNlLnByb3RvdHlwZS51cGRhdGVTZWdtZW50Q291bnQ+KHsKCS8vICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwYXJlbnRBcHBJZCksCgkvLyAgICAgICAgICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFtuZmROYW1lLCBuZmRBcHBJZF0sCgkvLyAgICAgICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MGQyNmM1OTEgLy8gbWV0aG9kICJ1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0MzUKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocGFyZW50QXBwSWQpCglmcmFtZV9kaWcgMSAvLyBwYXJlbnRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0MzYKCS8vIG1ldGhvZEFyZ3M6IFtuZmROYW1lLCBuZmRBcHBJZF0KCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDEyIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjFfZW5kOgoKKmlmMjBfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyBjb25zdHJhaW50RGF0YSA9IHRoaXMuZ2V0Q29uc3RyYWludHMoKQoJY2FsbHN1YiBnZXRDb25zdHJhaW50cwoJZnJhbWVfYnVyeSAxNiAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDQ0CgkvLyBwYXlvdXRJbmZvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GREluc3RhbmNlLnByb3RvdHlwZS5taW50UGF5b3V0Pih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKSwKCS8vICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFtvbmVZZWFyUHJpY2UsIGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ29dLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhkODUzMzdjNCAvLyBtZXRob2QgIm1pbnRQYXlvdXQodWludDY0LHVpbnQ2NCkodWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDQ1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIDEyIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQ0NgoJLy8gbWV0aG9kQXJnczogW29uZVllYXJQcmljZSwgY29uc3RyYWludERhdGEuc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnb10KCWZyYW1lX2RpZyAzIC8vIG9uZVllYXJQcmljZTogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE2IC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAxNyAvLyBwYXlvdXRJbmZvOiAodWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0KQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQ0OQoJLy8gdGhpcy5uZmRSZWdpc3RyeV9taW50ZWQubG9nKHsKCS8vICAgICAgICAgICAgIGFwcElkOiBuZmRBcHBJZCwKCS8vICAgICAgICAgICAgIG5hbWU6IG5mZE5hbWUsCgkvLyAgICAgICAgICAgICBwcmljZU9uZVllYXI6IG9uZVllYXJQcmljZSwKCS8vICAgICAgICAgICAgIHBhaWRBbW91bnQ6IHB1cmNoYXNlVHhuLmFtb3VudCAtIG5mZE1ickNvc3QsCgkvLyAgICAgICAgICAgICBjYXJyeUNvc3Q6IG5mZE1ickNvc3QsCgkvLyAgICAgICAgICAgICBzZWxsZXI6IHRoaXMubmZkVHJlYXN1cnlBZGRyLAoJLy8gICAgICAgICAgICAgYnV5ZXI6IHB1cmNoYXNlVHhuLnNlbmRlciwKCS8vICAgICAgICAgICAgIG93bmVyOiByZXNlcnZlZEZvciwKCS8vICAgICAgICAgICAgIGV4cFRpbWU6IGV4cFRpbWUsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1NlbGxlcjogcGF5b3V0SW5mby5hbW91bnRUb1NlbGxlciwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25BZGRyZXNzOiBwYXlvdXRJbmZvLmNvbW1pc3Npb25BZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50VG9Db21taXNzaW9uOiBwYXlvdXRJbmZvLmFtb3VudFRvQ29tbWlzc2lvbiwKCS8vICAgICAgICAgICAgIHNlZ21lbnRSb290T3duZXI6IHBheW91dEluZm8uc2VnbWVudFJvb3RPd25lciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvU2VnbWVudFJvb3Q6IHBheW91dEluZm8uYW1vdW50VG9TZWdtZW50Um9vdCwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDM1YzU5NDE4IC8vIG5mZFJlZ2lzdHJ5X21pbnRlZCh1aW50NjQsc3RyaW5nLHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDBlMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgMTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMyAvLyBvbmVZZWFyUHJpY2U6IHVpbnQ2NAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIHB1cmNoYXNlVHhuOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDQgLy8gbmZkTWJyQ29zdDogdWludDY0CgktCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgNCAvLyBuZmRNYnJDb3N0OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDEwIC8vIFRNUExfbmZkVHJlYXN1cnlBZGRyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gcHVyY2hhc2VUeG46IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTMgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAxMSAvLyBleHBUaW1lOiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAxNyAvLyBwYXlvdXRJbmZvOiAodWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0KQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAxNyAvLyBwYXlvdXRJbmZvOiAodWludDY0LGFkZHJlc3MsdWludDY0LGFkZHJlc3MsdWludDY0KQoJZXh0cmFjdCA4IDMyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMTcgLy8gcGF5b3V0SW5mbzogKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkKCWV4dHJhY3QgNDAgOAoJYnRvaQoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDE3IC8vIHBheW91dEluZm86ICh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpCglleHRyYWN0IDQ4IDMyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMTcgLy8gcGF5b3V0SW5mbzogKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkKCWV4dHJhY3QgODAgOAoJYnRvaQoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDY2CgkvLyBsaW5rT25NaW50CglmcmFtZV9kaWcgLTQgLy8gbGlua09uTWludDogYm9vbGVhbgoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDY3CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZESW5zdGFuY2UucHJvdG90eXBlLnVwZGF0ZUZpZWxkcz4oewoJLy8gICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLAoJLy8gICAgICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFtbTkZEX0ZJRUxEX0NBX1RPX1ZFUklGWSwgcmF3Qnl0ZXModGhpcy50eG4uc2VuZGVyKV1dLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NzhmNDI3MTEgLy8gbWV0aG9kICJ1cGRhdGVGaWVsZHMoYnl0ZVtdW10pdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDY4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIDEyIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQ2OQoJLy8gbWV0aG9kQXJnczogW1tORkRfRklFTERfQ0FfVE9fVkVSSUZZLCByYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpXV0KCWJ5dGVjIDAgLy8gIGluaXRpYWwgaGVhZAoJYnl0ZWMgMCAvLyAgaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGVjIDcgLy8gInUuY2F2LmFsZ28uYSIKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJdHhuIFNlbmRlcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXB1c2hieXRlcyAweDAwMDIKCXN3YXAKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDcxCgkvLyB0aGlzLmxpbmtOZmRBZGRyZXNzKG5mZE5hbWUsIG5mZEFwcElkLCB0aGlzLnR4bi5zZW5kZXIpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBsaW5rTmZkQWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDczCgkvLyByZXR1cm4gbmZkQXBwSWQKCWZyYW1lX2RpZyAxMiAvLyBuZmRBcHBJZDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMTcKCXJldHN1YgoKLy8gbGlua05mZEFkZHJlc3Moc3RyaW5nLHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9saW5rTmZkQWRkcmVzczoKCS8vIGFkZHJUb1ZlcmlmeTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyVG9WZXJpZnkpIGZvciBsaW5rTmZkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGxpbmtOZmRBZGRyZXNzKHN0cmluZyx1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxpbmtOZmRBZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBsaW5rTmZkQWRkcmVzcyhuZmROYW1lOiBzdHJpbmcsIG5mZEFwcElkOiB1aW50NjQsIGFkZHJUb1ZlcmlmeTogQWRkcmVzcyk6IHZvaWQKbGlua05mZEFkZHJlc3M6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NDgwCgkvLyBhZGRyQm94TmFtZSA9IHRoaXMuZ2V0QWxnb0FkZHJlc3NCb3hOYW1lKHJhd0J5dGVzKGFkZHJUb1ZlcmlmeSkpCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVmVyaWZ5OiBBZGRyZXNzCgljYWxsc3ViIGdldEFsZ29BZGRyZXNzQm94TmFtZQoJZnJhbWVfYnVyeSAwIC8vIGFkZHJCb3hOYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0ODEKCS8vIG5mZE93bmVyID0gQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikgYXMgQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWJ5dGVjIDIgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0ODMKCS8vIGFzc2VydCh0aGlzLmlzVjJOZmRBcHBJZEF1dGhlbnRpYyhuZmROYW1lLCBuZmRBcHBJZCksICdyZWZlcmVuY2VkIE5GRCBuYW1lL2lkIG11c3QgYmUgdmFsaWQnKQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWNhbGxzdWIgaXNWMk5mZEFwcElkQXV0aGVudGljCgoJLy8gcmVmZXJlbmNlZCBORkQgbmFtZS9pZCBtdXN0IGJlIHZhbGlkCglhc3NlcnQKCgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQ4OAoJLy8gQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuYWRkcmVzcyA9PT0gYWRkclRvVmVyaWZ5CglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVmVyaWZ5OiBBZGRyZXNzCgk9PQoJYnogKmlmMjNfZWxzZQoKCS8vICppZjIzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjQ4OQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gbmZkT3duZXIsICd2ZXJpZnlpbmcgdmF1bHQgYWNjb3VudCwgc2VuZGVyIG11c3QgYmUgTkZEIG93bmVyJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgk9PQoKCS8vIHZlcmlmeWluZyB2YXVsdCBhY2NvdW50LCBzZW5kZXIgbXVzdCBiZSBORkQgb3duZXIKCWFzc2VydAoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0OTIKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGFkZHJUb1ZlcmlmeSwgJ2FwcCBjYWxsIHNlbmRlciBtdXN0IG1hdGNoIGFkZHJlc3MgYmVpbmcgYWRkZWQvcmVtb3ZlZCcpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVmVyaWZ5OiBBZGRyZXNzCgk9PQoKCS8vIGFwcCBjYWxsIHNlbmRlciBtdXN0IG1hdGNoIGFkZHJlc3MgYmVpbmcgYWRkZWQvcmVtb3ZlZAoJYXNzZXJ0CgoqaWYyM19lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo0OTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuY2FsbE5GRElzQWRkcmVzc0luRmllbGQobmZkQXBwSWQsIE5GRF9GSUVMRF9DQV9UT19WRVJJRlksIGFkZHJUb1ZlcmlmeSksCgkvLyAgICAgICAgICAgICAnbmZkIHZlcmlmaWVkIGNhQWxnby4wLmFzIG11c3QgY29udGFpbiBhZGRyZXNzIGJlaW5nIGFkZGVkL3JlbW92ZWQnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVmVyaWZ5OiBBZGRyZXNzCglieXRlYyA3IC8vICJ1LmNhdi5hbGdvLmEiCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJY2FsbHN1YiBjYWxsTkZESXNBZGRyZXNzSW5GaWVsZAoKCS8vIG5mZCB2ZXJpZmllZCBjYUFsZ28uMC5hcyBtdXN0IGNvbnRhaW4gYWRkcmVzcyBiZWluZyBhZGRlZC9yZW1vdmVkCglhc3NlcnQKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjUwNwoJLy8gIXRoaXMuZmluZEludEluU2V0KGFkZHJCb3hOYW1lLCBuZmRBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBhZGRyQm94TmFtZTogYnl0ZVtdCgljYWxsc3ViIGZpbmRJbnRJblNldAoJIQoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTEwCgkvLyBhc3NlcnQodGhpcy5hZGRJbnRUb1NldChhZGRyQm94TmFtZSwgbmZkQXBwSWQpLCAnc2hvdWxkIGFkZCBuZmQgdG8gcmV2ZXJzZSBhZGRyZXNzJykKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBhZGRyQm94TmFtZTogYnl0ZVtdCgljYWxsc3ViIGFkZEludFRvU2V0CgoJLy8gc2hvdWxkIGFkZCBuZmQgdG8gcmV2ZXJzZSBhZGRyZXNzCglhc3NlcnQKCippZjI0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjUxNAoJLy8gdGhpcy5jYWxsTkZEUmVnaXN0cnlBcHByb3ZlZEFkZHJlc3NBZGQobmZkQXBwSWQsIE5GRF9GSUVMRF9DQV9UT19WRVJJRlksIE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQpCglieXRlYyA2IC8vICJ2LmNhQWxnby4wLmFzIgoJYnl0ZWMgNyAvLyAidS5jYXYuYWxnby5hIgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWNhbGxzdWIgY2FsbE5GRFJlZ2lzdHJ5QXBwcm92ZWRBZGRyZXNzQWRkCglyZXRzdWIKCi8vIHVubGlua05mZEFkZHJlc3Moc3RyaW5nLHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV91bmxpbmtOZmRBZGRyZXNzOgoJLy8gYWRkclRvVW5saW5rOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJUb1VubGluaykgZm9yIHVubGlua05mZEFkZHJlc3MgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5mZEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1bmxpbmtOZmRBZGRyZXNzKHN0cmluZyx1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHVubGlua05mZEFkZHJlc3MKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVubGlua05mZEFkZHJlc3MobmZkTmFtZTogc3RyaW5nLCBuZmRBcHBJZDogdWludDY0LCBhZGRyVG9Vbmxpbms6IEFkZHJlc3MpOiB2b2lkCnVubGlua05mZEFkZHJlc3M6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTIxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpIGFzIEFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglieXRlYyAyIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIG5mZE93bmVyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTIzCgkvLyBhc3NlcnQodGhpcy5pc1YyTmZkQXBwSWRBdXRoZW50aWMobmZkTmFtZSwgbmZkQXBwSWQpLCAncmVmZXJlbmNlZCBORkQgbmFtZS9pZCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGlzVjJOZmRBcHBJZEF1dGhlbnRpYwoKCS8vIHJlZmVyZW5jZWQgTkZEIG5hbWUvaWQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gKmlmMjVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1MjgKCS8vICF0aGlzLmlzRXhwaXJlZCh0aGlzLnNhZmVHbG9iYWxJbnRHZXRFeChuZmRBcHBJZCwgTkZEX0tFWV9FWFBJUkFUSU9OVElNRSkpCglieXRlYyAxMSAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXRFeAoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjUyOQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gbmZkT3duZXIgfHwgdGhpcy50eG4uc2VuZGVyID09PSBhZGRyVG9VbmxpbmssCgkvLyAgICAgICAgICAgICAgICAgJ1NlbmRlciB1bmxpbmtpbmcgbXVzdCBiZSBORkQgb3duZXIgT1IgYWRkcmVzcyByZW1vdmluZyBpdHNlbGYnLAoJLy8gICAgICAgICAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gbmZkT3duZXI6IGFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyBhZGRyVG9Vbmxpbms6IEFkZHJlc3MKCT09Cgl8fAoKKnNraXBfb3IxOgoJLy8gU2VuZGVyIHVubGlua2luZyBtdXN0IGJlIE5GRCBvd25lciBPUiBhZGRyZXNzIHJlbW92aW5nIGl0c2VsZgoJYXNzZXJ0CgoqaWYyNV9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1MzQKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuY2FsbE5GRElzQWRkcmVzc0luRmllbGQobmZkQXBwSWQsIE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQsIGFkZHJUb1VubGluayksCgkvLyAgICAgICAgICAgICAnbmZkIHZlcmlmaWVkIGNhQWxnby4wLmFzIG11c3QgY29udGFpbiBhZGRyZXNzIGJlaW5nIHJlbW92ZWQnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVW5saW5rOiBBZGRyZXNzCglieXRlYyA2IC8vICJ2LmNhQWxnby4wLmFzIgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWNhbGxzdWIgY2FsbE5GRElzQWRkcmVzc0luRmllbGQKCgkvLyBuZmQgdmVyaWZpZWQgY2FBbGdvLjAuYXMgbXVzdCBjb250YWluIGFkZHJlc3MgYmVpbmcgcmVtb3ZlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTM5CgkvLyBhZGRyQm94TmFtZSA9IHRoaXMuZ2V0QWxnb0FkZHJlc3NCb3hOYW1lKHJhd0J5dGVzKGFkZHJUb1VubGluaykpCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVW5saW5rOiBBZGRyZXNzCgljYWxsc3ViIGdldEFsZ29BZGRyZXNzQm94TmFtZQoJZnJhbWVfYnVyeSAxIC8vIGFkZHJCb3hOYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1NDAKCS8vIGFzc2VydCh0aGlzLnJlbW92ZUludEZyb21TZXQoYWRkckJveE5hbWUsIG5mZEFwcElkKSkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBhZGRyQm94TmFtZTogYnl0ZVtdCgljYWxsc3ViIHJlbW92ZUludEZyb21TZXQKCWFzc2VydAoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTQxCgkvLyAhdGhpcy5ib3hlcyhhZGRyQm94TmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgMSAvLyBhZGRyQm94TmFtZTogYnl0ZVtdCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjI2X2VuZAoKCS8vICppZjI2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU0MwoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgIGFtb3VudDogdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxLCBhZGRyQm94TmFtZS5sZW5ndGggKyA4KSwKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTQ0CgkvLyBhbW91bnQ6IHRoaXMuY29zdEZvckJveFN0b3JhZ2UoMSwgYWRkckJveE5hbWUubGVuZ3RoICsgOCkKCWZyYW1lX2RpZyAxIC8vIGFkZHJCb3hOYW1lOiBieXRlW10KCWxlbgoJaW50YyAyIC8vIDgKCSsKCWludGMgMSAvLyAxCgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU0NQoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU0NgoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCXB1c2hieXRlcyAweDYyNmY3ODUyNjU2Njc1NmU2NCAvLyAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjZfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTUxCgkvLyB0aGlzLmNhbGxORkRSZWdpc3RyeUFwcHJvdmVkQWRkcmVzc1JlbW92ZShuZmRBcHBJZCwgTkZEX0ZJRUxEX0NBX1ZFUklGSUVEX1NFVCwgYWRkclRvVW5saW5rLCB0aGlzLnR4bi5zZW5kZXIpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gYWRkclRvVW5saW5rOiBBZGRyZXNzCglieXRlYyA2IC8vICJ2LmNhQWxnby4wLmFzIgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWNhbGxzdWIgY2FsbE5GRFJlZ2lzdHJ5QXBwcm92ZWRBZGRyZXNzUmVtb3ZlCglyZXRzdWIKCi8vIG93bmVyc2hpcEFzc2lnbihzdHJpbmcsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vd25lcnNoaXBBc3NpZ246CgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gbmZkTmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgb3duZXJzaGlwQXNzaWduKHN0cmluZyx1aW50NjQpdm9pZAoJY2FsbHN1YiBvd25lcnNoaXBBc3NpZ24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG93bmVyc2hpcEFzc2lnbihuZmROYW1lOiBzdHJpbmcsIG5mZEFwcElkOiB1aW50NjQpOiB2b2lkCm93bmVyc2hpcEFzc2lnbjoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTU4CgkvLyBhc3NlcnQodGhpcy5pc1ZhbGlkTmZkQXBwSWQobmZkTmFtZSwgbmZkQXBwSWQpLCAncmVmZXJlbmNlZCBORkQgbmFtZS9pZCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGlzVmFsaWROZmRBcHBJZAoKCS8vIHJlZmVyZW5jZWQgTkZEIG5hbWUvaWQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTU5CgkvLyBib3hOYW1lID0gdGhpcy5nZXRBY2NvdW50T3duc05mZEJveE5hbWUoCgkvLyAgICAgICAgICAgICBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKSBhcyBBZGRyZXNzLAoJLy8gICAgICAgICAgICAgbmZkQXBwSWQsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJYnl0ZWMgMiAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpCglhc3NlcnQKCWNhbGxzdWIgZ2V0QWNjb3VudE93bnNOZmRCb3hOYW1lCglmcmFtZV9idXJ5IDAgLy8gYm94TmFtZTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTYzCgkvLyBhc3NlcnQoIXRoaXMuYm94ZXMoYm94TmFtZSkuZXhpc3RzKQoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU2NgoJLy8gdGhpcy5ib3hlcyhib3hOYW1lKS52YWx1ZSA9IG5mZE5hbWUKCWZyYW1lX2RpZyAwIC8vIGJveE5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJYm94X3B1dAoJcmV0c3ViCgovLyBvd25lcnNoaXBDaGFuZ2VkKHN0cmluZyx1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9vd25lcnNoaXBDaGFuZ2VkOgoJLy8gYnV5ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYnV5ZXIpIGZvciBvd25lcnNoaXBDaGFuZ2VkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBzZWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc2VsbGVyKSBmb3Igb3duZXJzaGlwQ2hhbmdlZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIG93bmVyc2hpcENoYW5nZWQoc3RyaW5nLHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBvd25lcnNoaXBDaGFuZ2VkCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBvd25lcnNoaXBDaGFuZ2VkKG5mZE5hbWU6IHN0cmluZywgbmZkQXBwSWQ6IHVpbnQ2NCwgc2VsbGVyOiBBZGRyZXNzLCBidXllcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gVGhpcyBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG93bmVyc2hpcCBvZiBhbiBORkQgKE5vbi1GdW5naWJsZSBEb21haW4pIGNoYW5nZXMuCi8vIEl0IGlzIGNhbGxlZCBieSB0aGUgTkZEIHZpYSB0aGUgcHVyY2hhc2UgbWV0aG9kLiAgSXQgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IFR4bkxhYiBhZG1pbiBmb3Igb2xkZXIgMy4zCi8vIE5GRHMgd2hlbiBpdCBkZXRlY3RzIHB1cmNoYXNlZCBldmVudHMgZm9yIDMuMwovLwovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJZCAtIFRoZSB1bmlxdWUgYXBwbGljYXRpb24gSUQgb2YgdGhlIE5GRC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBzZWxsZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgcHJpb3Igb3duZXIgKHNlbGxlcikgb2YgdGhlIG5mZAovLyBAcGFyYW0ge0FkZHJlc3N9IGJ1eWVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBvd25lciBvZiB0aGUgTkZELgpvd25lcnNoaXBDaGFuZ2VkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vICppZjI3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NTgwCgkvLyBzZWxsZXIgPT09IGJ1eWVyCglmcmFtZV9kaWcgLTMgLy8gc2VsbGVyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYnV5ZXI6IEFkZHJlc3MKCT09CglieiAqaWYyN19lbmQKCgkvLyAqaWYyN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1ODEKCS8vIHJldHVybgoJcmV0c3ViCgoqaWYyN19lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1ODMKCS8vIGFzc2VydCh0aGlzLmlzVjJOZmRBcHBJZEF1dGhlbnRpYyhuZmROYW1lLCBuZmRBcHBJZCksICdyZWZlcmVuY2VkIE5GRCBuYW1lL2lkIG11c3QgYmUgdmFsaWQnKQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWNhbGxzdWIgaXNWMk5mZEFwcElkQXV0aGVudGljCgoJLy8gcmVmZXJlbmNlZCBORkQgbmFtZS9pZCBtdXN0IGJlIHZhbGlkCglhc3NlcnQKCgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU4NAoJLy8gKEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikgYXMgYnl0ZXMpID09PSAnMy4zJwoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWJ5dGVjIDkgLy8gImkudmVyIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikKCWFzc2VydAoJcHVzaGJ5dGVzIDB4MzMyZTMzIC8vICIzLjMiCgk9PQoJYnogKmlmMjhfZWxzZQoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU4NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNUeG5MYWIodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4XSksCgkvLyAgICAgICAgICAgICAgICAgJ29ubHkgdHhubGFiIGNhbiBjYWxsIHRoaXMgbWV0aG9kIHRvIGJhY2tmaWxsIG93bmVyc2hpcCwgMy40KyBoYW5kbGVzIGl0IGJ5IGNhbGxpbmcgZnJvbSB0aGUgbmZkIGl0c2VsZicsCgkvLyAgICAgICAgICAgICApCgl0eG4gR3JvdXBJbmRleAoJY2FsbHN1YiBpc1R4bkxhYgoKCS8vIG9ubHkgdHhubGFiIGNhbiBjYWxsIHRoaXMgbWV0aG9kIHRvIGJhY2tmaWxsIG93bmVyc2hpcCwgMy40KyBoYW5kbGVzIGl0IGJ5IGNhbGxpbmcgZnJvbSB0aGUgbmZkIGl0c2VsZgoJYXNzZXJ0CgliICppZjI4X2VuZAoKKmlmMjhfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU5MgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuYWRkcmVzcykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09Cglhc3NlcnQKCippZjI4X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU5NQoJLy8gc2VsbGVyQm94TmFtZSA9IHRoaXMuZ2V0QWNjb3VudE93bnNOZmRCb3hOYW1lKHNlbGxlciwgbmZkQXBwSWQpCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIHNlbGxlcjogQWRkcmVzcwoJY2FsbHN1YiBnZXRBY2NvdW50T3duc05mZEJveE5hbWUKCWZyYW1lX2J1cnkgMCAvLyBzZWxsZXJCb3hOYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1OTYKCS8vIGJ1eWVyQm94TmFtZSA9IHRoaXMuZ2V0QWNjb3VudE93bnNOZmRCb3hOYW1lKGJ1eWVyLCBuZmRBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gYnV5ZXI6IEFkZHJlc3MKCWNhbGxzdWIgZ2V0QWNjb3VudE93bnNOZmRCb3hOYW1lCglmcmFtZV9idXJ5IDEgLy8gYnV5ZXJCb3hOYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo1OTcKCS8vIHRoaXMuYm94ZXMoc2VsbGVyQm94TmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAwIC8vIHNlbGxlckJveE5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjU5OAoJLy8gdGhpcy5ib3hlcyhidXllckJveE5hbWUpLnZhbHVlID0gbmZkTmFtZQoJZnJhbWVfZGlnIDEgLy8gYnV5ZXJCb3hOYW1lOiBieXRlW10KCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWJveF9wdXQKCXJldHN1YgoKLy8gc2V0QWRkcmVzc1ByaW1hcnlOZmQoc3RyaW5nLHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9zZXRBZGRyZXNzUHJpbWFyeU5mZDoKCS8vIGFkZHJCZWluZ01vZGlmaWVkOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJCZWluZ01vZGlmaWVkKSBmb3Igc2V0QWRkcmVzc1ByaW1hcnlOZmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5mZEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRBZGRyZXNzUHJpbWFyeU5mZChzdHJpbmcsdWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBzZXRBZGRyZXNzUHJpbWFyeU5mZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc2V0QWRkcmVzc1ByaW1hcnlOZmQobmZkTmFtZTogc3RyaW5nLCBuZmRBcHBJZDogdWludDY0LCBhZGRyQmVpbmdNb2RpZmllZDogQWRkcmVzcyk6IHZvaWQKLy8KLy8gTWFrZXMgdGhlIHNwZWNpZmllZCBORkQgdGhlICdmaXJzdCcgTkZEIGluIHRoZSByZXZlcnNlLWFkZHJlc3Mgc2V0IHNvIGl0cyB0aGUgcHJpbWFyeSBORkQgZm9yIHRoaXMgYWRkcmVzcy4KLy8gVGhlIE5GRCBtdXN0IGJlIHZhbGlkLCBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhZGRyZXNzIChvciBuZmQgb3duZXIgaWYgdmF1bHQpLiAgVGhlIE5GRCB3b3VsZG4ndCBhbHJlYWR5IGJlCi8vIGluIHRoZSByZXZlcnNlLWxvb2t1cCBzZXQgaWYgaXQgd2Fzbid0IGFscmVhZHkgdmFsaWQuCi8vIEBwYXJhbSBuZmROYW1lCi8vIEBwYXJhbSBuZmRBcHBJZAovLyBAcGFyYW0gYWRkckJlaW5nTW9kaWZpZWQKc2V0QWRkcmVzc1ByaW1hcnlOZmQ6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjYxMAoJLy8gYXNzZXJ0KHRoaXMuaXNWMk5mZEFwcElkQXV0aGVudGljKG5mZE5hbWUsIG5mZEFwcElkKSwgJ3JlZmVyZW5jZWQgTkZEIG5hbWUvaWQgbXVzdCBiZSB2YWxpZCcpCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBpc1YyTmZkQXBwSWRBdXRoZW50aWMKCgkvLyByZWZlcmVuY2VkIE5GRCBuYW1lL2lkIG11c3QgYmUgdmFsaWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjYxMQoJLy8gbmZkT3duZXIgPSBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKSBhcyBBZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJYnl0ZWMgMiAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBuZmRPd25lcjogYWRkcmVzcwoKCS8vICppZjI5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjE2CgkvLyBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5hZGRyZXNzID09PSBhZGRyQmVpbmdNb2RpZmllZAoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFkZHJCZWluZ01vZGlmaWVkOiBBZGRyZXNzCgk9PQoJYnogKmlmMjlfZWxzZQoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjYxNwoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gbmZkT3duZXIsICdpZiBjaGFuZ2luZyBwcmltYXJ5IG5mZCBmb3IgdmF1bHQgYWNjb3VudCwgc2VuZGVyIG11c3QgYmUgTkZEIG93bmVyJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIG5mZE93bmVyOiBhZGRyZXNzCgk9PQoKCS8vIGlmIGNoYW5naW5nIHByaW1hcnkgbmZkIGZvciB2YXVsdCBhY2NvdW50LCBzZW5kZXIgbXVzdCBiZSBORkQgb3duZXIKCWFzc2VydAoJYiAqaWYyOV9lbmQKCippZjI5X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2MjAKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IGFkZHJCZWluZ01vZGlmaWVkLAoJLy8gICAgICAgICAgICAgICAgICdhcHAgY2FsbCBzZW5kZXIgbXVzdCBtYXRjaCBhZGRyZXNzIGJlaW5nIHVwZGF0ZWQgdG8gY2hhbmdlIHByaW1hcnkgTkZEJywKCS8vICAgICAgICAgICAgICkKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyBhZGRyQmVpbmdNb2RpZmllZDogQWRkcmVzcwoJPT0KCgkvLyBhcHAgY2FsbCBzZW5kZXIgbXVzdCBtYXRjaCBhZGRyZXNzIGJlaW5nIHVwZGF0ZWQgdG8gY2hhbmdlIHByaW1hcnkgTkZECglhc3NlcnQKCippZjI5X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjYyOAoJLy8gdGhpcy5maW5kSW50QW5kU2V0Rmlyc3QodGhpcy5nZXRBbGdvQWRkcmVzc0JveE5hbWUodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVszXSBhcyBieXRlcyksIG5mZEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMwoJY2FsbHN1YiBnZXRBbGdvQWRkcmVzc0JveE5hbWUKCWNhbGxzdWIgZmluZEludEFuZFNldEZpcnN0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjMwCgkvLyB0aGlzLm5mZFJlZ2lzdHJ5X2FkZHJlc3NQcmltYXJ5TmZkQ2hhbmdlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IG5mZEFwcElkLAoJLy8gICAgICAgICAgICAgbmFtZTogbmZkTmFtZSwKCS8vICAgICAgICAgICAgIGFkZHJlc3M6IGFkZHJCZWluZ01vZGlmaWVkLAoJLy8gICAgICAgICB9KQoJcHVzaGJ5dGVzIDB4NTE3MmNmMDEgLy8gbmZkUmVnaXN0cnlfYWRkcmVzc1ByaW1hcnlOZmRDaGFuZ2VkKHVpbnQ2NCxzdHJpbmcsYWRkcmVzcykKCWJ5dGVjIDAgLy8gIGluaXRpYWwgaGVhZAoJYnl0ZWMgMCAvLyAgaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDJhIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMyAvLyBhZGRyQmVpbmdNb2RpZmllZDogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyB1cGdyYWRlTmZkKHN0cmluZylzdHJpbmcKKmFiaV9yb3V0ZV91cGdyYWRlTmZkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxIC8vIDB4MTUxZjdjNzUKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGdyYWRlTmZkKHN0cmluZylzdHJpbmcKCWNhbGxzdWIgdXBncmFkZU5mZAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGdyYWRlTmZkKG5mZE5hbWU6IHN0cmluZyk6IHN0cmluZwp1cGdyYWRlTmZkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY0MAoJLy8gbmZkQXBwSWQgPSB0aGlzLmdldE5hbWVBcHBJZChuZmROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXROYW1lQXBwSWQKCWZyYW1lX2J1cnkgMCAvLyBuZmRBcHBJZDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjQxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpIGFzIEFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIG5mZEFwcElkOiB1aW50NjQKCWJ5dGVjIDIgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2NDIKCS8vIGFzc2VydCgoQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKSBhcyBieXRlcykgPT09IG5mZE5hbWUpCglmcmFtZV9kaWcgMCAvLyBuZmRBcHBJZDogdWludDY0CglieXRlYyAxOSAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfTkFNRSkKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY0MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSBuZmRPd25lciB8fCB0aGlzLmlzVHhuTGFiKHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleF0pLAoJLy8gICAgICAgICAgICAgJ29ubHkgTkZEIG93bmVyIG9yIFR4bkxhYiBjYW4gdXBncmFkZSBORkQnLAoJLy8gICAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yMgoJdHhuIEdyb3VwSW5kZXgKCWNhbGxzdWIgaXNUeG5MYWIKCXx8Cgoqc2tpcF9vcjI6CgkvLyBvbmx5IE5GRCBvd25lciBvciBUeG5MYWIgY2FuIHVwZ3JhZGUgTkZECglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2NDkKCS8vIGFzc2VydChBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZUV4aXN0cyhORkRfS0VZX0VYUElSQVRJT05USU1FKSkKCWZyYW1lX2RpZyAwIC8vIG5mZEFwcElkOiB1aW50NjQKCWJ5dGVjIDExIC8vICJpLmV4cGlyYXRpb25UaW1lIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjUyCgkvLyBjdXJyZW50Q29udHJhY3RWZXIgPSB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DVVJSRU5UX0NPTlRSQUNUKS52YWx1ZSBhcyBieXRlcwoJYnl0ZWMgNSAvLyAiY3VycmVudCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0NVUlJFTlRfQ09OVFJBQ1QpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBjdXJyZW50Q29udHJhY3RWZXI6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY1MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgKEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikgYXMgYnl0ZXMpICE9PSBjdXJyZW50Q29udHJhY3RWZXIsCgkvLyAgICAgICAgICAgICAnY29udHJhY3QgYWxyZWFkeSBhdCB0aGlzIHZlcnNpb24nLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgMCAvLyBuZmRBcHBJZDogdWludDY0CglieXRlYyA5IC8vICJpLnZlciIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX1ZFUlNJT04pCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGN1cnJlbnRDb250cmFjdFZlcjogYnl0ZVtdCgkhPQoKCS8vIGNvbnRyYWN0IGFscmVhZHkgYXQgdGhpcyB2ZXJzaW9uCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2NTcKCS8vIGFwcHJvdlByb2dOYW1lID0gY29uY2F0KAoJLy8gICAgICAgICAgICAgUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0FQUFJPVkFMX05BTUVQUkVGSVgsCgkvLyAgICAgICAgICAgICB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DVVJSRU5UX0NPTlRSQUNUKS52YWx1ZSBhcyBieXRlcywKCS8vICAgICAgICAgKQoJYnl0ZWMgOCAvLyAiY29udHJhY3Q6QToiCglieXRlYyA1IC8vICJjdXJyZW50IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhSRUdJU1RSWV9DT05UUkFDVF9CT1hfQ1VSUkVOVF9DT05UUkFDVCkudmFsdWUKCWFzc2VydAoJY29uY2F0CglmcmFtZV9idXJ5IDMgLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY2MQoJLy8gY2xlYXJQcm9nID0gdGhpcy5ib3hlcyhjb25jYXQoUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0NMRUFSX05BTUVQUkVGSVgsIGN1cnJlbnRDb250cmFjdFZlcikpLnZhbHVlIGFzIGJ5dGVzCglieXRlYyAxMiAvLyAiY29udHJhY3Q6QzoiCglmcmFtZV9kaWcgMiAvLyBjdXJyZW50Q29udHJhY3RWZXI6IGJ5dGVbXQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGNvbmNhdChSRUdJU1RSWV9DT05UUkFDVF9CT1hfQ0xFQVJfTkFNRVBSRUZJWCwgY3VycmVudENvbnRyYWN0VmVyKSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSA0IC8vIGNsZWFyUHJvZzogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjYyCgkvLyBhcHByb3ZQcm9nTGVuZ3RoID0gdGhpcy5ib3hlcyhhcHByb3ZQcm9nTmFtZSkuc2l6ZQoJZnJhbWVfZGlnIDMgLy8gYXBwcm92UHJvZ05hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhhcHByb3ZQcm9nTmFtZSkuc2l6ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDUgLy8gYXBwcm92UHJvZ0xlbmd0aDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjY0CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZESW5zdGFuY2UucHJvdG90eXBlLnVwZGF0ZUFwcGxpY2F0aW9uPih7CgkvLyAgICAgICAgICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5VcGRhdGVBcHBsaWNhdGlvbiwKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLAoJLy8gICAgICAgICAgICAgbWV0aG9kQXJnczogW2N1cnJlbnRDb250cmFjdFZlcl0sCgkvLyAgICAgICAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgICAgICAgICB0aGlzLmJveGVzKGFwcHJvdlByb2dOYW1lKS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYm94ZXMoYXBwcm92UHJvZ05hbWUpLmV4dHJhY3QoNDA5NiwgYXBwcm92UHJvZ0xlbmd0aCAtIDQwOTYpLAoJLy8gICAgICAgICAgICAgXSwKCS8vICAgICAgICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjbGVhclByb2csCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDMgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDE3NDc0MDViIC8vIG1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oc3RyaW5nKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY2NQoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uVXBkYXRlQXBwbGljYXRpb24KCWludGMgOCAvLyAgVXBkYXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjY2CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NjY3CgkvLyBtZXRob2RBcmdzOiBbY3VycmVudENvbnRyYWN0VmVyXQoJZnJhbWVfZGlnIDIgLy8gY3VycmVudENvbnRyYWN0VmVyOiBieXRlW10KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY2OAoJLy8gYXBwcm92YWxQcm9ncmFtOiBbCgkvLyAgICAgICAgICAgICAgICAgdGhpcy5ib3hlcyhhcHByb3ZQcm9nTmFtZSkuZXh0cmFjdCgwLCA0MDk2KSwKCS8vICAgICAgICAgICAgICAgICB0aGlzLmJveGVzKGFwcHJvdlByb2dOYW1lKS5leHRyYWN0KDQwOTYsIGFwcHJvdlByb2dMZW5ndGggLSA0MDk2KSwKCS8vICAgICAgICAgICAgIF0KCWZyYW1lX2RpZyAzIC8vIGFwcHJvdlByb2dOYW1lOiBieXRlW10KCWludGMgMCAvLyAwCglpbnRjIDkgLy8gNDA5NgoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCWZyYW1lX2RpZyAzIC8vIGFwcHJvdlByb2dOYW1lOiBieXRlW10KCWludGMgOSAvLyA0MDk2CglmcmFtZV9kaWcgNSAvLyBhcHByb3ZQcm9nTGVuZ3RoOiB1aW50NjQKCWludGMgOSAvLyA0MDk2CgktCglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY3MgoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IGNsZWFyUHJvZwoJZnJhbWVfZGlnIDQgLy8gY2xlYXJQcm9nOiBieXRlW10KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Njc0CgkvLyByZXR1cm4gY3VycmVudENvbnRyYWN0VmVyCglmcmFtZV9kaWcgMiAvLyBjdXJyZW50Q29udHJhY3RWZXI6IGJ5dGVbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDUKCXJldHN1YgoKLy8gaXNWYWxpZE5mZEFwcElkKHN0cmluZyx1aW50NjQpYm9vbAoqYWJpX3JvdXRlX2lzVmFsaWROZmRBcHBJZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMSAvLyAweDE1MWY3Yzc1CgoJLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGlzVmFsaWROZmRBcHBJZChzdHJpbmcsdWludDY0KWJvb2wKCWNhbGxzdWIgaXNWYWxpZE5mZEFwcElkCglieXRlYyAxNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBpc1ZhbGlkTmZkQXBwSWQobmZkTmFtZTogc3RyaW5nLCBuZmRBcHBJZDogdWludDY0KTogYm9vbGVhbgppc1ZhbGlkTmZkQXBwSWQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY4MgoJLy8gYm94TmFtZSA9IHRoaXMuZ2V0Qm94TmFtZShuZmROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXRCb3hOYW1lCglmcmFtZV9idXJ5IDAgLy8gYm94TmFtZTogYnl0ZVtdCgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2ODQKCS8vICF0aGlzLmJveGVzKGJveE5hbWUpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY4NQoJLy8gcmV0dXJuIHRoaXMuaXNWMU5GRElEQXV0aGVudGljKG5mZE5hbWUsIG5mZEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWNhbGxzdWIgaXNWMU5GRElEQXV0aGVudGljCgliICppc1ZhbGlkTmZkQXBwSWQqcmV0dXJuCgoqaWYzMF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2ODcKCS8vIHJldHVybiB0aGlzLmlzVjJOZmRBcHBJZEF1dGhlbnRpYyhuZmROYW1lLCBuZmRBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGlzVjJOZmRBcHBJZEF1dGhlbnRpYwoKKmlzVmFsaWROZmRBcHBJZCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0TmFtZUFwcElkKHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9nZXROYW1lQXBwSWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDEgLy8gMHgxNTFmN2M3NQoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGdldE5hbWVBcHBJZChzdHJpbmcpdWludDY0CgljYWxsc3ViIGdldE5hbWVBcHBJZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldE5hbWVBcHBJZChuZmROYW1lOiBzdHJpbmcpOiB1aW50NjQKZ2V0TmFtZUFwcElkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY5MgoJLy8gYm94TmFtZSA9IHRoaXMuZ2V0Qm94TmFtZShuZmROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXRCb3hOYW1lCglmcmFtZV9idXJ5IDAgLy8gYm94TmFtZTogYnl0ZVtdCgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2OTMKCS8vICF0aGlzLmJveGVzKGJveE5hbWUpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY5NAoJLy8gcmV0dXJuIDAKCWludGMgMCAvLyAwCgliICpnZXROYW1lQXBwSWQqcmV0dXJuCgoqaWYzMV9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo2OTcKCS8vIGJveERhdGEgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIGJveERhdGE6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjY5OAoJLy8gYXNzZXJ0KGJveERhdGEubGVuZ3RoID09PSAxNikKCWZyYW1lX2RpZyAxIC8vIGJveERhdGE6IGJ5dGVbXQoJbGVuCglpbnRjIDEwIC8vIDE2Cgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Njk5CgkvLyByZXR1cm4gZXh0cmFjdFVpbnQ2NChib3hEYXRhLCA4KQoJZnJhbWVfZGlnIDEgLy8gYm94RGF0YTogYnl0ZVtdCglpbnRjIDIgLy8gOAoJZXh0cmFjdF91aW50NjQKCipnZXROYW1lQXBwSWQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBnZXRBZGRyZXNzQXBwSWRzKGFkZHJlc3MpdWludDY0W10KKmFiaV9yb3V0ZV9nZXRBZGRyZXNzQXBwSWRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxIC8vIDB4MTUxZjdjNzUKCgkvLyBsb29rdXBBZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvb2t1cEFkZHJlc3MpIGZvciBnZXRBZGRyZXNzQXBwSWRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldEFkZHJlc3NBcHBJZHMoYWRkcmVzcyl1aW50NjRbXQoJY2FsbHN1YiBnZXRBZGRyZXNzQXBwSWRzCglkdXAKCWxlbgoJaW50YyAyIC8vIDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRBZGRyZXNzQXBwSWRzKGxvb2t1cEFkZHJlc3M6IEFkZHJlc3MpOiB1aW50NjRbXQpnZXRBZGRyZXNzQXBwSWRzOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjcwMwoJLy8gcmV0RGF0YTogdWludDY0W10gPSBbXQoJYnl0ZWMgMCAvLyAweAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IHVpbnQ2NFtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzA0CgkvLyBib3hOYW1lID0gdGhpcy5nZXRBbGdvQWRkcmVzc0JveE5hbWUocmF3Qnl0ZXMobG9va3VwQWRkcmVzcykpCglmcmFtZV9kaWcgLTEgLy8gbG9va3VwQWRkcmVzczogQWRkcmVzcwoJY2FsbHN1YiBnZXRBbGdvQWRkcmVzc0JveE5hbWUKCWZyYW1lX2J1cnkgMSAvLyBib3hOYW1lOiBieXRlW10KCgkvLyAqaWYzMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjcwNQoJLy8gIXRoaXMuYm94ZXMoYm94TmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzA2CgkvLyByZXR1cm4gcmV0RGF0YQoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogdWludDY0W10KCWIgKmdldEFkZHJlc3NBcHBJZHMqcmV0dXJuCgoqaWYzMl9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MDgKCS8vIGJveERhdGEgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIGJveERhdGE6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjcwOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsZW4oYm94RGF0YSk7IGkgKz0gOCkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MDkKCS8vIGkgPCBsZW4oYm94RGF0YSkKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gYm94RGF0YTogYnl0ZVtdCglsZW4KCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MTAKCS8vIHZhbCA9IGJ0b2koZXh0cmFjdDMoYm94RGF0YSwgaSwgOCkpCglmcmFtZV9kaWcgMiAvLyBib3hEYXRhOiBieXRlW10KCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDQgLy8gdmFsOiB1aW50NjQKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjcxMQoJLy8gdmFsICE9PSAwCglmcmFtZV9kaWcgNCAvLyB2YWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYzM19lbmQKCgkvLyAqaWYzM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MTIKCS8vIHJldERhdGEucHVzaCh2YWwpCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiB1aW50NjRbXQoJZnJhbWVfZGlnIDQgLy8gdmFsOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IHVpbnQ2NFtdCgoqaWYzM19lbmQ6CgoqZm9yXzBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MDkKCS8vIGkgKz0gOAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3MTUKCS8vIHJldHVybiByZXREYXRhCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiB1aW50NjRbXQoKKmdldEFkZHJlc3NBcHBJZHMqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBuZmRDb250cmFjdEluaXQoc3RyaW5nLHVpbnQ2NCxieXRlW10pdm9pZAoqYWJpX3JvdXRlX25mZENvbnRyYWN0SW5pdDoKCS8vIGNsZWFyQ29kZTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZlcnNpb246IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIG5mZENvbnRyYWN0SW5pdChzdHJpbmcsdWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIG5mZENvbnRyYWN0SW5pdAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbmZkQ29udHJhY3RJbml0KHZlcnNpb246IHN0cmluZywgc2l6ZTogdWludDY0LCBjbGVhckNvZGU6IGJ5dGVzKTogdm9pZAovLwovLyBJbml0aWFsaXplcyB0aGUgTkZEIGNvbnRyYWN0IGJ5dGVjb2RlIGludG8gdGhlIHJlZ2lzdHJ5Ci8vCi8vIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gVGhlIHZlcnNpb24gb2YgdGhlIGNvbnRyYWN0LgovLyBAcGFyYW0ge3VpbnQ2NH0gc2l6ZSAtIGV4YWN0IGJ5dGUgc2l6ZSBvZiBjb250cmFjdCB0byBsb2FkCi8vIEBwYXJhbSB7dWludDY0fSBjbGVhckNvZGUgLSBieXRlcyBvZiBjbGVhciBjb2RlCm5mZENvbnRyYWN0SW5pdDoKCXByb3RvIDMgMAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjcyNgoJLy8gYXNzZXJ0KHRoaXMuaXNUeG5MYWIodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4XSkpCgl0eG4gR3JvdXBJbmRleAoJY2FsbHN1YiBpc1R4bkxhYgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzI5CgkvLyB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9BUFBST1ZBTF9OQU1FUFJFRklYICsgdmVyc2lvbikuY3JlYXRlKHNpemUpCglieXRlYyA4IC8vICJjb250cmFjdDpBOiIKCWZyYW1lX2RpZyAtMSAvLyB2ZXJzaW9uOiBzdHJpbmcKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIHNpemU6IHVpbnQ2NAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzMwCgkvLyB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DTEVBUl9OQU1FUFJFRklYICsgdmVyc2lvbikudmFsdWUgPSBjbGVhckNvZGUKCWJ5dGVjIDEyIC8vICJjb250cmFjdDpDOiIKCWZyYW1lX2RpZyAtMSAvLyB2ZXJzaW9uOiBzdHJpbmcKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIGNsZWFyQ29kZTogYnl0ZXMKCWJveF9wdXQKCXJldHN1YgoKLy8gbmZkQ29udHJhY3RMb2FkKHN0cmluZyx1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV9uZmRDb250cmFjdExvYWQ6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2ZXJzaW9uOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBuZmRDb250cmFjdExvYWQoc3RyaW5nLHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiBuZmRDb250cmFjdExvYWQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG5mZENvbnRyYWN0TG9hZCh2ZXJzaW9uOiBzdHJpbmcsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8gTG9hZHMgY29udHJhY3QgZGF0YSBpbnRvIHRoZSBgUkVHSVNUUllfQ09OVFJBQ1RfQk9YX0FQUFJPVkFMX05BTUVQUkVGSVggKyB2ZXJzaW9uYCBib3ggYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuCi8vCi8vIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gVGhlIHZlcnNpb24gb2YgdGhlIGNvbnRyYWN0LgovLyBAcGFyYW0ge3VpbnQ2NH0gb2Zmc2V0IC0gVGhlIG9mZnNldCBhdCB3aGljaCB0byByZXBsYWNlIHRoZSBjb250cmFjdCBkYXRhIHdpdGhpbiB0aGUgYm94LgovLyBAcGFyYW0ge2J5dGVzfSBkYXRhIC0gVGhlIGNvbnRyYWN0IGRhdGEgdG8gYmUgbG9hZGVkLgpuZmRDb250cmFjdExvYWQ6Cglwcm90byAzIDAKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NDEKCS8vIGFzc2VydCh0aGlzLmlzVHhuTGFiKHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleF0pKQoJdHhuIEdyb3VwSW5kZXgKCWNhbGxzdWIgaXNUeG5MYWIKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjc0MgoJLy8gdGhpcy5ib3hlcyhSRUdJU1RSWV9DT05UUkFDVF9CT1hfQVBQUk9WQUxfTkFNRVBSRUZJWCArIHZlcnNpb24pLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJYnl0ZWMgOCAvLyAiY29udHJhY3Q6QToiCglmcmFtZV9kaWcgLTEgLy8gdmVyc2lvbjogc3RyaW5nCgljb25jYXQKCWZyYW1lX2RpZyAtMiAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBuZmRDb250cmFjdENvbW1pdChzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX25mZENvbnRyYWN0Q29tbWl0OgoJLy8gdmVyc2lvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgbmZkQ29udHJhY3RDb21taXQoc3RyaW5nKXZvaWQKCWNhbGxzdWIgbmZkQ29udHJhY3RDb21taXQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG5mZENvbnRyYWN0Q29tbWl0KHZlcnNpb246IHN0cmluZyk6IHZvaWQKLy8KLy8gQ29tbWl0IGEgbmV3IHZlcnNpb24gb2YgdGhlIGNvbnRyYWN0LgovLwovLyBAcGFyYW0ge3N0cmluZ30gdmVyc2lvbiAtIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgY29udHJhY3QgdG8gYmUgY29tbWl0dGVkLgpuZmRDb250cmFjdENvbW1pdDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjc1MQoJLy8gYXNzZXJ0KHRoaXMuaXNUeG5MYWIodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4XSkpCgl0eG4gR3JvdXBJbmRleAoJY2FsbHN1YiBpc1R4bkxhYgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzLmJveGVzKFJFR0lTVFJZX0NPTlRSQUNUX0JPWF9DVVJSRU5UX0NPTlRSQUNUKS52YWx1ZSA9IHZlcnNpb24KCWJ5dGVjIDUgLy8gImN1cnJlbnQiCglmcmFtZV9kaWcgLTEgLy8gdmVyc2lvbjogc3RyaW5nCglib3hfcHV0CglyZXRzdWIKCi8vIHVzZEluTWljcm9BbGdvKHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91c2RJbk1pY3JvQWxnbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMSAvLyAweDE1MWY3Yzc1CgoJLy8gdXNkQ29zdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1c2RJbk1pY3JvQWxnbyh1aW50NjQpdWludDY0CgljYWxsc3ViIHVzZEluTWljcm9BbGdvCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXNkSW5NaWNyb0FsZ28odXNkQ29zdDogdWludDY0KTogdWludDY0CnVzZEluTWljcm9BbGdvOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMgoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjc1OAoJLy8gdHMgPSBBcHBJRC5mcm9tVWludDY0KHRoaXMuYWxnb1VzZE9yYWNsZUFwcElkKS5nbG9iYWxTdGF0ZSgndHMnKSBhcyB1aW50NjQKCWludGMgMTMgLy8gVE1QTF9hbGdvVXNkT3JhY2xlQXBwSWQKCXB1c2hieXRlcyAweDc0NzMgLy8gInRzIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodGhpcy5hbGdvVXNkT3JhY2xlQXBwSWQpLmdsb2JhbFN0YXRlKCd0cycpCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyB0czogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzU5CgkvLyBkZWNpbWFscyA9IEFwcElELmZyb21VaW50NjQodGhpcy5hbGdvVXNkT3JhY2xlQXBwSWQpLmdsb2JhbFN0YXRlKCdkZWNpbWFscycpIGFzIHVpbnQ2NAoJaW50YyAxMyAvLyBUTVBMX2FsZ29Vc2RPcmFjbGVBcHBJZAoJcHVzaGJ5dGVzIDB4NjQ2NTYzNjk2ZDYxNmM3MyAvLyAiZGVjaW1hbHMiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmFsZ29Vc2RPcmFjbGVBcHBJZCkuZ2xvYmFsU3RhdGUoJ2RlY2ltYWxzJykKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIGRlY2ltYWxzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NjAKCS8vIHByaWNlID0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmFsZ29Vc2RPcmFjbGVBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ByaWNlJykgYXMgdWludDY0CglpbnRjIDEzIC8vIFRNUExfYWxnb1VzZE9yYWNsZUFwcElkCglwdXNoYnl0ZXMgMHg3MDcyNjk2MzY1IC8vICJwcmljZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHRoaXMuYWxnb1VzZE9yYWNsZUFwcElkKS5nbG9iYWxTdGF0ZSgncHJpY2UnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDIgLy8gcHJpY2U6IHVpbnQ2NAoKCS8vICppZjM0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCAtIHRzID4gODY0MDAKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAwIC8vIHRzOiB1aW50NjQKCS0KCWludGMgMTQgLy8gODY0MDAKCT4KCWJ6ICppZjM0X2VuZAoKCS8vICppZjM0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjc2MwoJLy8gZGVjaW1hbHMgPSAyCglpbnRjIDUgLy8gMgoJZnJhbWVfYnVyeSAxIC8vIGRlY2ltYWxzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NjQKCS8vIHByaWNlID0gMzMKCXB1c2hpbnQgMzMKCWZyYW1lX2J1cnkgMiAvLyBwcmljZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzY1CgkvLyBsb2coJ29yYWNsZSA+MjRociB1c2luZyAuMzNjJykKCXB1c2hieXRlcyAweDZmNzI2MTYzNmM2NTIwM2UzMjM0Njg3MjIwNzU3MzY5NmU2NzIwMmUzMzMzNjMgLy8gIm9yYWNsZSA+MjRociB1c2luZyAuMzNjIgoJbG9nCgoqaWYzNF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3NjkKCS8vIHJldHVybiAoKHVzZENvc3QgKiAxMF8wMDAgKiB0aGlzLnBvdzEwKGRlY2ltYWxzKSkgLyBwcmljZSAvIDEwXzAwMCkgKiAxMF8wMDAKCWZyYW1lX2RpZyAtMSAvLyB1c2RDb3N0OiB1aW50NjQKCWludGMgMTYgLy8gMTBfMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBkZWNpbWFsczogdWludDY0CgljYWxsc3ViIHBvdzEwCgkqCglmcmFtZV9kaWcgMiAvLyBwcmljZTogdWludDY0CgkvCglpbnRjIDE2IC8vIDEwXzAwMAoJLwoJaW50YyAxNiAvLyAxMF8wMDAKCSoKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvc3RUb0FkZFRvQWRkcmVzcyhhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2Nvc3RUb0FkZFRvQWRkcmVzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMSAvLyAweDE1MWY3Yzc1CgoJLy8gbG9va3VwQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChsb29rdXBBZGRyZXNzKSBmb3IgY29zdFRvQWRkVG9BZGRyZXNzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGNvc3RUb0FkZFRvQWRkcmVzcyhhZGRyZXNzKXVpbnQ2NAoJY2FsbHN1YiBjb3N0VG9BZGRUb0FkZHJlc3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjb3N0VG9BZGRUb0FkZHJlc3MobG9va3VwQWRkcmVzczogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBjb3N0IHRvIGFkZCBhbiBORkQgdG8gdGhlIHJldmVyc2UtbG9va3VwIGRhdGEKLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBsb29rdXBBZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gYWRkIHRoZSBORkQgYXBwIGlkIHRvCmNvc3RUb0FkZFRvQWRkcmVzczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6Nzc4CgkvLyBib3hOYW1lID0gdGhpcy5nZXRBbGdvQWRkcmVzc0JveE5hbWUocmF3Qnl0ZXMobG9va3VwQWRkcmVzcykpCglmcmFtZV9kaWcgLTEgLy8gbG9va3VwQWRkcmVzczogQWRkcmVzcwoJY2FsbHN1YiBnZXRBbGdvQWRkcmVzc0JveE5hbWUKCWZyYW1lX2J1cnkgMCAvLyBib3hOYW1lOiBieXRlW10KCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjc3OQoJLy8gIXRoaXMuYm94ZXMoYm94TmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgMCAvLyBib3hOYW1lOiBieXRlW10KCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmMzVfZW5kCgoJLy8gKmlmMzVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6NzgxCgkvLyByZXR1cm4gdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxLCBib3hOYW1lLmxlbmd0aCArIDgpCglmcmFtZV9kaWcgMCAvLyBib3hOYW1lOiBieXRlW10KCWxlbgoJaW50YyAyIC8vIDgKCSsKCWludGMgMSAvLyAxCgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCgliICpjb3N0VG9BZGRUb0FkZHJlc3MqcmV0dXJuCgoqaWYzNV9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo3ODQKCS8vIHJldHVybiBTQ0JPWF9QRVJCWVRFICogOAoJcHVzaGludCAzMjAwCgoqY29zdFRvQWRkVG9BZGRyZXNzKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc1R4bkxhYih0eG46IFR4bik6IGJvb2xlYW4KaXNUeG5MYWI6Cglwcm90byAxIDEKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4MTQKCS8vIHJldHVybiAoCgkvLyAgICAgICAgICAgICB0eG4uc2VuZGVyLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQodGhpcy5hZG1pbkFzYUlkKSkgPT09IDEgJiYKCS8vICAgICAgICAgICAgIHR4bi5jbG9zZVJlbWFpbmRlclRvID09PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmCgkvLyAgICAgICAgICAgICB0eG4ucmVrZXlUbyA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gdHhuOiBUeG4KCWd0eG5zIFNlbmRlcgoJaW50YyAyNyAvLyBUTVBMX2FkbWluQXNhSWQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglpbnRjIDEgLy8gMQoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTUKCWZyYW1lX2RpZyAtMSAvLyB0eG46IFR4bgoJZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDE1OgoJZHVwCglieiAqc2tpcF9hbmQxNgoJZnJhbWVfZGlnIC0xIC8vIHR4bjogVHhuCglndHhucyBSZWtleVRvCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMTY6CglyZXRzdWIKCi8vIGdldE5mZEluc3RhbmNlTWJyKCk6IHVpbnQ2NApnZXROZmRJbnN0YW5jZU1icjoKCXByb3RvIDAgMQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjgyMwoJLy8gcmV0dXJuIHRoaXMubWluQmFsYW5jZUZvckFjY291bnQoMCwgMCwgMSwgMCwgMCwgMCwgMCkKCWludGMgMCAvLyAwCglkdXBuIDMKCWludGMgMSAvLyAxCglpbnRjIDAgLy8gMAoJZHVwCgljYWxsc3ViIG1pbkJhbGFuY2VGb3JBY2NvdW50CglyZXRzdWIKCi8vIGNhbGxORkRJc0FkZHJlc3NJbkZpZWxkKG5mZEFwcElkOiB1aW50NjQsIGZpZWxkTmFtZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogYm9vbGVhbgpjYWxsTkZESXNBZGRyZXNzSW5GaWVsZDoKCXByb3RvIDMgMQoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODI3CgkvLyB0aGlzLmlzUHJlVjMobmZkQXBwSWQpCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJY2FsbHN1YiBpc1ByZVYzCglieiAqaWYzNl9lbmQKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4MjkKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKSwKCS8vICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFtORkRfQ0FMTF9JU19BRERSRVNTX0lOX0ZJRUxELCBmaWVsZE5hbWUsIHJhd0J5dGVzKGFkZHJlc3MpXSwKCS8vICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDMgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4MzAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODMxCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFtORkRfQ0FMTF9JU19BRERSRVNTX0lOX0ZJRUxELCBmaWVsZE5hbWUsIHJhd0J5dGVzKGFkZHJlc3MpXQoJcHVzaGJ5dGVzICJpc19hZGRyZXNzX2luX2ZpZWxkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4MzMKCS8vIHJldHVybiBidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMQoJaXR4biBMYXN0TG9nCglidG9pCglpbnRjIDEgLy8gMQoJPT0KCXJldHN1YgoKKmlmMzZfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODM2CgkvLyByZXR1cm4gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GREluc3RhbmNlLnByb3RvdHlwZS5pc0FkZHJlc3NJbkZpZWxkPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKSwKCS8vICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFtmaWVsZE5hbWUsIGFkZHJlc3NdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhkNDQzOTUyYSAvLyBtZXRob2QgImlzQWRkcmVzc0luRmllbGQoc3RyaW5nLGFkZHJlc3MpYm9vbCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODM3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjgzOAoJLy8gbWV0aG9kQXJnczogW2ZpZWxkTmFtZSwgYWRkcmVzc10KCWZyYW1lX2RpZyAtMiAvLyBmaWVsZE5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWludGMgMCAvLyAwCglnZXRiaXQKCXJldHN1YgoKLy8gZmluZEludEluU2V0KGtleTogYnl0ZXMsIGludFZhbDogdWludDY0KTogYm9vbGVhbgpmaW5kSW50SW5TZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAzCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODQzCgkvLyBhc3NlcnQoaW50VmFsICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODQ0CgkvLyAhdGhpcy5ib3hlcyhrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODQ1CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgliICpmaW5kSW50SW5TZXQqcmV0dXJuCgoqaWYzN19lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NDcKCS8vIGJveERhdGEgPSB0aGlzLmJveGVzKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGtleSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGJveERhdGE6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg0OAoJLy8gYnl0ZXNPZlNldCA9IGJveERhdGEKCWZyYW1lX2RpZyAwIC8vIGJveERhdGE6IGJ5dGVbXQoJZnJhbWVfYnVyeSAxIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg0OQoJLy8gbGltaXQgPSBib3hEYXRhLmxlbmd0aCAvIDgKCWZyYW1lX2RpZyAwIC8vIGJveERhdGE6IGJ5dGVbXQoJbGVuCglpbnRjIDIgLy8gOAoJLwoJZnJhbWVfYnVyeSAyIC8vIGxpbWl0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzE6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIGkgPCBsaW1pdAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsaW1pdDogdWludDY0Cgk8CglieiAqZm9yXzFfZW5kCgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NTIKCS8vIGJ0b2koZXh0cmFjdDMoYnl0ZXNPZlNldCwgaSAqIDgsIDgpKSA9PT0gaW50VmFsCglmcmFtZV9kaWcgMSAvLyBieXRlc09mU2V0OiBieXRlW10KCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSoKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0Cgk9PQoJYnogKmlmMzhfZW5kCgoJLy8gKmlmMzhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODUyCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmZpbmRJbnRJblNldCpyZXR1cm4KCippZjM4X2VuZDoKCipmb3JfMV9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg1MQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg1NQoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoKKmZpbmRJbnRJblNldCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIGFkZEludFRvU2V0KGtleTogYnl0ZXMsIGludFZhbDogdWludDY0KTogYm9vbGVhbgphZGRJbnRUb1NldDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDMKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg1OQoJLy8gIXRoaXMuYm94ZXMoa2V5KS5leGlzdHMKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg2MQoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gaXRvYihpbnRWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0CglpdG9iCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODYyCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEludFRvU2V0KnJldHVybgoKKmlmMzlfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODY0CgkvLyBpZExpc3QgPSB0aGlzLmJveGVzKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGtleSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGlkTGlzdDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODY1CgkvLyBsaW1pdCA9IGlkTGlzdC5sZW5ndGggLyA4CglmcmFtZV9kaWcgMCAvLyBpZExpc3Q6IGJ5dGVbXQoJbGVuCglpbnRjIDIgLy8gOAoJLwoJZnJhbWVfYnVyeSAxIC8vIGxpbWl0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NjcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzI6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NjcKCS8vIGkgPCBsaW1pdAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0Cgk8CglieiAqZm9yXzJfZW5kCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODY4CgkvLyBjdXJyZW50VmFsSW5TbG90ID0gZXh0cmFjdFVpbnQ2NChpZExpc3QsIGkgKiA4KQoJZnJhbWVfZGlnIDAgLy8gaWRMaXN0OiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSoKCWV4dHJhY3RfdWludDY0CglmcmFtZV9idXJ5IDMgLy8gY3VycmVudFZhbEluU2xvdDogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NzAKCS8vIGN1cnJlbnRWYWxJblNsb3QgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGN1cnJlbnRWYWxJblNsb3Q6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4NzIKCS8vIHRoaXMuYm94ZXMoa2V5KS5yZXBsYWNlKGkgKiA4LCBpdG9iKGludFZhbCkpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKgoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0CglpdG9iCglib3hfcmVwbGFjZQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg3MwoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICphZGRJbnRUb1NldCpyZXR1cm4KCippZjQwX2VuZDoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODc1CgkvLyBjdXJyZW50VmFsSW5TbG90ID09PSBpbnRWYWwKCWZyYW1lX2RpZyAzIC8vIGN1cnJlbnRWYWxJblNsb3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0Cgk9PQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODc2CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEludFRvU2V0KnJldHVybgoKKmlmNDFfZW5kOgoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODY3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo4ODAKCS8vIGlkTGlzdC5sZW5ndGggPCA4ICogMTI2CglmcmFtZV9kaWcgMCAvLyBpZExpc3Q6IGJ5dGVbXQoJbGVuCglwdXNoaW50IDEwMDgKCTwKCWJ6ICppZjQyX2VuZAoKCS8vICppZjQyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg4MQoJLy8gdGhpcy5ib3hlcyhrZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg4MgoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gaWRMaXN0ICsgaXRvYihpbnRWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDAgLy8gaWRMaXN0OiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBpbnRWYWw6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODgzCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEludFRvU2V0KnJldHVybgoKKmlmNDJfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODg2CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqYWRkSW50VG9TZXQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBjYWxsTkZEUmVnaXN0cnlBcHByb3ZlZEFkZHJlc3NBZGQobmZkQXBwSWQ6IHVpbnQ2NCwgZmllbGRUb01vdmU6IHN0cmluZywgZGVzdGluYXRpb25GaWVsZDogc3RyaW5nKTogYm9vbGVhbgpjYWxsTkZEUmVnaXN0cnlBcHByb3ZlZEFkZHJlc3NBZGQ6Cglwcm90byAzIDEKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjg5NAoJLy8gdGhpcy5pc1ByZVYzKG5mZEFwcElkKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWNhbGxzdWIgaXNQcmVWMwoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6ODk2CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgcmVnX2FkZF92ZXJpZmllZF9hZGRyZXNzIG1ldGhvZCB3aXRoaW4gdGhlIE5GRCwgYXJnczoKCS8vICAgICAgICAgICAgICAgICAvLyBzdHI6IHJlZ19hZGRfdmVyaWZpZWRfYWRkcmVzcwoJLy8gICAgICAgICAgICAgICAgIC8vIHN0cjogZmllbGQgYmVpbmcgJ3ZlcmlmaWVkJyAod2hpY2ggd2UgYWxyZWFkeSBkaWQpIC0gYmFzaWNhbGx5IGZpZWxkIHZhbHVlIHRvIG1vdmUgLyBhZGQgdG8gc2V0CgkvLyAgICAgICAgICAgICAgICAgLy8gc3RyOiBmaWVsZCBuYW1lIG9mIHNldCB3aGljaCB2YWx1ZSBpbiBmaWVsZCB0byB2ZXJpZnkgaXMgYWRkZWQgdG8uCgkvLyAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCksCgkvLyAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25BcmdzOiBbTkZEX0NBTExfUkVHX0FERF9WRVJJRklFRF9BRERSRVNTLCBmaWVsZFRvTW92ZSwgZGVzdGluYXRpb25GaWVsZF0sCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTAxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkwMgoJLy8gYXBwbGljYXRpb25BcmdzOiBbTkZEX0NBTExfUkVHX0FERF9WRVJJRklFRF9BRERSRVNTLCBmaWVsZFRvTW92ZSwgZGVzdGluYXRpb25GaWVsZF0KCXB1c2hieXRlcyAicmVnX2FkZF92ZXJpZmllZF9hZGRyZXNzIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFRvTW92ZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIGRlc3RpbmF0aW9uRmllbGQ6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTA1CgkvLyByZXR1cm4gYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDEKCWl0eG4gTGFzdExvZwoJYnRvaQoJaW50YyAxIC8vIDEKCT09CglyZXRzdWIKCippZjQzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkwOAoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRJbnN0YW5jZS5wcm90b3R5cGUucmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3M+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLAoJLy8gICAgICAgICAgICAgbWV0aG9kQXJnczogW2ZpZWxkVG9Nb3ZlLCBkZXN0aW5hdGlvbkZpZWxkXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4ODVjY2VkNTcgLy8gbWV0aG9kICJyZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsc3RyaW5nKWJvb2wiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkwOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5MTAKCS8vIG1ldGhvZEFyZ3M6IFtmaWVsZFRvTW92ZSwgZGVzdGluYXRpb25GaWVsZF0KCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFRvTW92ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBkZXN0aW5hdGlvbkZpZWxkOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJaW50YyAwIC8vIDAKCWdldGJpdAoJcmV0c3ViCgovLyBjYWxsTkZEUmVnaXN0cnlBcHByb3ZlZEFkZHJlc3NSZW1vdmUobmZkQXBwSWQ6IHVpbnQ2NCwgZmllbGRUb0NoYW5nZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzLCBtYnJSZWZ1bmREZXN0OiBBZGRyZXNzKTogYm9vbGVhbgpjYWxsTkZEUmVnaXN0cnlBcHByb3ZlZEFkZHJlc3NSZW1vdmU6Cglwcm90byA0IDEKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkyMAoJLy8gdGhpcy5pc1ByZVYzKG5mZEFwcElkKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWNhbGxzdWIgaXNQcmVWMwoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTI2CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCksCgkvLyAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25BcmdzOiBbTkZEX0NBTExfUkVHX1JFTU9WRV9WRVJJRklFRF9BRERSRVNTLCBmaWVsZFRvQ2hhbmdlLCByYXdCeXRlcyhhZGRyZXNzKV0sCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAzIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTI3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkyOAoJLy8gYXBwbGljYXRpb25BcmdzOiBbTkZEX0NBTExfUkVHX1JFTU9WRV9WRVJJRklFRF9BRERSRVNTLCBmaWVsZFRvQ2hhbmdlLCByYXdCeXRlcyhhZGRyZXNzKV0KCXB1c2hieXRlcyAicmVnX3JlbW92ZV92ZXJpZmllZF9hZGRyZXNzIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFRvQ2hhbmdlOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTMwCgkvLyByZXR1cm4gYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDEKCWl0eG4gTGFzdExvZwoJYnRvaQoJaW50YyAxIC8vIDEKCT09CglyZXRzdWIKCippZjQ0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkzMwoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRJbnN0YW5jZS5wcm90b3R5cGUucmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbZmllbGRUb0NoYW5nZSwgYWRkcmVzcywgbWJyUmVmdW5kRGVzdF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDMgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGIxODkwYTc1IC8vIG1ldGhvZCAicmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsYWRkcmVzcyxhZGRyZXNzKWJvb2wiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjkzNAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5MzUKCS8vIG1ldGhvZEFyZ3M6IFtmaWVsZFRvQ2hhbmdlLCBhZGRyZXNzLCBtYnJSZWZ1bmREZXN0XQoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkVG9DaGFuZ2U6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtNCAvLyBtYnJSZWZ1bmREZXN0OiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJaW50YyAwIC8vIDAKCWdldGJpdAoJcmV0c3ViCgovLyBpc0V4cGlyZWQoZXhwVGltZTogdWludDY0KTogYm9vbGVhbgppc0V4cGlyZWQ6Cglwcm90byAxIDEKCgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjk0MQoJLy8gZXhwVGltZSA9PT0gMAoJZnJhbWVfZGlnIC0xIC8vIGV4cFRpbWU6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY0NV9lbmQKCgkvLyAqaWY0NV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5NDIKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCXJldHN1YgoKKmlmNDVfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTQ0CgkvLyByZXR1cm4gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPiBleHBUaW1lCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9kaWcgLTEgLy8gZXhwVGltZTogdWludDY0Cgk+CglyZXRzdWIKCi8vIGdldE5vbkFiaU5hbWVBcHBJZCgpOiB2b2lkCmdldE5vbkFiaU5hbWVBcHBJZDoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjk1MQoJLy8gbG9nKGl0b2IodGhpcy5nZXROYW1lQXBwSWQodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcykpKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCgljYWxsc3ViIGdldE5hbWVBcHBJZAoJaXRvYgoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaWdldEFkZHJlc3NBcHBJZHMoKTogdm9pZApub25BYmlnZXRBZGRyZXNzQXBwSWRzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5NTkKCS8vIGJveE5hbWUgPSB0aGlzLmdldEFsZ29BZGRyZXNzQm94TmFtZSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzJdIGFzIGJ5dGVzKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCgljYWxsc3ViIGdldEFsZ29BZGRyZXNzQm94TmFtZQoJZnJhbWVfYnVyeSAwIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjQ2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTYwCgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5NjEKCS8vIGxvZygnJykKCWJ5dGVjIDAgLy8gICIiCglsb2cKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5NjIKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5NjUKCS8vIGxvZyh0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlKQoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlCglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBtaWdyYXRlVjFOYW1lKCk6IHZvaWQKbWlncmF0ZVYxTmFtZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTc0CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICB0aGlzLmlzVjFORkRJREF1dGhlbnRpYyh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdIGFzIGJ5dGVzLCBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pKSwKCS8vICAgICAgICAgICAgICdtdXN0IGJlIGV4aXN0aW5nIHYxIG5hbWUnLAoJLy8gICAgICAgICApCgl0eG4gQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiBpc1YxTkZESURBdXRoZW50aWMKCgkvLyBtdXN0IGJlIGV4aXN0aW5nIHYxIG5hbWUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjk3OQoJLy8gbmZkQXNhSUQgPSBBcHBJRC5mcm9tVWludDY0KGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsyXSkpLmdsb2JhbFN0YXRlKFJFR0lTVFJZX0tFWV9BU0FJRCkgYXMgYnl0ZXMKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJcHVzaGJ5dGVzICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQoYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzJdKSkuZ2xvYmFsU3RhdGUoUkVHSVNUUllfS0VZX0FTQUlEKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gbmZkQXNhSUQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjk4MAoJLy8gYXNzZXJ0KG5mZEFzYUlEICE9PSAnJykKCWZyYW1lX2RpZyAwIC8vIG5mZEFzYUlEOiBieXRlW10KCWJ5dGVjIDAgLy8gICIiCgkhPQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6OTgxCgkvLyB0aGlzLmFzc2lnbk5hbWVUb1JlZ2lzdHJ5KAoJLy8gICAgICAgICAgICAgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcywKCS8vICAgICAgICAgICAgIGJ0b2kobmZkQXNhSUQpLAoJLy8gICAgICAgICAgICAgYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzJdKSwKCS8vICAgICAgICAgICAgIHRydWUsIC8vIHdlJ3JlIG1pZ3JhdGluZwoJLy8gICAgICAgICApCglpbnRjIDEgLy8gMQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCglmcmFtZV9kaWcgMCAvLyBuZmRBc2FJRDogYnl0ZVtdCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWNhbGxzdWIgYXNzaWduTmFtZVRvUmVnaXN0cnkKCXJldHN1YgoKLy8gbWlncmF0ZVYxQWRkcmVzc0tleXMoYWRkcmVzczogYnl0ZXMsIHN0ckFkZHJlc3M6IHN0cmluZyk6IHZvaWQKbWlncmF0ZVYxQWRkcmVzc0tleXM6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAzCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5OTUKCS8vIHRoaXMuYm94ZXModGhpcy5nZXRBbGdvQWRkcmVzc0JveE5hbWUoYWRkcmVzcykpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGFkZHJlc3M6IGJ5dGVzCgljYWxsc3ViIGdldEFsZ29BZGRyZXNzQm94TmFtZQoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czo5OTcKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0N19lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDAwCgkvLyBwcm9nSGFzaCA9IHRoaXMuZ2V0THNpZ0FkZHJlc3MoJ2FkZHJlc3MvJyArIHN0ckFkZHJlc3MpCglwdXNoYnl0ZXMgMHg2MTY0NjQ3MjY1NzM3MzJmIC8vICJhZGRyZXNzLyIKCWZyYW1lX2RpZyAtMiAvLyBzdHJBZGRyZXNzOiBzdHJpbmcKCWNvbmNhdAoJY2FsbHN1YiBnZXRMc2lnQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIHByb2dIYXNoOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDAxCgkvLyBib3hEYXRhVG9TdG9yZSA9ICcnCglieXRlYyAwIC8vICAiIgoJZnJhbWVfYnVyeSAxIC8vIGJveERhdGFUb1N0b3JlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDA0CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTAwNAoJLy8gaSA8IDE2CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMTAgLy8gMTYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDA1CgkvLyBrZXlOYW1lID0gUkVHSVNUUllfS0VZX0FQUElEU0VUUFJFRklYICsgaS50b1N0cmluZygpCglieXRlYyAxOCAvLyAiaS5hcHBzIgoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CgljYWxsc3ViICppdG9hCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBrZXlOYW1lOiBieXRlW10KCgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwMDcKCS8vIHRoaXMubG9jYWxTdGF0ZShBZGRyZXNzLmZyb21CeXRlcyhwcm9nSGFzaCksIGtleU5hbWUpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8gcHJvZ0hhc2g6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJZnJhbWVfZGlnIDMgLy8ga2V5TmFtZTogYnl0ZVtdCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWJ6ICppZjQ4X2Vsc2UKCgkvLyAqaWY0OF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBib3hEYXRhVG9TdG9yZSA9IGJveERhdGFUb1N0b3JlICsgdGhpcy5sb2NhbFN0YXRlKEFkZHJlc3MuZnJvbUJ5dGVzKHByb2dIYXNoKSwga2V5TmFtZSkudmFsdWUKCWZyYW1lX2RpZyAxIC8vIGJveERhdGFUb1N0b3JlOiBieXRlW10KCWZyYW1lX2RpZyAwIC8vIHByb2dIYXNoOiBieXRlW10KCWZyYW1lX2RpZyAzIC8vIGtleU5hbWU6IGJ5dGVbXQoJYXBwX2xvY2FsX2dldAoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gYm94RGF0YVRvU3RvcmU6IGJ5dGVbXQoJYiAqaWY0OF9lbmQKCippZjQ4X2Vsc2U6CgkvLyAqaWY0OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGJveERhdGFUb1N0b3JlLmxlbmd0aCA+IDAKCWZyYW1lX2RpZyAxIC8vIGJveERhdGFUb1N0b3JlOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwMTIKCS8vIHRoaXMuYm94ZXModGhpcy5nZXRBbGdvQWRkcmVzc0JveE5hbWUoYWRkcmVzcykpLnZhbHVlID0gYm94RGF0YVRvU3RvcmUKCWZyYW1lX2RpZyAtMSAvLyBhZGRyZXNzOiBieXRlcwoJY2FsbHN1YiBnZXRBbGdvQWRkcmVzc0JveE5hbWUKCWZyYW1lX2RpZyAxIC8vIGJveERhdGFUb1N0b3JlOiBieXRlW10KCWJveF9wdXQKCippZjQ5X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwMTQKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0OF9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDA0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJcmV0c3ViCgovLyBhc3NpZ25OYW1lVG9SZWdpc3RyeShuZmROYW1lOiBieXRlcywgbmZkQXNhSWQ6IHVpbnQ2NCwgbmZkQXBwSWQ6IHVpbnQ2NCwgaXNNaWdyYXRpbmc6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIEFzc2lnbnMgYSBuYW1lIHRvIHRoZSByZWdpc3RyeSAoaWYgbm90IGFscmVhZHkgbWludGVkKS4KLy8gTXVzdCBvbmx5IGJlIGNhbGxlZCBhcyBwYXJ0IG9mIG1pbnRpbmcsIG9yIG1pZ3JhdGluZyBmcm9tIG9sZCB2MSBzdG9yYWdlCi8vCi8vIEBwYXJhbSB7Ynl0ZXN9IG5mZE5hbWUgLSBUaGUgbmFtZSB0byBiZSBhc3NpZ25lZCB0byB0aGUgcmVnaXN0cnkuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBc2FJZCAtIFRoZSBBU0EgSUQgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWdpc3RyeS4KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElkIC0gVGhlIEFwcCBJRCB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZ2lzdHJ5LgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTWlncmF0aW5nIC0gd2hldGhlciB0aGlzIGlzIHBhcnQgb2YgdjEtPnYyIG1pZ3JhdGlvbiBvciBtaW50aW5nLgovLyBAcmV0dXJuIHt2b2lkfQphc3NpZ25OYW1lVG9SZWdpc3RyeToKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gKmlmNTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDMwCgkvLyAhaXNNaWdyYXRpbmcKCWZyYW1lX2RpZyAtNCAvLyBpc01pZ3JhdGluZzogYm9vbGVhbgoJIQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTAzMgoJLy8gYXNzZXJ0KCF0aGlzLmRvZXNWMU5GREV4aXN0KG5mZE5hbWUpLCAnTkZEIGFscmVhZHkgZXhpc3RzIHdpdGggdGhpcyBuYW1lJykKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBieXRlcwoJY2FsbHN1YiBkb2VzVjFORkRFeGlzdAoJIQoKCS8vIE5GRCBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoaXMgbmFtZQoJYXNzZXJ0CgoqaWY1MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDM1CgkvLyBib3hOYW1lID0gdGhpcy5nZXRCb3hOYW1lKG5mZE5hbWUpCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogYnl0ZXMKCWNhbGxzdWIgZ2V0Qm94TmFtZQoJZnJhbWVfYnVyeSAwIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwMzYKCS8vIGFzc2VydChuZmRBc2FJZCkKCWZyYW1lX2RpZyAtMiAvLyBuZmRBc2FJZDogdWludDY0Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDM3CgkvLyBhc3NlcnQobmZkQXBwSWQpCglmcmFtZV9kaWcgLTMgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTAzOAoJLy8gYXNzZXJ0KCF0aGlzLmJveGVzKGJveE5hbWUpLmV4aXN0cywgJ05GRCBoYXMgYWxyZWFkeSBiZWVuIG1pbnRlZCEnKQoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfbGVuCglzd2FwCglwb3AKCSEKCgkvLyBORkQgaGFzIGFscmVhZHkgYmVlbiBtaW50ZWQhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDM5CgkvLyB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlID0gY29uY2F0KGl0b2IobmZkQXNhSWQpLCBpdG9iKG5mZEFwcElkKSkKCWZyYW1lX2RpZyAwIC8vIGJveE5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFzYUlkOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBuZmRBcHBJZDogdWludDY0CglpdG9iCgljb25jYXQKCWJveF9wdXQKCXJldHN1YgoKLy8gZG9lc1YxTkZERXhpc3QobmZkTmFtZTogYnl0ZXMpOiBib29sZWFuCmRvZXNWMU5GREV4aXN0OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDQ2CgkvLyBwcm9nSGFzaCA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2V0THNpZ0FkZHJlc3MoJ25hbWUvJyArIG5mZE5hbWUpKQoJYnl0ZWMgMTMgLy8gICJuYW1lLyIKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBieXRlcwoJY29uY2F0CgljYWxsc3ViIGdldExzaWdBZGRyZXNzCglmcmFtZV9idXJ5IDAgLy8gcHJvZ0hhc2g6IGFkZHJlc3MKCgkvLyAqaWY1MV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNDcKCS8vICFwcm9nSGFzaC5pc09wdGVkSW5Ub0FwcCh0aGlzLmFwcCkKCWZyYW1lX2RpZyAwIC8vIHByb2dIYXNoOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfb3B0ZWRfaW4KCSEKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNDgKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCWIgKmRvZXNWMU5GREV4aXN0KnJldHVybgoKKmlmNTFfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA1MAoJLy8gcmV0dXJuIHRoaXMubG9jYWxTdGF0ZShwcm9nSGFzaCwgUkVHSVNUUllfS0VZX0FQUElEKS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIHByb2dIYXNoOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAiaS5hcHBpZCIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoKKmRvZXNWMU5GREV4aXN0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBmaW5kSW50QW5kU2V0Rmlyc3Qoa2V5OiBieXRlcywgaW50VmFsOiB1aW50NjQpOiBib29sZWFuCmZpbmRJbnRBbmRTZXRGaXJzdDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBieXRlc09mU2V0ID0gdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhrZXkpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDU3CgkvLyBhc3NlcnQoaW50VmFsICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNTkKCS8vIGFzc2VydChieXRlc09mU2V0Lmxlbmd0aCA+PSAxNiwgImludCAoYXBwaWQpICdzZXQnIHNob3VsZCBhbHJlYWR5IGhhdmUgYXQgbGVhc3QgdHdvIHZhbHVlcyIpCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWxlbgoJaW50YyAxMCAvLyAxNgoJPj0KCgkvLyBpbnQgKGFwcGlkKSAnc2V0JyBzaG91bGQgYWxyZWFkeSBoYXZlIGF0IGxlYXN0IHR3byB2YWx1ZXMKCWFzc2VydAoKCS8vICppZjUyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA2MgoJLy8gZXh0cmFjdFVpbnQ2NChieXRlc09mU2V0LCAwKSA9PT0gaW50VmFsCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWludGMgMCAvLyAwCglleHRyYWN0X3VpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0Cgk9PQoJYnogKmlmNTJfZW5kCgoJLy8gKmlmNTJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA2MgoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpmaW5kSW50QW5kU2V0Rmlyc3QqcmV0dXJuCgoqaWY1Ml9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDY0CgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gOAoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCWludGMgMiAvLyA4CgkvCglmcmFtZV9idXJ5IDEgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNjUKCS8vIGZvdW5kU2xvdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gZm91bmRTbG90OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDY3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGxpbWl0OyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA2NwoJLy8gaSA8IGxpbWl0CglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWY1M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNjgKCS8vIGV4dHJhY3RVaW50NjQoYnl0ZXNPZlNldCwgaSAqIDgpID09PSBpbnRWYWwKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKgoJZXh0cmFjdF91aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBpbnRWYWw6IHVpbnQ2NAoJPT0KCWJ6ICppZjUzX2VuZAoKCS8vICppZjUzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNjkKCS8vIGZvdW5kU2xvdCA9IGkKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kU2xvdDogdWludDY0CgliICpmb3JfNF9lbmQKCippZjUzX2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNjcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDczCgkvLyBhc3NlcnQoZm91bmRTbG90ICE9PSAwLCAnaW50IChhcHAgaWQpIG11c3QgYmUgZm91bmQgaW4gc2V0IGluIG9yZGVyIHRvIG1vdmUgaXQnKQoJZnJhbWVfZGlnIDIgLy8gZm91bmRTbG90OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGludCAoYXBwIGlkKSBtdXN0IGJlIGZvdW5kIGluIHNldCBpbiBvcmRlciB0byBtb3ZlIGl0Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDc1CgkvLyBpbnRBdEZyb250ID0gZXh0cmFjdFVpbnQ2NChieXRlc09mU2V0LCAwKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50NjQKCWZyYW1lX2J1cnkgNCAvLyBpbnRBdEZyb250OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDc3CgkvLyBieXRlc09mU2V0ID0gcmVwbGFjZTMoYnl0ZXNPZlNldCwgMCwgaXRvYihpbnRWYWwpKQoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIC0yIC8vIGludFZhbDogdWludDY0CglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwNzkKCS8vIHRoaXMuYm94ZXMoa2V5KS52YWx1ZSA9IHJlcGxhY2UzKGJ5dGVzT2ZTZXQsIGZvdW5kU2xvdCAqIDgsIGl0b2IoaW50QXRGcm9udCkpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgMiAvLyBmb3VuZFNsb3Q6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSoKCWZyYW1lX2RpZyA0IC8vIGludEF0RnJvbnQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDgwCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCipmaW5kSW50QW5kU2V0Rmlyc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyByZW1vdmVJbnRGcm9tU2V0KGtleTogYnl0ZXMsIGludFZhbDogdWludDY0KTogYm9vbGVhbgpyZW1vdmVJbnRGcm9tU2V0OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMgoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwODQKCS8vIGJveERhdGEgPSB0aGlzLmJveGVzKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGtleSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGJveERhdGE6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwODUKCS8vIGxpbWl0ID0gYm94RGF0YS5sZW5ndGggLyA4CglmcmFtZV9kaWcgMCAvLyBib3hEYXRhOiBieXRlW10KCWxlbgoJaW50YyAyIC8vIDgKCS8KCWZyYW1lX2J1cnkgMSAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA4NwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfNToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwODcKCS8vIGkgPCBsaW1pdAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gKmlmNTRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDg4CgkvLyBleHRyYWN0VWludDY0KGJveERhdGEsIGkgKiA4KSA9PT0gaW50VmFsCglmcmFtZV9kaWcgMCAvLyBib3hEYXRhOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSoKCWV4dHJhY3RfdWludDY0CglmcmFtZV9kaWcgLTIgLy8gaW50VmFsOiB1aW50NjQKCT09CglieiAqaWY1NF9lbmQKCgkvLyAqaWY1NF9jb25zZXF1ZW50CgkvLyAqaWY1NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwODkKCS8vIGkgPT09IGxpbWl0IC0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJPT0KCWJ6ICppZjU1X2VuZAoKCS8vICppZjU1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwOTIKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCgkvLyAqaWY1Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEwOTMKCS8vIGkgPiAwCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY1Nl9lbmQKCgkvLyAqaWY1Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMDk1CgkvLyB0aGlzLmJveGVzKGtleSkudmFsdWUgPSBleHRyYWN0Myhib3hEYXRhLCAwLCBpICogOCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgMCAvLyBib3hEYXRhOiBieXRlW10KCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqCglleHRyYWN0MwoJYm94X3B1dAoKKmlmNTZfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA5NwoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVJbnRGcm9tU2V0KnJldHVybgoKKmlmNTVfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTEwMAoJLy8gdGhpcy5ib3hlcyhrZXkpLnJlcGxhY2UoaSAqIDgsIGl0b2IoMCkpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKgoJYnl0ZWMgNCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWJveF9yZXBsYWNlCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTEwMQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVJbnRGcm9tU2V0KnJldHVybgoKKmlmNTRfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTA4NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExMDUKCS8vIHJldHVybiBmYWxzZQoJaW50YyAwIC8vIDAKCipyZW1vdmVJbnRGcm9tU2V0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gdjFSZXBsYWNlSW50QXRQb3MoaW50VmFsOiB1aW50NjQsIGJ5dGVzT2ZTZXQ6IGJ5dGVzLCBwb3M6IHVpbnQ2NCk6IGJ5dGVzCnYxUmVwbGFjZUludEF0UG9zOgoJcHJvdG8gMyAxCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTEwOQoJLy8gcmV0dXJuIHN1YnN0cmluZzMoYnl0ZXNPZlNldCwgMCwgcG9zKSArIGl0b2IoaW50VmFsKSArIHN1YnN0cmluZzMoYnl0ZXNPZlNldCwgcG9zICsgOCwgYnl0ZXNPZlNldC5sZW5ndGgpCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNPZlNldDogYnl0ZXMKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgLTMgLy8gcG9zOiB1aW50NjQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAtMSAvLyBpbnRWYWw6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNPZlNldDogYnl0ZXMKCWZyYW1lX2RpZyAtMyAvLyBwb3M6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSsKCWZyYW1lX2RpZyAtMiAvLyBieXRlc09mU2V0OiBieXRlcwoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCXJldHN1YgoKLy8gcmVtb3ZlSW50RnJvbVYxU2V0KGFkZHI6IEFkZHJlc3MsIGtleTogYnl0ZXMsIGludFZhbDogdWludDY0KTogYm9vbGVhbgpyZW1vdmVJbnRGcm9tVjFTZXQ6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAyCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTExMwoJLy8gYnl0ZXNPZlNldCA9IHRoaXMubG9jYWxTdGF0ZShhZGRyLCBrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIGtleTogYnl0ZXMKCWFwcF9sb2NhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTE0CgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gOAoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCWludGMgMiAvLyA4CgkvCglmcmFtZV9idXJ5IDEgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExMTYKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzY6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTE2CgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl82X2VuZAoKCS8vICppZjU3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTExNwoJLy8gZXh0cmFjdFVpbnQ2NChieXRlc09mU2V0LCBpICogOCkgPT09IGludFZhbAoJZnJhbWVfZGlnIDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqCglleHRyYWN0X3VpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGludFZhbDogdWludDY0Cgk9PQoJYnogKmlmNTdfZW5kCgoJLy8gKmlmNTdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTExOAoJLy8gdGhpcy5sb2NhbFN0YXRlKGFkZHIsIGtleSkudmFsdWUgPSB0aGlzLnYxUmVwbGFjZUludEF0UG9zKDAsIGJ5dGVzT2ZTZXQsIGkgKiA4KQoJZnJhbWVfZGlnIC0xIC8vIGFkZHI6IEFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWludGMgMCAvLyAwCgljYWxsc3ViIHYxUmVwbGFjZUludEF0UG9zCglhcHBfbG9jYWxfcHV0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTExOQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVJbnRGcm9tVjFTZXQqcmV0dXJuCgoqaWY1N19lbmQ6CgoqZm9yXzZfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTE2CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTEyMwoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoKKnJlbW92ZUludEZyb21WMVNldCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIHJlbW92ZUludEZyb21WMU11bHRpc2V0KGFkZHI6IEFkZHJlc3MsIGtleVByZWZpeDogYnl0ZXMsIG1heEtleXM6IHVpbnQ2NCwgaW50VmFsOiB1aW50NjQpOiBib29sZWFuCnJlbW92ZUludEZyb21WMU11bHRpc2V0OgoJcHJvdG8gNCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTI3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IG1heEtleXM7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTI3CgkvLyBpIDwgbWF4S2V5cwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gbWF4S2V5czogdWludDY0Cgk8CglieiAqZm9yXzdfZW5kCgoJLy8gKmlmNThfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTI4CgkvLyB0aGlzLnJlbW92ZUludEZyb21WMVNldChhZGRyLCBrZXlQcmVmaXggKyBpLnRvU3RyaW5nKCksIGludFZhbCkKCWZyYW1lX2RpZyAtNCAvLyBpbnRWYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGtleVByZWZpeDogYnl0ZXMKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJY2FsbHN1YiAqaXRvYQoJY29uY2F0CglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJY2FsbHN1YiByZW1vdmVJbnRGcm9tVjFTZXQKCWJ6ICppZjU4X2VuZAoKCS8vICppZjU4X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExMjgKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqcmVtb3ZlSW50RnJvbVYxTXVsdGlzZXQqcmV0dXJuCgoqaWY1OF9lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTI3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl83CgoqZm9yXzdfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTEzMQoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoKKnJlbW92ZUludEZyb21WMU11bHRpc2V0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBzd2VlcER1c3QoKTogdm9pZApzd2VlcER1c3Q6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE0MAoJLy8gYmFsID0gdGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBiYWw6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNDEKCS8vIG1iciA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDEgLy8gbWJyOiB1aW50NjQKCgkvLyAqaWY1OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNDIKCS8vIGJhbCA+IG1icgoJZnJhbWVfZGlnIDAgLy8gYmFsOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIG1icjogdWludDY0Cgk+CglieiAqaWY1OV9lbmQKCgkvLyAqaWY1OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTQzCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBiYWwgLSBtYnIsCgkvLyAgICAgICAgICAgICAgICAgcmVjZWl2ZXI6IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMV0pLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdzd2VlcER1c3QnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE0NAoJLy8gYW1vdW50OiBiYWwgLSBtYnIKCWZyYW1lX2RpZyAwIC8vIGJhbDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBtYnI6IHVpbnQ2NAoJLQoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTQ1CgkvLyByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNDYKCS8vIG5vdGU6ICdzd2VlcER1c3QnCglwdXNoYnl0ZXMgMHg3Mzc3NjU2NTcwNDQ3NTczNzQgLy8gInN3ZWVwRHVzdCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjU5X2VuZDoKCXJldHN1YgoKLy8gbnVtTGV0dGVyc0luTmZkKG5mZE5hbWU6IHN0cmluZyk6IG5mZExldHRlcnNJbmZvCm51bUxldHRlcnNJbk5mZDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDYKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTY0CgkvLyBpbnB1dExlbmd0aCA9IGxlbihuZmROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJbGVuCglmcmFtZV9idXJ5IDAgLy8gaW5wdXRMZW5ndGg6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNjYKCS8vIGFzc2VydChpbnB1dExlbmd0aCA+PSA2LCAiaWYgbm90IGF0IGxlYXN0IDYgY2hhcnMgY2FuJ3QgYmUgdmFsaWQgLSBtaW5pbXVtIGxlbmd0aCB0byBoYXZlIC5hbGdvIikKCWZyYW1lX2RpZyAwIC8vIGlucHV0TGVuZ3RoOiB1aW50NjQKCWludGMgMyAvLyA2Cgk+PQoKCS8vIGlmIG5vdCBhdCBsZWFzdCA2IGNoYXJzIGNhbid0IGJlIHZhbGlkIC0gbWluaW11bSBsZW5ndGggdG8gaGF2ZSAuYWxnbwoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE2NwoJLy8gYXNzZXJ0KGV4dHJhY3QzKG5mZE5hbWUsIGlucHV0TGVuZ3RoIC0gNSwgNSkgPT09ICcuYWxnbycsICdzdHJpbmcgbXVzdCBlbmQgdy8gLmFsZ28nKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDAgLy8gaW5wdXRMZW5ndGg6IHVpbnQ2NAoJaW50YyA2IC8vIDUKCS0KCWludGMgNiAvLyA1CglleHRyYWN0MwoJcHVzaGJ5dGVzIDB4MmU2MTZjNjc2ZiAvLyAiLmFsZ28iCgk9PQoKCS8vIHN0cmluZyBtdXN0IGVuZCB3LyAuYWxnbwoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE2OQoJLy8gcmV0VmFsOiBuZmRMZXR0ZXJzSW5mbyA9IHsgaXNTZWdtZW50OiBmYWxzZSwgaWR4T2ZCYXNlbmFtZTogMCwgbnVtQ2hhcnNJbkJhc2VuYW1lOiAwIH0KCWJ5dGVjIDE1IC8vIDB4MDAKCWludGMgMCAvLyAwCglkdXAKCXNldGJpdAoJYnl0ZWMgNCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZWMgNCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHJldFZhbDogbmZkTGV0dGVyc0luZm8KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTcwCgkvLyBwZXJpb2RDb3VudCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gcGVyaW9kQ291bnQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNzEKCS8vIGNoYXJDb3VudCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gY2hhckNvdW50OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTcyCgkvLyBmaXJzdFBlcmlvZElkeCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gZmlyc3RQZXJpb2RJZHg6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNzQKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRMZW5ndGggLSA0OyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA1IC8vIGk6IHVpbnQ2NAoKKmZvcl84OgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE3NAoJLy8gaSA8IGlucHV0TGVuZ3RoIC0gNAoJZnJhbWVfZGlnIDUgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBpbnB1dExlbmd0aDogdWludDY0CglpbnRjIDggLy8gNAoJLQoJPAoJYnogKmZvcl84X2VuZAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNzUKCS8vIGJ5dGVWYWwgPSBnZXRieXRlKG5mZE5hbWUsIGkpCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglmcmFtZV9kaWcgNSAvLyBpOiB1aW50NjQKCWdldGJ5dGUKCWZyYW1lX2J1cnkgNiAvLyBieXRlVmFsOiB1aW50NjQKCgkvLyAqaWY2MF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExNzcKCS8vIGJ5dGVWYWwgPT09IEFTQ0lJX1BFUklPRAoJZnJhbWVfZGlnIDYgLy8gYnl0ZVZhbDogdWludDY0CglwdXNoaW50IDQ2Cgk9PQoJYnogKmlmNjBfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY2MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTc4CgkvLyBwZXJpb2RDb3VudCArPSAxCglmcmFtZV9kaWcgMiAvLyBwZXJpb2RDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIHBlcmlvZENvdW50OiB1aW50NjQKCgkvLyAqaWY2MV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExODAKCS8vIHBlcmlvZENvdW50ID09PSAxCglmcmFtZV9kaWcgMiAvLyBwZXJpb2RDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjYxX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE4MQoJLy8gZmlyc3RQZXJpb2RJZHggPSBpCglmcmFtZV9kaWcgNSAvLyBpOiB1aW50NjQKCWZyYW1lX2J1cnkgNCAvLyBmaXJzdFBlcmlvZElkeDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE4MgoJLy8gYXNzZXJ0KGNoYXJDb3VudCA+PSAxICYmIGNoYXJDb3VudCA8PSAyNywgJ211c3QgYmUgMS0yNyBjaGFycyBpbiBuZmQgcm9vdCBvciBzZWdtZW50IG5hbWUnKQoJZnJhbWVfZGlnIDMgLy8gY2hhckNvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgk+PQoJZHVwCglieiAqc2tpcF9hbmQxNwoJZnJhbWVfZGlnIDMgLy8gY2hhckNvdW50OiB1aW50NjQKCWludGMgMjIgLy8gMjcKCTw9CgkmJgoKKnNraXBfYW5kMTc6CgkvLyBtdXN0IGJlIDEtMjcgY2hhcnMgaW4gbmZkIHJvb3Qgb3Igc2VnbWVudCBuYW1lCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTgzCgkvLyBjaGFyQ291bnQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGNoYXJDb3VudDogdWludDY0CgliICppZjYxX2VuZAoKKmlmNjFfZWxzZWlmMV9jb25kaXRpb246CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTg0CgkvLyBwZXJpb2RDb3VudCA9PT0gMgoJZnJhbWVfZGlnIDIgLy8gcGVyaW9kQ291bnQ6IHVpbnQ2NAoJaW50YyA1IC8vIDIKCT09CglieiAqaWY2MV9lbHNlCgoJLy8gKmlmNjFfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMTg1CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQ291bnQgPj0gMSAmJiBjaGFyQ291bnQgPD0gMjcgJiYgaSA9PT0gaW5wdXRMZW5ndGggLSA1LAoJLy8gICAgICAgICAgICAgICAgICAgICAgICAgJ211c3QgYmUgMS0yNyBjaGFycyBhbmQgYXQgZW5kIG9mIHN0cmluZycsCgkvLyAgICAgICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAzIC8vIGNoYXJDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMTgKCWZyYW1lX2RpZyAzIC8vIGNoYXJDb3VudDogdWludDY0CglpbnRjIDIyIC8vIDI3Cgk8PQoJJiYKCipza2lwX2FuZDE4OgoJZHVwCglieiAqc2tpcF9hbmQxOQoJZnJhbWVfZGlnIDUgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBpbnB1dExlbmd0aDogdWludDY0CglpbnRjIDYgLy8gNQoJLQoJPT0KCSYmCgoqc2tpcF9hbmQxOToKCS8vIG11c3QgYmUgMS0yNyBjaGFycyBhbmQgYXQgZW5kIG9mIHN0cmluZwoJYXNzZXJ0CgliICppZjYxX2VuZAoKKmlmNjFfZWxzZToKCS8vIHRvbyBtYW55ICcuJyBjaGFycyBpbiBuYW1lCgllcnIKCippZjYxX2VuZDoKCWIgKmlmNjBfZW5kCgoqaWY2MF9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjExOTMKCS8vIChieXRlVmFsID49IEFTQ0lJX0xXUl9BICYmIGJ5dGVWYWwgPD0gQVNDSUlfTFdSX1opIHx8CgkvLyAgICAgICAgICAgICAgICAgKGJ5dGVWYWwgPj0gQVNDSUlfMCAmJiBieXRlVmFsIDw9IEFTQ0lJXzkpCglmcmFtZV9kaWcgNiAvLyBieXRlVmFsOiB1aW50NjQKCXB1c2hpbnQgOTcKCT49CglkdXAKCWJ6ICpza2lwX2FuZDIwCglmcmFtZV9kaWcgNiAvLyBieXRlVmFsOiB1aW50NjQKCXB1c2hpbnQgMTIyCgk8PQoJJiYKCipza2lwX2FuZDIwOgoJZHVwCglibnogKnNraXBfb3IzCglmcmFtZV9kaWcgNiAvLyBieXRlVmFsOiB1aW50NjQKCXB1c2hpbnQgNDgKCT49CglkdXAKCWJ6ICpza2lwX2FuZDIxCglmcmFtZV9kaWcgNiAvLyBieXRlVmFsOiB1aW50NjQKCXB1c2hpbnQgNTcKCTw9CgkmJgoKKnNraXBfYW5kMjE6Cgl8fAoKKnNraXBfb3IzOgoJYnogKmlmNjBfZWxzZQoKCS8vICppZjYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE5NgoJLy8gY2hhckNvdW50ICs9IDEKCWZyYW1lX2RpZyAzIC8vIGNoYXJDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGNoYXJDb3VudDogdWludDY0CgliICppZjYwX2VuZAoKKmlmNjBfZWxzZToKCS8vIGludmFsaWQgY2hhcmFjdGVyIGluIG5hbWUKCWVycgoKKmlmNjBfZW5kOgoKKmZvcl84X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTE3NAoJLy8gaSArPSAxCglmcmFtZV9kaWcgNSAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDUgLy8gaTogdWludDY0CgliICpmb3JfOAoKKmZvcl84X2VuZDoKCS8vICppZjYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIwMQoJLy8gcGVyaW9kQ291bnQgPT09IDEKCWZyYW1lX2RpZyAyIC8vIHBlcmlvZENvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgk9PQoJYnogKmlmNjJfZWxzZQoKCS8vICppZjYyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyMDIKCS8vIHJldFZhbC5pc1NlZ21lbnQgPSBmYWxzZQoJZnJhbWVfZGlnIDEgLy8gcmV0VmFsOiBuZmRMZXR0ZXJzSW5mbwoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAwCglkdXAKCXNldGJpdAoJZnJhbWVfYnVyeSAxIC8vIHJldFZhbDogbmZkTGV0dGVyc0luZm8KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjAzCgkvLyByZXRWYWwubnVtQ2hhcnNJbkJhc2VuYW1lID0gZmlyc3RQZXJpb2RJZHgKCWZyYW1lX2RpZyAxIC8vIHJldFZhbDogbmZkTGV0dGVyc0luZm8KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDQgLy8gZmlyc3RQZXJpb2RJZHg6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIwNAoJLy8gcmV0VmFsLmlkeE9mQmFzZW5hbWUgPSAwCglmcmFtZV9kaWcgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZWMgNCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCXJlcGxhY2UyIDkKCWZyYW1lX2J1cnkgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgliICppZjYyX2VuZAoKKmlmNjJfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyMDYKCS8vIHJldFZhbC5pc1NlZ21lbnQgPSB0cnVlCglmcmFtZV9kaWcgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vIDAKCWludGMgMSAvLyAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIwNwoJLy8gcmV0VmFsLm51bUNoYXJzSW5CYXNlbmFtZSA9IGNoYXJDb3VudAoJZnJhbWVfZGlnIDEgLy8gcmV0VmFsOiBuZmRMZXR0ZXJzSW5mbwoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgMyAvLyBjaGFyQ291bnQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIwOAoJLy8gcmV0VmFsLmlkeE9mQmFzZW5hbWUgPSBpbnB1dExlbmd0aCAtIDUgLSBjaGFyQ291bnQKCWZyYW1lX2RpZyAxIC8vIHJldFZhbDogbmZkTGV0dGVyc0luZm8KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDkKCWZyYW1lX2RpZyAwIC8vIGlucHV0TGVuZ3RoOiB1aW50NjQKCWludGMgNiAvLyA1CgktCglmcmFtZV9kaWcgMyAvLyBjaGFyQ291bnQ6IHVpbnQ2NAoJLQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgoqaWY2Ml9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjExCgkvLyByZXR1cm4gcmV0VmFsCglmcmFtZV9kaWcgMSAvLyByZXRWYWw6IG5mZExldHRlcnNJbmZvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNgoJcmV0c3ViCgovLyBmZXRjaEFwcElkRm9yTmFtZShuYW1lOiBzdHJpbmcpOiB1aW50NjQKZmV0Y2hBcHBJZEZvck5hbWU6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIxNQoJLy8gYm94TmFtZSA9IHRoaXMuZ2V0Qm94TmFtZShuYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXRCb3hOYW1lCglmcmFtZV9idXJ5IDAgLy8gYm94TmFtZTogYnl0ZVtdCgoJLy8gKmlmNjNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjE2CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY2M19lbmQKCgkvLyAqaWY2M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjE3CgkvLyByZXR1cm4gMAoJaW50YyAwIC8vIDAKCWIgKmZldGNoQXBwSWRGb3JOYW1lKnJldHVybgoKKmlmNjNfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIxOQoJLy8gYm94VmFsdWUgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIGJveFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjIwCgkvLyBhc3NlcnQobGVuKGJveFZhbHVlKSA9PT0gMTYpCglmcmFtZV9kaWcgMSAvLyBib3hWYWx1ZTogYnl0ZVtdCglsZW4KCWludGMgMTAgLy8gMTYKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjIxCgkvLyByZXR1cm4gZXh0cmFjdFVpbnQ2NChib3hWYWx1ZSwgOCkKCWZyYW1lX2RpZyAxIC8vIGJveFZhbHVlOiBieXRlW10KCWludGMgMiAvLyA4CglleHRyYWN0X3VpbnQ2NAoKKmZldGNoQXBwSWRGb3JOYW1lKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZnJvbU5hbWVJbmZvR2V0UGFyZW50TmFtZShuZmROYW1lOiBzdHJpbmcsIG5mZE5hbWVJbmZvOiBuZmRMZXR0ZXJzSW5mbyk6IHN0cmluZwpmcm9tTmFtZUluZm9HZXRQYXJlbnROYW1lOgoJcHJvdG8gMiAxCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIyNQoJLy8gcmV0dXJuIHN1YnN0cmluZzMobmZkTmFtZSwgbmZkTmFtZUluZm8uaWR4T2ZCYXNlbmFtZSwgbGVuKG5mZE5hbWUpKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWVJbmZvOiBuZmRMZXR0ZXJzSW5mbwoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOSA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglsZW4KCXN1YnN0cmluZzMKCXJldHN1YgoKLy8gc2FmZUdsb2JhbEJ5dGVHZXRFeChhcHBJZDogdWludDY0LCBrZXk6IGJ5dGVzKTogYnl0ZXMKc2FmZUdsb2JhbEJ5dGVHZXRFeDoKCXByb3RvIDIgMQoKCS8vICppZjY0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIyOQoJLy8gIUFwcElELmZyb21VaW50NjQoYXBwSWQpLmdsb2JhbFN0YXRlRXhpc3RzKGtleSkKCWZyYW1lX2RpZyAtMSAvLyBhcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8ga2V5OiBieXRlcwoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYnogKmlmNjRfZW5kCgoJLy8gKmlmNjRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIzMAoJLy8gcmV0dXJuICcnCglieXRlYyAwIC8vICAiIgoJcmV0c3ViCgoqaWY2NF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjMyCgkvLyByZXR1cm4gQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGUoa2V5KSBhcyBieXRlcwoJZnJhbWVfZGlnIC0xIC8vIGFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGUoa2V5KQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNhZmVHbG9iYWxJbnRHZXRFeChhcHBJZDogdWludDY0LCBrZXk6IGJ5dGVzKTogdWludDY0CnNhZmVHbG9iYWxJbnRHZXRFeDoKCXByb3RvIDIgMQoKCS8vICppZjY1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIzNgoJLy8gIUFwcElELmZyb21VaW50NjQoYXBwSWQpLmdsb2JhbFN0YXRlRXhpc3RzKGtleSkKCWZyYW1lX2RpZyAtMSAvLyBhcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8ga2V5OiBieXRlcwoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYnogKmlmNjVfZW5kCgoJLy8gKmlmNjVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTIzNwoJLy8gcmV0dXJuIDAKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjY1X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyMzkKCS8vIHJldHVybiBidG9pKEFwcElELmZyb21VaW50NjQoYXBwSWQpLmdsb2JhbFN0YXRlKGtleSkgYXMgYnl0ZXMpCglmcmFtZV9kaWcgLTEgLy8gYXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGtleTogYnl0ZXMKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpCglhc3NlcnQKCWJ0b2kKCXJldHN1YgoKLy8gZ2V0UHJpY2VGb3JOYW1lKG5mZE5hbWU6IHN0cmluZywgbmZkTmFtZUluZm86IG5mZExldHRlcnNJbmZvLCBjYWxsZXI6IEFkZHJlc3MpOiBQcmljZUluZm8KLy8KLy8gVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0aGUgcHJpY2UgZm9yIGEgZ2l2ZW4gTkZEIG5hbWUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uLiBUaGUgcHJpY2UgZGVwZW5kcyBvbgovLyB3aGV0aGVyIHRoZSBuYW1lIGlzIGEgc2VnbWVudCBvciBub3QsIGFuZCB0aGUgbnVtYmVyIG9mIGxldHRlcnMgaW4gdGhlIGJhc2VuYW1lLgovLyBJdCBhc3N1bWVzIGl0cyBiZWluZyBhc2tlZCBhcyBpZiB0aGlzIGlzIGEgJ25ldycgbmFtZSBhbmQgZG9lc24ndCBjb25zaWRlciBpZiBhbiBleGlzdGluZyBuYW1lIGFuZCBpZiBpdHMKLy8gZXhwaXJlZCwgZXRjLiAgRm9yIHRoYXQsIGFzayBUSEFUIG5mZCB3aGF0IGl0cyByZW5ld2FsIHByaWNlIGlzLgovLwovLyBJZiB0aGUgbmFtZSBpcyBhIHNlZ21lbnQsIHRoZSBwcmljaW5nIGNvbWVzIGZyb20gaXRzIHBhcmVudCBvciB0aGUgc3lzdGVtLiBUaGUgbWV0aG9kIGZpcnN0IGxvb2tzIHVwIHRoZSBhcHAgSUQKLy8gZm9yIHRoZSBwYXJlbnQgbmFtZS4gSWYgdGhlIGFwcCBJRCBpcyBub3QgYXZhaWxhYmxlLCBhbiBhc3NlcnRpb24gaXMgcmFpc2VkLgovLwovLyBJZiB0aGUgcGFyZW50IHNlZ21lbnQgaXMgdW5sb2NrZWQsIHRoZSBwcmljZSBmb3IgbWludGluZyB0aGUgc2VnbWVudCBpcyByZXRyaWV2ZWQgZnJvbSB0aGUgcGFyZW50IHVzaW5nIHRoZQovLyAnTkZEX0tFWV9TRUdNRU5UX1VTRF9QUklDRScga2V5LiBPdGhlcndpc2UsIGEgbWluaW11bSBwcmljZSBvZiBORkRfTUlOX1NFR01FTlRfVVNEIGlzIHVzZWQuIFRoZSBzZWdtZW50IG1pbnQKLy8gY29zdCBpcyB0aGVuIGNvbnZlcnRlZCB0byBtaWNyb2FsZ29zIGFuZCByZXR1cm5lZC4KLy8KLy8gSWYgdGhlIG5hbWUgaXMgbm90IGEgc2VnbWVudCwgdGhlIHByaWNlIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG51bWJlciBvZiBsZXR0ZXJzIGluIHRoZSBiYXNlbmFtZS4gVGhlCi8vIGJhc2VuYW1lIGxlbmd0aCBpcyByZXRyaWV2ZWQgZnJvbSB0aGUgbmFtZSBpbmZvcm1hdGlvbi4gVGhlIG1ldGhvZCB1c2VzIGEgY29uZGl0aW9uYWwgc3RhdGVtZW50IHRvIGRldGVybWluZQovLyB0aGUgcHJpY2UgYmFzZWQgb24gdGhlIGJhc2VuYW1lIGxlbmd0aC4gVGhlIHByaWNlIGlzIHRoZW4gY29udmVydGVkIHRvIG1pY3JvYWxnb3MgYW5kIHJldHVybmVkLgovLwovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIHRvIGdldCB0aGUgcHJpY2UgZm9yLgovLyBAcGFyYW0ge25mZExldHRlcnNJbmZvfSBuZmROYW1lSW5mbyAtIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbmZkTmFtZSBsZXR0ZXJzLgovLyBAcGFyYW0ge0FkZHJlc3N9IGNhbGxlciAtIHRoZSBhZGRyZXNzIHRoaXMgcmVxdWVzdCBpcyBvbiBiZWhhbGYgb2YgKHNpbmNlIGFuIG5mZCBjb250cmFjdCBtaWdodCBjYWxsIHVzIGl0Ci8vIG5lZWRzIHRvIGJlIGFibGUgdG8gcGFzcyBvbiB0aGUgcmVxdWVzdCBvbiBiZWhhbGYgb2YgSVRTIGNhbGxlciAtIGllOiBnZXR0aW5nIHByaWNlIGZvciBhbiBleHBpcmVkIG5mZCB3aWxsIGJlCi8vIGRpZmZlcmVudCBpZiBpdHMgb3duZXIgaXIgYXNraW5nLgovLyBAcmV0dXJuIHtQcmljZUluZm99IHByaWNlIGRldGFpbHMgZm9yIG1pbnRpbmcgb3IgcmVuZXdpbmcKZ2V0UHJpY2VGb3JOYW1lOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMTkKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjY3CgkvLyBjb25zdHJhaW50RGF0YSA9IHRoaXMuZ2V0Q29uc3RyYWludHMoKQoJY2FsbHN1YiBnZXRDb25zdHJhaW50cwoJZnJhbWVfYnVyeSAwIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY2Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyNjkKCS8vIG5mZE5hbWVJbmZvLmlzU2VnbWVudAoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWVJbmZvOiBuZmRMZXR0ZXJzSW5mbwoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAwCglnZXRiaXQKCWJ6ICppZjY2X2Vsc2UKCgkvLyAqaWY2Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjcxCgkvLyBwYXJlbnRBcHBJZCA9IHRoaXMuZmV0Y2hBcHBJZEZvck5hbWUodGhpcy5mcm9tTmFtZUluZm9HZXRQYXJlbnROYW1lKG5mZE5hbWUsIG5mZE5hbWVJbmZvKSkKCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lSW5mbzogbmZkTGV0dGVyc0luZm8KCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBzdHJpbmcKCWNhbGxzdWIgZnJvbU5hbWVJbmZvR2V0UGFyZW50TmFtZQoJY2FsbHN1YiBmZXRjaEFwcElkRm9yTmFtZQoJZnJhbWVfYnVyeSAyIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjcyCgkvLyBhc3NlcnQocGFyZW50QXBwSWQgIT09IDAsICdwYXJlbnQgbmZkL2lkIG11c3QgYmUgZm91bmQnKQoJZnJhbWVfZGlnIDIgLy8gcGFyZW50QXBwSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CgoJLy8gcGFyZW50IG5mZC9pZCBtdXN0IGJlIGZvdW5kCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjc0CgkvLyBzZWdtZW50TWludENvc3QgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIHNlZ21lbnRNaW50Q29zdDogdWludDY0CgoJLy8gKmlmNjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjc2CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgocGFyZW50QXBwSWQsIE5GRF9LRVlfSVNTRUdNRU5UTE9DS0VEKSA9PT0gTkZEX0xPQ0tFRF9WQUxfRkFMU0UKCWJ5dGVjIDE2IC8vICJpLnNlZ21lbnRMb2NrZWQiCglmcmFtZV9kaWcgMiAvLyBwYXJlbnRBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWJ5dGVjIDIwIC8vICIwIgoJPT0KCWJ6ICppZjY3X2Vsc2UKCgkvLyAqaWY2N19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjc4CgkvLyBzZWdtZW50TWludENvc3QgPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXRFeChwYXJlbnRBcHBJZCwgTkZEX0tFWV9TRUdNRU5UX1VTRF9QUklDRSkKCXB1c2hieXRlcyAiaS5zZWdtZW50UHJpY2VVc2QiCglmcmFtZV9kaWcgMiAvLyBwYXJlbnRBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXRFeAoJZnJhbWVfYnVyeSAzIC8vIHNlZ21lbnRNaW50Q29zdDogdWludDY0CgoJLy8gKmlmNjhfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjc5CgkvLyBzZWdtZW50TWludENvc3QgPCBjb25zdHJhaW50RGF0YS5zZWdtZW50UGxhdGZvcm1Db3N0SW5Vc2QKCWZyYW1lX2RpZyAzIC8vIHNlZ21lbnRNaW50Q29zdDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgOAoJYnRvaQoJPAoJYnogKmlmNjhfZW5kCgoJLy8gKmlmNjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTI4MAoJLy8gc2VnbWVudE1pbnRDb3N0ID0gY29uc3RyYWludERhdGEuc2VnbWVudFBsYXRmb3JtQ29zdEluVXNkCglmcmFtZV9kaWcgMCAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHNlZ21lbnRNaW50Q29zdDogdWludDY0CgoqaWY2OF9lbmQ6CgliICppZjY3X2VuZAoKKmlmNjdfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyODQKCS8vIHNlZ21lbnRNaW50Q29zdCA9IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJblVzZAoJZnJhbWVfZGlnIDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBzZWdtZW50TWludENvc3Q6IHVpbnQ2NAoKKmlmNjdfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTI4NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHNlZ21lbnRNaW50Q29zdCA+PSBjb25zdHJhaW50RGF0YS5zZWdtZW50UGxhdGZvcm1Db3N0SW5Vc2QsCgkvLyAgICAgICAgICAgICAgICAgJ3NlZ21lbnQgbWludCBjb3N0IG11c3QgYmUgYXQgbGVhc3QgTkZEX01JTl9TRUdNRU5UX1VTRCcsCgkvLyAgICAgICAgICAgICApCglmcmFtZV9kaWcgMyAvLyBzZWdtZW50TWludENvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT49CgoJLy8gc2VnbWVudCBtaW50IGNvc3QgbXVzdCBiZSBhdCBsZWFzdCBORkRfTUlOX1NFR01FTlRfVVNECglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjkzCgkvLyByZXRQcmljZSA9IHRoaXMudXNkSW5NaWNyb0FsZ28oc2VnbWVudE1pbnRDb3N0KQoJZnJhbWVfZGlnIDMgLy8gc2VnbWVudE1pbnRDb3N0OiB1aW50NjQKCWNhbGxzdWIgdXNkSW5NaWNyb0FsZ28KCWZyYW1lX2J1cnkgMSAvLyByZXRQcmljZTogdWludDY0CgliICppZjY2X2VuZAoKKmlmNjZfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEyOTYKCS8vIGJhc2VuYW1lTGVuZ3RoID0gbmZkTmFtZUluZm8ubnVtQ2hhcnNJbkJhc2VuYW1lCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZUluZm86IG5mZExldHRlcnNJbmZvCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxIDgKCWJ0b2kKCWZyYW1lX2J1cnkgNCAvLyBiYXNlbmFtZUxlbmd0aDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTI5NwoJLy8gdXNkQ29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gdXNkQ29zdDogdWludDY0CgoJLy8gKmlmNjlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMjk4CgkvLyBiYXNlbmFtZUxlbmd0aCA+PSA1CglmcmFtZV9kaWcgNCAvLyBiYXNlbmFtZUxlbmd0aDogdWludDY0CglpbnRjIDYgLy8gNQoJPj0KCWJ6ICppZjY5X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNjlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTI5OQoJLy8gdXNkQ29zdCA9IDYwMAoJcHVzaGludCA2MDAKCWZyYW1lX2J1cnkgNSAvLyB1c2RDb3N0OiB1aW50NjQKCWIgKmlmNjlfZW5kCgoqaWY2OV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMDAKCS8vIGJhc2VuYW1lTGVuZ3RoID09PSA0CglmcmFtZV9kaWcgNCAvLyBiYXNlbmFtZUxlbmd0aDogdWludDY0CglpbnRjIDggLy8gNAoJPT0KCWJ6ICppZjY5X2Vsc2VpZjJfY29uZGl0aW9uCgoJLy8gKmlmNjlfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzAxCgkvLyB1c2RDb3N0ID0gMTIwMAoJcHVzaGludCAxMjAwCglmcmFtZV9idXJ5IDUgLy8gdXNkQ29zdDogdWludDY0CgliICppZjY5X2VuZAoKKmlmNjlfZWxzZWlmMl9jb25kaXRpb246CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzAyCgkvLyBiYXNlbmFtZUxlbmd0aCA9PT0gMwoJZnJhbWVfZGlnIDQgLy8gYmFzZW5hbWVMZW5ndGg6IHVpbnQ2NAoJaW50YyA3IC8vIDMKCT09CglieiAqaWY2OV9lbHNlaWYzX2NvbmRpdGlvbgoKCS8vICppZjY5X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMwMwoJLy8gdXNkQ29zdCA9IDMwMDAKCXB1c2hpbnQgMzAwMAoJZnJhbWVfYnVyeSA1IC8vIHVzZENvc3Q6IHVpbnQ2NAoJYiAqaWY2OV9lbmQKCippZjY5X2Vsc2VpZjNfY29uZGl0aW9uOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMwNAoJLy8gYmFzZW5hbWVMZW5ndGggPT09IDIKCWZyYW1lX2RpZyA0IC8vIGJhc2VuYW1lTGVuZ3RoOiB1aW50NjQKCWludGMgNSAvLyAyCgk9PQoJYnogKmlmNjlfZWxzZWlmNF9jb25kaXRpb24KCgkvLyAqaWY2OV9lbHNlaWYzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMDUKCS8vIHVzZENvc3QgPSA5MDAwCglwdXNoaW50IDkwMDAKCWZyYW1lX2J1cnkgNSAvLyB1c2RDb3N0OiB1aW50NjQKCWIgKmlmNjlfZW5kCgoqaWY2OV9lbHNlaWY0X2NvbmRpdGlvbjoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMDYKCS8vIGJhc2VuYW1lTGVuZ3RoID09PSAxCglmcmFtZV9kaWcgNCAvLyBiYXNlbmFtZUxlbmd0aDogdWludDY0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjY5X2Vsc2UKCgkvLyAqaWY2OV9lbHNlaWY0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMDcKCS8vIHVzZENvc3QgPSAzMTUwMAoJcHVzaGludCAzMTUwMAoJZnJhbWVfYnVyeSA1IC8vIHVzZENvc3Q6IHVpbnQ2NAoJYiAqaWY2OV9lbmQKCippZjY5X2Vsc2U6CgkvLyBpbnZhbGlkIGNvc3QgY2FsYwoJZXJyCgoqaWY2OV9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzExCgkvLyBuZXdVc2RDb3N0ID0gdGhpcy5jYWxjRnV0dXJlUHJpY2UodXNkQ29zdCwgZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9kaWcgNSAvLyB1c2RDb3N0OiB1aW50NjQKCWNhbGxzdWIgY2FsY0Z1dHVyZVByaWNlCglmcmFtZV9idXJ5IDYgLy8gbmV3VXNkQ29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMxMgoJLy8gcmV0UHJpY2UgPSB0aGlzLnVzZEluTWljcm9BbGdvKG5ld1VzZENvc3QpCglmcmFtZV9kaWcgNiAvLyBuZXdVc2RDb3N0OiB1aW50NjQKCWNhbGxzdWIgdXNkSW5NaWNyb0FsZ28KCWZyYW1lX2J1cnkgMSAvLyByZXRQcmljZTogdWludDY0CgoqaWY2Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzE2CgkvLyBuZmRBcHBJZCA9IHRoaXMuZ2V0TmFtZUFwcElkKG5mZE5hbWUpCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCgljYWxsc3ViIGdldE5hbWVBcHBJZAoJZnJhbWVfYnVyeSA3IC8vIG5mZEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzE3CgkvLyBpbkF1Y3Rpb246IGJvb2xlYW4gPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgOCAvLyBpbkF1Y3Rpb246IGJvb2xlYW4KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzE4CgkvLyBpc0V4cGlyZWQ6IGJvb2xlYW4gPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgOSAvLyBpc0V4cGlyZWQ6IGJvb2xlYW4KCgkvLyAqaWY3MF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMTkKCS8vIG5mZEFwcElkICE9PSAwCglmcmFtZV9kaWcgNyAvLyBuZmRBcHBJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjcwX2VuZAoKCS8vICppZjcwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMjAKCS8vIGlzRXhpc3RpbmdPd25lciA9IGNhbGxlciA9PT0gKEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpIGFzIEFkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY2FsbGVyOiBBZGRyZXNzCglmcmFtZV9kaWcgNyAvLyBuZmRBcHBJZDogdWludDY0CglieXRlYyAyIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikKCWFzc2VydAoJPT0KCWZyYW1lX2J1cnkgMTAgLy8gaXNFeGlzdGluZ093bmVyOiBib29sCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMyMQoJLy8gZXhwVGltZSA9IHRoaXMuc2FmZUdsb2JhbEludEdldEV4KG5mZEFwcElkLCBORkRfS0VZX0VYUElSQVRJT05USU1FKQoJYnl0ZWMgMTEgLy8gImkuZXhwaXJhdGlvblRpbWUiCglmcmFtZV9kaWcgNyAvLyBuZmRBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXRFeAoJZnJhbWVfYnVyeSAxMSAvLyBleHBUaW1lOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzIyCgkvLyBpc0V4cGlyZWQgPSB0aGlzLmlzRXhwaXJlZChleHBUaW1lKQoJZnJhbWVfZGlnIDExIC8vIGV4cFRpbWU6IHVpbnQ2NAoJY2FsbHN1YiBpc0V4cGlyZWQKCWZyYW1lX2J1cnkgOSAvLyBpc0V4cGlyZWQ6IGJvb2xlYW4KCgkvLyAqaWY3MV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMjMKCS8vIGlzRXhwaXJlZCAmJiAhaXNFeGlzdGluZ093bmVyCglmcmFtZV9kaWcgOSAvLyBpc0V4cGlyZWQ6IGJvb2xlYW4KCWR1cAoJYnogKnNraXBfYW5kMjIKCWZyYW1lX2RpZyAxMCAvLyBpc0V4aXN0aW5nT3duZXI6IGJvb2wKCSEKCSYmCgoqc2tpcF9hbmQyMjoKCWJ6ICppZjcxX2VuZAoKCS8vICppZjcxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMjQKCS8vIGluQXVjdGlvbiA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDggLy8gaW5BdWN0aW9uOiBib29sZWFuCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMyNwoJLy8gc3RhcnRpbmdQcmljZSA9IHRoaXMudXNkSW5NaWNyb0FsZ28oY29uc3RyYWludERhdGEuZXhwaXJlZFN0YXJ0aW5nUHJpY2UpCglmcmFtZV9kaWcgMCAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDY0IDgKCWJ0b2kKCWNhbGxzdWIgdXNkSW5NaWNyb0FsZ28KCWZyYW1lX2J1cnkgMTIgLy8gc3RhcnRpbmdQcmljZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMyOAoJLy8gZW5kUHJpY2UgPSByZXRQcmljZQoJZnJhbWVfZGlnIDEgLy8gcmV0UHJpY2U6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxMyAvLyBlbmRQcmljZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMyOQoJLy8gY3VyVGltZSA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDE0IC8vIGN1clRpbWU6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMzAKCS8vIGVuZFRpbWUgPSBleHBUaW1lICsgY29uc3RyYWludERhdGEuZXhwaXJlZEF1Y3Rpb25EdXJhdGlvbiAqIDYwICogNjAgKiAyNAoJZnJhbWVfZGlnIDExIC8vIGV4cFRpbWU6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCglpbnRjIDIzIC8vIDYwCgkqCglpbnRjIDIzIC8vIDYwCgkqCglwdXNoaW50IDI0CgkqCgkrCglmcmFtZV9idXJ5IDE1IC8vIGVuZFRpbWU6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMzUKCS8vIGFzc2VydChjdXJUaW1lID4gZXhwVGltZSkKCWZyYW1lX2RpZyAxNCAvLyBjdXJUaW1lOiB1aW50NjQKCWZyYW1lX2RpZyAxMSAvLyBleHBUaW1lOiB1aW50NjQKCT4KCWFzc2VydAoKCS8vICppZjcyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTMzNgoJLy8gY3VyVGltZSA+PSBlbmRUaW1lCglmcmFtZV9kaWcgMTQgLy8gY3VyVGltZTogdWludDY0CglmcmFtZV9kaWcgMTUgLy8gZW5kVGltZTogdWludDY0Cgk+PQoJYnogKmlmNzJfZWxzZQoKCS8vICppZjcyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzMzcKCS8vIHJldFByaWNlID0gZW5kUHJpY2UKCWZyYW1lX2RpZyAxMyAvLyBlbmRQcmljZTogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcmV0UHJpY2U6IHVpbnQ2NAoJYiAqaWY3Ml9lbmQKCippZjcyX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzM5CgkvLyBlbGFwc2VkID0gY3VyVGltZSAtIGV4cFRpbWUKCWZyYW1lX2RpZyAxNCAvLyBjdXJUaW1lOiB1aW50NjQKCWZyYW1lX2RpZyAxMSAvLyBleHBUaW1lOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTYgLy8gZWxhcHNlZDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTM0MAoJLy8gdG90YWxEdXJhdGlvbiA9IGVuZFRpbWUgLSBleHBUaW1lCglmcmFtZV9kaWcgMTUgLy8gZW5kVGltZTogdWludDY0CglmcmFtZV9kaWcgMTEgLy8gZXhwVGltZTogdWludDY0CgktCglmcmFtZV9idXJ5IDE3IC8vIHRvdGFsRHVyYXRpb246IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzNDEKCS8vIHByaWNlRGlmZmVyZW5jZSA9IHN0YXJ0aW5nUHJpY2UgLSBlbmRQcmljZQoJZnJhbWVfZGlnIDEyIC8vIHN0YXJ0aW5nUHJpY2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDEzIC8vIGVuZFByaWNlOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTggLy8gcHJpY2VEaWZmZXJlbmNlOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzQyCgkvLyBwcmljZURyb3AgPSAocHJpY2VEaWZmZXJlbmNlICogZWxhcHNlZCkgLyB0b3RhbER1cmF0aW9uCglmcmFtZV9kaWcgMTggLy8gcHJpY2VEaWZmZXJlbmNlOiB1aW50NjQKCWZyYW1lX2RpZyAxNiAvLyBlbGFwc2VkOiB1aW50NjQKCSoKCWZyYW1lX2RpZyAxNyAvLyB0b3RhbER1cmF0aW9uOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMTkgLy8gcHJpY2VEcm9wOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzQzCgkvLyByZXRQcmljZSA9IHN0YXJ0aW5nUHJpY2UgLSBwcmljZURyb3AKCWZyYW1lX2RpZyAxMiAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAxOSAvLyBwcmljZURyb3A6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxIC8vIHJldFByaWNlOiB1aW50NjQKCgkvLyAqaWY3M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzNDUKCS8vIHJldFByaWNlIDwgZW5kUHJpY2UKCWZyYW1lX2RpZyAxIC8vIHJldFByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAxMyAvLyBlbmRQcmljZTogdWludDY0Cgk8CglieiAqaWY3M19lbmQKCgkvLyAqaWY3M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzQ2CgkvLyByZXRQcmljZSA9IGVuZFByaWNlCglmcmFtZV9kaWcgMTMgLy8gZW5kUHJpY2U6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIHJldFByaWNlOiB1aW50NjQKCippZjczX2VuZDoKCippZjcyX2VuZDoKCippZjcxX2VuZDoKCippZjcwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzNTEKCS8vIGFzc2VydChyZXRQcmljZSA+PSAxMDAwMDAwLCAncHJpY2UgYWx3YXlzIG5lZWRzIHRvIGJlIGF0IGxlYXN0IDEgYWxnbycpCglmcmFtZV9kaWcgMSAvLyByZXRQcmljZTogdWludDY0CglwdXNoaW50IDEwMDAwMDAKCT49CgoJLy8gcHJpY2UgYWx3YXlzIG5lZWRzIHRvIGJlIGF0IGxlYXN0IDEgYWxnbwoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTM1MgoJLy8gcmV0dXJuIHsKCS8vICAgICAgICAgICAgIG9uZVllYXJQcmljZTogcmV0UHJpY2UsCgkvLyAgICAgICAgICAgICBjYXJyeUNvc3Q6IG5mZEFwcElkID09PSAwID8gdGhpcy5nZXROZmRNYnJDb3N0KG5mZE5hbWUpIDogMCwKCS8vICAgICAgICAgICAgIGV4aXN0czogbmZkQXBwSWQgIT09IDAsCgkvLyAgICAgICAgICAgICBpbkF1Y3Rpb246IGluQXVjdGlvbiwKCS8vICAgICAgICAgICAgIGlzRXhwaXJlZDogaXNFeHBpcmVkLAoJLy8gICAgICAgICB9CglmcmFtZV9kaWcgMSAvLyByZXRQcmljZTogdWludDY0CglpdG9iCglmcmFtZV9kaWcgNyAvLyBuZmRBcHBJZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICp0ZXJuYXJ5Ml9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBnZXROZmRNYnJDb3N0CgliICp0ZXJuYXJ5Ml9lbmQKCip0ZXJuYXJ5Ml9mYWxzZToKCWludGMgMCAvLyAwCgoqdGVybmFyeTJfZW5kOgoJaXRvYgoJY29uY2F0CglieXRlYyAxNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDcgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglzZXRiaXQKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgOSAvLyBpc0V4cGlyZWQ6IGJvb2xlYW4KCXNldGJpdAoJaW50YyA1IC8vIDIKCWZyYW1lX2RpZyA4IC8vIGluQXVjdGlvbjogYm9vbGVhbgoJc2V0Yml0Cgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxOQoJcmV0c3ViCgovLyBjYWxjRnV0dXJlUHJpY2UodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9jYWxjRnV0dXJlUHJpY2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDEgLy8gMHgxNTFmN2M3NQoKCS8vIGZvclRpbWU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGN1clByaWNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNhbGNGdXR1cmVQcmljZSh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBjYWxjRnV0dXJlUHJpY2UKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjYWxjRnV0dXJlUHJpY2UoY3VyUHJpY2U6IHVpbnQ2NCwgZm9yVGltZTogdWludDY0KTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZXMgdGhlIGZ1dHVyZSBwcmljZSBiYXNlZCBvbiB0aGUgY3VycmVudCBwcmljZSBhbmQgdGhlIG51bWJlciBvZiB5ZWFycy4KLy8KLy8gQHBhcmFtIHt1aW50NjR9IGN1clByaWNlIC0gVGhlIGN1cnJlbnQgcHJpY2UgaW4gVVNEIChpbiBkZWNpbWFscykuIEZvciBleGFtcGxlLCBpZiB0aGUgY3VycmVudCBwcmljZSBpcyAkMi4wMCwgdGhlIHZhbHVlIHNob3VsZCBiZSAyMDAuCi8vIEBwYXJhbSB7dWludDY0fSBmb3JUaW1lIC0gVGhlIHRpbWVzdGFtcCB0byBjYWxjIHRoZSBmdXR1cmUgcHJpY2UgYmFzZWQgb24gLSBpZTogMSB5ZWFyIHBhc3QgJ2dvIGxpdmUgZGF0ZScgdGhlIHByaWNlIHdvdWxkIGhhdmUgaW5mbGF0ZWQgYnkgMSB5ZWFyLgovLwovLyBAcmV0dXJuIHt1aW50NjR9IFRoZSBmdXR1cmUgcHJpY2UgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgY3VycmVudCBwcmljZSBhbmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgeWVhcnMuCmNhbGNGdXR1cmVQcmljZToKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDMKCgkvLyAqaWY3NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzNzIKCS8vIGZvclRpbWUgPCA1Njk3NTAyODQ4MDAKCWZyYW1lX2RpZyAtMiAvLyBmb3JUaW1lOiB1aW50NjQKCWludGMgMTkgLy8gNTY5NzUwMjg0ODAwCgk8CglieiAqaWY3NF9lbmQKCgkvLyAqaWY3NF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyByZXR1cm4gY3VyUHJpY2UKCWZyYW1lX2RpZyAtMSAvLyBjdXJQcmljZTogdWludDY0CgliICpjYWxjRnV0dXJlUHJpY2UqcmV0dXJuCgoqaWY3NF9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzc2CgkvLyB0aW1lUGFzdExhdW5jaCA9IGZvclRpbWUgLSA1Njk3NTAyODQ4MDAKCWZyYW1lX2RpZyAtMiAvLyBmb3JUaW1lOiB1aW50NjQKCWludGMgMTkgLy8gNTY5NzUwMjg0ODAwCgktCglmcmFtZV9idXJ5IDAgLy8gdGltZVBhc3RMYXVuY2g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzNzkKCS8vIHllYXJzQWZ0ZXJMYXVuY2ggPSB0aW1lUGFzdExhdW5jaCAvIDMxNTM2MDAwCglmcmFtZV9kaWcgMCAvLyB0aW1lUGFzdExhdW5jaDogdWludDY0CglwdXNoaW50IDMxNTM2MDAwCgkvCglmcmFtZV9idXJ5IDEgLy8geWVhcnNBZnRlckxhdW5jaDogdWludDY0CgoJLy8gKmlmNzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxMzgwCgkvLyB5ZWFyc0FmdGVyTGF1bmNoID09PSAwCglmcmFtZV9kaWcgMSAvLyB5ZWFyc0FmdGVyTGF1bmNoOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNzVfZW5kCgoJLy8gKmlmNzVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTM4MQoJLy8gcmV0dXJuIGN1clByaWNlCglmcmFtZV9kaWcgLTEgLy8gY3VyUHJpY2U6IHVpbnQ2NAoJYiAqY2FsY0Z1dHVyZVByaWNlKnJldHVybgoKKmlmNzVfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTM4NwoJLy8gYWRqSW5mbGF0aW9uID0gZXhwdygxMDIsIHllYXJzQWZ0ZXJMYXVuY2gpCglwdXNoaW50IDEwMgoJZnJhbWVfZGlnIDEgLy8geWVhcnNBZnRlckxhdW5jaDogdWludDY0CglleHB3CglmcmFtZV9idXJ5IDIgLy8gYWRqSW5mbGF0aW9uIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDMgLy8gYWRqSW5mbGF0aW9uIGhpZ2g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzODgKCS8vIHJldHVybiAoY3VyUHJpY2UgKiBhZGpJbmZsYXRpb24ubG93KSAvIDEwMAoJZnJhbWVfZGlnIC0xIC8vIGN1clByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIGFkakluZmxhdGlvbiBsb3c6IHVpbnQ2NAoJKgoJcHVzaGludCAxMDAKCS8KCipjYWxjRnV0dXJlUHJpY2UqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyBwb3cxMChkZWNpbWFsczogdWludDY0KTogdWludDY0CnBvdzEwOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjEzOTIKCS8vIGV4cFJlc3VsdCA9IGV4cHcoMTAsIGRlY2ltYWxzKQoJaW50YyAxMiAvLyAxMAoJZnJhbWVfZGlnIC0xIC8vIGRlY2ltYWxzOiB1aW50NjQKCWV4cHcKCWZyYW1lX2J1cnkgMCAvLyBleHBSZXN1bHQgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBleHBSZXN1bHQgaGlnaDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTM5MwoJLy8gcmV0dXJuIGV4cFJlc3VsdC5sb3cKCWZyYW1lX2RpZyAwIC8vIGV4cFJlc3VsdCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gbWluQmFsYW5jZUZvckFjY291bnQoY29udHJhY3RzOiB1aW50NjQsIGV4dHJhUGFnZXM6IHVpbnQ2NCwgYXNzZXRzOiB1aW50NjQsIGxvY2FsSW50czogdWludDY0LCBsb2NhbEJ5dGVzOiB1aW50NjQsIGdsb2JhbEludHM6IHVpbnQ2NCwgZ2xvYmFsQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NAptaW5CYWxhbmNlRm9yQWNjb3VudDoKCXByb3RvIDcgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQwNQoJLy8gbWluQmFsID0gQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRQoJaW50YyAxMSAvLyAxMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MDYKCS8vIG1pbkJhbCArPSBjb250cmFjdHMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBjb250cmFjdHM6IHVpbnQ2NAoJaW50YyAxMSAvLyAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MDcKCS8vIG1pbkJhbCArPSBleHRyYVBhZ2VzICogQVBQTElDQVRJT05fQkFTRV9GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gZXh0cmFQYWdlczogdWludDY0CglpbnRjIDExIC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQwOAoJLy8gbWluQmFsICs9IGFzc2V0cyAqIEFTU0VUX0hPTERJTkdfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGFzc2V0czogdWludDY0CglpbnRjIDExIC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQwOQoJLy8gbWluQmFsICs9IGxvY2FsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGxvY2FsSW50czogdWludDY0CglpbnRjIDIwIC8vIDI4NTAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDEwCgkvLyBtaW5CYWwgKz0gZ2xvYmFsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC02IC8vIGdsb2JhbEludHM6IHVpbnQ2NAoJaW50YyAyMCAvLyAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQxMQoJLy8gbWluQmFsICs9IGxvY2FsQnl0ZXMgKiBTU0NfVkFMVUVfQllURVMKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTUgLy8gbG9jYWxCeXRlczogdWludDY0CglpbnRjIDIxIC8vIDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDEyCgkvLyBtaW5CYWwgKz0gZ2xvYmFsQnl0ZXMgKiBTU0NfVkFMVUVfQllURVMKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTcgLy8gZ2xvYmFsQnl0ZXM6IHVpbnQ2NAoJaW50YyAyMSAvLyA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQxMwoJLy8gcmV0dXJuIG1pbkJhbAoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UobmV3Qm94ZXM6IHVpbnQ2NCwgdG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMiAxCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQxNwoJLy8gcmV0dXJuIFNDQk9YX1BFUkJPWCAqIG5ld0JveGVzICsgdG90YWxOdW1CeXRlcyAqIFNDQk9YX1BFUkJZVEUKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIG5ld0JveGVzOiB1aW50NjQKCSoKCWZyYW1lX2RpZyAtMiAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCXB1c2hpbnQgNDAwCgkqCgkrCglyZXRzdWIKCi8vIGNvbmRlbnNlZEFzYU5hbWUobmZkTmFtZTogc3RyaW5nKTogc3RyaW5nCmNvbmRlbnNlZEFzYU5hbWU6Cglwcm90byAxIDEKCgkvLyAqaWY3Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MjIKCS8vIGxlbihuZmROYW1lKSA8PSAzMgoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJbGVuCglpbnRjIDQgLy8gMzIKCTw9CglieiAqaWY3Nl9lbmQKCgkvLyAqaWY3Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDIzCgkvLyByZXR1cm4gbmZkTmFtZQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJcmV0c3ViCgoqaWY3Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDI2CgkvLyByZXR1cm4gc3Vic3RyaW5nMyhuZmROYW1lLCAwLCAzMiAtIGxlbihzdWZmaXgpKSArIHN1ZmZpeAoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJaW50YyAwIC8vIDAKCWludGMgNCAvLyAzMgoJYnl0ZWMgMTcgLy8gIi4uLmFsZ28iCglsZW4KCS0KCXN1YnN0cmluZzMKCWJ5dGVjIDE3IC8vICIuLi5hbGdvIgoJY29uY2F0CglyZXRzdWIKCi8vIGVuY29kZVVWYXJJbnRJbXBsKHZhbDogdWludDY0LCBiOiBieXRlcyk6IGJ5dGVzCmVuY29kZVVWYXJJbnRJbXBsOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDMwCgkvLyBidWZmID0gYgoJZnJhbWVfZGlnIC0yIC8vIGI6IGJ5dGVzCglmcmFtZV9idXJ5IDAgLy8gYnVmZjogYnl0ZVtdCgoJLy8gKmlmNzdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDMxCgkvLyB2YWwgPj0gMTI4CglmcmFtZV9kaWcgLTEgLy8gdmFsOiB1aW50NjQKCWludGMgMjQgLy8gMTI4Cgk+PQoJYnogKmlmNzdfZWxzZQoKCS8vICppZjc3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0MzIKCS8vIGJ1ZmYgPSB0aGlzLmVuY29kZVVWYXJJbnRJbXBsKHZhbCA+PiA3LCBleHRyYWN0MyhpdG9iKCh2YWwgJiAyNTUpIHwgMTI4KSwgNywgMSkpCglmcmFtZV9kaWcgLTEgLy8gdmFsOiB1aW50NjQKCWludGMgMjUgLy8gMjU1CgkmCglpbnRjIDI0IC8vIDEyOAoJfAoJaXRvYgoJZXh0cmFjdCA3IDEKCWZyYW1lX2RpZyAtMSAvLyB2YWw6IHVpbnQ2NAoJcHVzaGludCA3CglzaHIKCWNhbGxzdWIgZW5jb2RlVVZhckludEltcGwKCWZyYW1lX2J1cnkgMCAvLyBidWZmOiBieXRlW10KCWIgKmlmNzdfZW5kCgoqaWY3N19lbHNlOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQzMwoJLy8gYnVmZiA9IGV4dHJhY3QzKGl0b2IodmFsICYgMjU1KSwgNywgMSkKCWZyYW1lX2RpZyAtMSAvLyB2YWw6IHVpbnQ2NAoJaW50YyAyNSAvLyAyNTUKCSYKCWl0b2IKCWV4dHJhY3QgNyAxCglmcmFtZV9idXJ5IDAgLy8gYnVmZjogYnl0ZVtdCgoqaWY3N19lbmQ6CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDM1CgkvLyByZXR1cm4gYiArIGJ1ZmYKCWZyYW1lX2RpZyAtMiAvLyBiOiBieXRlcwoJZnJhbWVfZGlnIDAgLy8gYnVmZjogYnl0ZVtdCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZW5jb2RlVVZhckludCh2YWw6IHVpbnQ2NCk6IGJ5dGVzCmVuY29kZVVWYXJJbnQ6Cglwcm90byAxIDEKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDM5CgkvLyByZXR1cm4gdGhpcy5lbmNvZGVVVmFySW50SW1wbCh2YWwsICcnKQoJYnl0ZWMgMCAvLyAgIiIKCWZyYW1lX2RpZyAtMSAvLyB2YWw6IHVpbnQ2NAoJY2FsbHN1YiBlbmNvZGVVVmFySW50SW1wbAoJcmV0c3ViCgovLyBnZXRMc2lnQWRkcmVzcyhieXRlc1RvQWRkOiBieXRlcyk6IGJ5dGVzCmdldExzaWdBZGRyZXNzOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDQzCgkvLyBsc2lnQnl0ZUNvZGUgPQoJLy8gICAgICAgICAgICAgaGV4KCcweDA1MjAwMTAxODAwODAxMDIwMzA0MDUwNicpICsKCS8vICAgICAgICAgICAgIGhleCgnMHgwNzA4MTczNTAwMzExODM0MDAxMjMxMTAnKSArCgkvLyAgICAgICAgICAgICBoZXgoJzB4ODEwNjEyMTAzMTE5MjIxMjMxMTk4MTAwJykgKwoJLy8gICAgICAgICAgICAgaGV4KCcweDEyMTExMDQwMDAwMTAwMjI0MzI2MDEnKQoJcHVzaGJ5dGVzIDB4MDUyMDAxMDE4MDA4MDEwMjAzMDQwNTA2MDcwODE3MzUwMDMxMTgzNDAwMTIzMTEwODEwNjEyMTAzMTE5MjIxMjMxMTk4MTAwMTIxMTEwNDAwMDAxMDAyMjQzMjYwMQoJZnJhbWVfYnVyeSAwIC8vIGxzaWdCeXRlQ29kZTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ0OAoJLy8gbHNpZ0J5dGVDb2RlID0gcmVwbGFjZTMobHNpZ0J5dGVDb2RlLCA2LCBpdG9iKHRoaXMuYXBwKSkKCWZyYW1lX2RpZyAwIC8vIGxzaWdCeXRlQ29kZTogYnl0ZVtdCglpbnRjIDMgLy8gNgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBsc2lnQnl0ZUNvZGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0NDkKCS8vIGxzaWdCeXRlQ29kZSA9IGxzaWdCeXRlQ29kZSArIHRoaXMuZW5jb2RlVVZhckludChieXRlc1RvQWRkLmxlbmd0aCkgKyBieXRlc1RvQWRkCglmcmFtZV9kaWcgMCAvLyBsc2lnQnl0ZUNvZGU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0xIC8vIGJ5dGVzVG9BZGQ6IGJ5dGVzCglsZW4KCWNhbGxzdWIgZW5jb2RlVVZhckludAoJY29uY2F0CglmcmFtZV9kaWcgLTEgLy8gYnl0ZXNUb0FkZDogYnl0ZXMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGxzaWdCeXRlQ29kZTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ1MAoJLy8gcmV0dXJuIHNoYTUxMl8yNTYoJ1Byb2dyYW0nICsgbHNpZ0J5dGVDb2RlKSBhcyBieXRlcwoJcHVzaGJ5dGVzIDB4NTA3MjZmNjc3MjYxNmQgLy8gIlByb2dyYW0iCglmcmFtZV9kaWcgMCAvLyBsc2lnQnl0ZUNvZGU6IGJ5dGVbXQoJY29uY2F0CglzaGE1MTJfMjU2CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzVjFORkRJREF1dGhlbnRpYyhuZmROYW1lOiBieXRlcywgbmZkQXBwSWQ6IHVpbnQ2NCk6IGJvb2xlYW4KaXNWMU5GRElEQXV0aGVudGljOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDU0CgkvLyBwcm9nSGFzaCA9IHRoaXMuZ2V0THNpZ0FkZHJlc3MoJ25hbWUvJyArIG5mZE5hbWUpCglieXRlYyAxMyAvLyAgIm5hbWUvIgoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IGJ5dGVzCgljb25jYXQKCWNhbGxzdWIgZ2V0THNpZ0FkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBwcm9nSGFzaDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ1NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgdGhpcy5sb2NhbFN0YXRlKEFkZHJlc3MuZnJvbUJ5dGVzKHByb2dIYXNoKSwgUkVHSVNUUllfS0VZX0FQUElEKS5leGlzdHMsCgkvLyAgICAgICAgICAgICAnbHNpZyBoYXMgdG8gaGF2ZSBpLmFwcGlkIGxvY2Fsc3RhdGUnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgMCAvLyBwcm9nSGFzaDogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAiaS5hcHBpZCIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoKCS8vIGxzaWcgaGFzIHRvIGhhdmUgaS5hcHBpZCBsb2NhbHN0YXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDYwCgkvLyByZXR1cm4gdGhpcy5sb2NhbFN0YXRlKEFkZHJlc3MuZnJvbUJ5dGVzKHByb2dIYXNoKSwgUkVHSVNUUllfS0VZX0FQUElEKS52YWx1ZSA9PT0gaXRvYihuZmRBcHBJZCkKCWZyYW1lX2RpZyAwIC8vIHByb2dIYXNoOiBieXRlW10KCWJ5dGVjIDE0IC8vICJpLmFwcGlkIgoJYXBwX2xvY2FsX2dldAoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCT09CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEJveE5hbWUobmZkTmFtZTogYnl0ZXMpOiBieXRlcwpnZXRCb3hOYW1lOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ2NAoJLy8gcmV0dXJuIHNoYTI1NignbmFtZS8nICsgbmZkTmFtZSkgYXMgYnl0ZXMKCWJ5dGVjIDEzIC8vICAibmFtZS8iCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogYnl0ZXMKCWNvbmNhdAoJc2hhMjU2CglyZXRzdWIKCi8vIGdldEFsZ29BZGRyZXNzQm94TmFtZShhZGRyZXNzOiBieXRlcyk6IGJ5dGVzCmdldEFsZ29BZGRyZXNzQm94TmFtZToKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0NjgKCS8vIHJldHVybiBzaGEyNTYoJ2FkZHIvYWxnby8nICsgYWRkcmVzcykgYXMgYnl0ZXMKCXB1c2hieXRlcyAweDYxNjQ2NDcyMmY2MTZjNjc2ZjJmIC8vICJhZGRyL2FsZ28vIgoJZnJhbWVfZGlnIC0xIC8vIGFkZHJlc3M6IGJ5dGVzCgljb25jYXQKCXNoYTI1NgoJcmV0c3ViCgovLyBnZXRBY2NvdW50T3duc05mZEJveE5hbWUodXNlckFjY291bnQ6IEFkZHJlc3MsIG5mZEFwcElkOiB1aW50NjQpOiBieXRlcwpnZXRBY2NvdW50T3duc05mZEJveE5hbWU6Cglwcm90byAyIDEKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDc0CgkvLyByZXR1cm4gY29uY2F0KCdPJywgY29uY2F0KHJhd0J5dGVzKHVzZXJBY2NvdW50KSwgaXRvYihuZmRBcHBJZCkpKQoJcHVzaGJ5dGVzIDB4NGYgLy8gIk8iCglmcmFtZV9kaWcgLTEgLy8gdXNlckFjY291bnQ6IEFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvbmNhdAoJcmV0c3ViCgovLyBpc1YyTmZkQXBwSWRBdXRoZW50aWMobmZkTmFtZTogYnl0ZXMsIG5mZEFwcElkOiB1aW50NjQpOiBib29sZWFuCmlzVjJOZmRBcHBJZEF1dGhlbnRpYzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDIKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDc4CgkvLyBib3hOYW1lID0gdGhpcy5nZXRCb3hOYW1lKG5mZE5hbWUpCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogYnl0ZXMKCWNhbGxzdWIgZ2V0Qm94TmFtZQoJZnJhbWVfYnVyeSAwIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0NzkKCS8vIGJveERhdGEgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIGJveERhdGE6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0ODAKCS8vIGJveExlbmd0aCA9IHRoaXMuYm94ZXMoYm94TmFtZSkuc2l6ZQoJZnJhbWVfZGlnIDAgLy8gYm94TmFtZTogYnl0ZVtdCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGJveE5hbWUpLnNpemUKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIGJveExlbmd0aDogdWludDY0CgoJLy8gKmlmNzhfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDgzCgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY3OF9lbmQKCgkvLyAqaWY3OF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDgzCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgliICppc1YyTmZkQXBwSWRBdXRoZW50aWMqcmV0dXJuCgoqaWY3OF9lbmQ6CgkvLyAqaWY3OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE0ODUKCS8vIGJveExlbmd0aCAhPT0gMTYKCWZyYW1lX2RpZyAyIC8vIGJveExlbmd0aDogdWludDY0CglpbnRjIDEwIC8vIDE2CgkhPQoJYnogKmlmNzlfZW5kCgoJLy8gKmlmNzlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ4NQoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoJYiAqaXNWMk5mZEFwcElkQXV0aGVudGljKnJldHVybgoKKmlmNzlfZW5kOgoJLy8gKmlmODBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDg2CgkvLyBuZmROYW1lLmxlbmd0aCA8IDUKCWZyYW1lX2RpZyAtMSAvLyBuZmROYW1lOiBieXRlcwoJbGVuCglpbnRjIDYgLy8gNQoJPAoJYnogKmlmODBfZW5kCgoJLy8gKmlmODBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ4NgoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoJYiAqaXNWMk5mZEFwcElkQXV0aGVudGljKnJldHVybgoKKmlmODBfZW5kOgoJLy8gKmlmODFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNDg3CgkvLyAoQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKSBhcyBieXRlcykgIT09IG5mZE5hbWUKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJZDogdWludDY0CglieXRlYyAxOSAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSWQpLmdsb2JhbFN0YXRlKE5GRF9LRVlfTkFNRSkKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IGJ5dGVzCgkhPQoJYnogKmlmODFfZW5kCgoJLy8gKmlmODFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ4NwoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoJYiAqaXNWMk5mZEFwcElkQXV0aGVudGljKnJldHVybgoKKmlmODFfZW5kOgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTQ4OAoJLy8gcmV0dXJuIGV4dHJhY3RVaW50NjQoYm94RGF0YSwgOCkgPT09IG5mZEFwcElkCglmcmFtZV9kaWcgMSAvLyBib3hEYXRhOiBieXRlW10KCWludGMgMiAvLyA4CglleHRyYWN0X3VpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElkOiB1aW50NjQKCT09CgoqaXNWMk5mZEFwcElkQXV0aGVudGljKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gY2FsY0V4cGlyYXRpb24ocmVuZXdhbFByaWNlOiB1aW50NjQsIGFtdFBhaWQ6IHVpbnQ2NCwgY3VyVGltZTogdWludDY0LCBtYXhZZWFyc0FsbG93ZWQ6IHVpbnQ2NCk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGVzIHRoZSBuZXcgZXhwaXJhdGlvbiB0aW1lIGJhc2VkIG9uIHRoZSByZW5ld2FsIHByaWNlLCBhbW91bnQgcGFpZCwgY3VycmVudCB0aW1lLCBhbmQgbWF4aW11bSB5ZWFycyBhbGxvd2VkLgovLwovLyBAcGFyYW0gcmVuZXdhbFByaWNlIC0gVGhlIHByaWNlIGZvciByZW5ld2luZyB0aGUgZXhwaXJhdGlvbi4KLy8gQHBhcmFtIGFtdFBhaWQgLSBUaGUgYW1vdW50IHBhaWQgZm9yIHRoZSByZW5ld2FsLgovLyBAcGFyYW0gY3VyVGltZSAtIFRoZSBjdXJyZW50IHRpbWUgaW4gdW5peCB0aW1lIHNlY29uZHMuCi8vIEBwYXJhbSBtYXhZZWFyc0FsbG93ZWQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgeWVhcnMgYWxsb3dlZCBmb3IgdGhlIGV4cGlyYXRpb24uCi8vCi8vIEByZXR1cm4gVGhlIG5ldyBleHBpcmF0aW9uIHRpbWUgaW4gdW5peHRpbWUgc2Vjb25kcwpjYWxjRXhwaXJhdGlvbjoKCXByb3RvIDQgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNTAyCgkvLyBleHRyYVNlY29uZHMgPSAoMzY1ICogYW10UGFpZCAqIFNFQ1NfSU5fREFZKSAvIHJlbmV3YWxQcmljZQoJaW50YyAxNSAvLyAzNjUKCWZyYW1lX2RpZyAtMiAvLyBhbXRQYWlkOiB1aW50NjQKCSoKCWludGMgMTQgLy8gODY0MDAKCSoKCWZyYW1lX2RpZyAtMSAvLyByZW5ld2FsUHJpY2U6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTUwMwoJLy8gbmV3RXhwaXJhdGlvbiA9IGN1clRpbWUgKyBleHRyYVNlY29uZHMKCWZyYW1lX2RpZyAtMyAvLyBjdXJUaW1lOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gbmV3RXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTUwNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgbmV3RXhwaXJhdGlvbiA8PSBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCArIDM2NSAqIG1heFllYXJzQWxsb3dlZCAqIFNFQ1NfSU5fREFZLAoJLy8gICAgICAgICAgICAgJ21heCBleHBpcmF0aW9uIGV4Y2VlZGVkIHBhcmFtZXRlcnMgZGVmaW5lZCBieSByZWdpc3RyeScsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIG5ld0V4cGlyYXRpb246IHVpbnQ2NAoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaW50YyAxNSAvLyAzNjUKCWZyYW1lX2RpZyAtNCAvLyBtYXhZZWFyc0FsbG93ZWQ6IHVpbnQ2NAoJKgoJaW50YyAxNCAvLyA4NjQwMAoJKgoJKwoJPD0KCgkvLyBtYXggZXhwaXJhdGlvbiBleGNlZWRlZCBwYXJhbWV0ZXJzIGRlZmluZWQgYnkgcmVnaXN0cnkKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRSZWdpc3RyeS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybiBuZXdFeHBpcmF0aW9uCglmcmFtZV9kaWcgMSAvLyBuZXdFeHBpcmF0aW9uOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGlzUHJlVjMoYXBwSWQ6IHVpbnQ2NCk6IGJvb2xlYW4KaXNQcmVWMzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GRFJlZ2lzdHJ5LmFsZ28udHM6MTUxMwoJLy8gbWFqVmVyID0gZXh0cmFjdDMoQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGUoTkZEX0tFWV9WRVJTSU9OKSBhcyBieXRlcywgMCwgMikKCWZyYW1lX2RpZyAtMSAvLyBhcHBJZDogdWludDY0CglieXRlYyA5IC8vICJpLnZlciIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShORkRfS0VZX1ZFUlNJT04pCglhc3NlcnQKCWV4dHJhY3QgMCAyCglmcmFtZV9idXJ5IDAgLy8gbWFqVmVyOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZEUmVnaXN0cnkuYWxnby50czoxNTE0CgkvLyByZXR1cm4gbWFqVmVyID09PSAnMS4nIHx8IG1halZlciA9PT0gJzIuJwoJZnJhbWVfZGlnIDAgLy8gbWFqVmVyOiBieXRlW10KCXB1c2hieXRlcyAweDMxMmUgLy8gIjEuIgoJPT0KCWR1cAoJYm56ICpza2lwX29yNAoJZnJhbWVfZGlnIDAgLy8gbWFqVmVyOiBieXRlW10KCXB1c2hieXRlcyAweDMyMmUgLy8gIjIuIgoJPT0KCXx8Cgoqc2tpcF9vcjQ6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludGMgMSAvLyAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweGZmYzIzMDNjIC8vIG1ldGhvZCAiZ2V0UHJpY2Uoc3RyaW5nLGFkZHJlc3MpKHVpbnQ2NCx1aW50NjQsYm9vbCxib29sLGJvb2wpIgoJcHVzaGJ5dGVzIDB4NzAzYjhjZTcgLy8gbWV0aG9kICJnZXRDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MjBlMDJlNzcgLy8gbWV0aG9kICJnZXROZmRNYnJDb3N0KHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHg3ZTE0YjZkMyAvLyBtZXRob2QgImdldE5mZExpbmtPbk1pbnRFeHRyYU1ickNvc3QoYWRkcmVzcykodWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgzZThlNGI3NiAvLyBtZXRob2QgIm1pbnROZmQocGF5LHN0cmluZyxhZGRyZXNzLGJvb2wpdWludDY0IgoJcHVzaGJ5dGVzIDB4OTQwZmE0NzEgLy8gbWV0aG9kICJsaW5rTmZkQWRkcmVzcyhzdHJpbmcsdWludDY0LGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDk1ZDhmNWNjIC8vIG1ldGhvZCAidW5saW5rTmZkQWRkcmVzcyhzdHJpbmcsdWludDY0LGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGQyNTk4ZjAyIC8vIG1ldGhvZCAib3duZXJzaGlwQXNzaWduKHN0cmluZyx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGYyMmM1N2YyIC8vIG1ldGhvZCAib3duZXJzaGlwQ2hhbmdlZChzdHJpbmcsdWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDY3MTE1NWIgLy8gbWV0aG9kICJzZXRBZGRyZXNzUHJpbWFyeU5mZChzdHJpbmcsdWludDY0LGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDE2ZWQ2YTVlIC8vIG1ldGhvZCAidXBncmFkZU5mZChzdHJpbmcpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4NGJlMjJmYzYgLy8gbWV0aG9kICJpc1ZhbGlkTmZkQXBwSWQoc3RyaW5nLHVpbnQ2NClib29sIgoJcHVzaGJ5dGVzIDB4ZWQ4MzE1NDMgLy8gbWV0aG9kICJnZXROYW1lQXBwSWQoc3RyaW5nKXVpbnQ2NCIKCXB1c2hieXRlcyAweGZmZWI5NTU1IC8vIG1ldGhvZCAiZ2V0QWRkcmVzc0FwcElkcyhhZGRyZXNzKXVpbnQ2NFtdIgoJcHVzaGJ5dGVzIDB4MmM0ZGM4YjAgLy8gbWV0aG9kICJuZmRDb250cmFjdEluaXQoc3RyaW5nLHVpbnQ2NCxieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweGYzODlhOGNjIC8vIG1ldGhvZCAibmZkQ29udHJhY3RMb2FkKHN0cmluZyx1aW50NjQsYnl0ZVtdKXZvaWQiCglwdXNoYnl0ZXMgMHgyZjMwYjQ4NSAvLyBtZXRob2QgIm5mZENvbnRyYWN0Q29tbWl0KHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4YTE2ODA4MDEgLy8gbWV0aG9kICJ1c2RJbk1pY3JvQWxnbyh1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4NGY2M2ZmZjYgLy8gbWV0aG9kICJjb3N0VG9BZGRUb0FkZHJlc3MoYWRkcmVzcyl1aW50NjQiCglwdXNoYnl0ZXMgMHg4Y2M4NWRhZCAvLyBtZXRob2QgImNhbGNGdXR1cmVQcmljZSh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZ2FzICphYmlfcm91dGVfZ2V0UHJpY2UgKmFiaV9yb3V0ZV9nZXRDb25zdHJhaW50cyAqYWJpX3JvdXRlX2dldE5mZE1ickNvc3QgKmFiaV9yb3V0ZV9nZXROZmRMaW5rT25NaW50RXh0cmFNYnJDb3N0ICphYmlfcm91dGVfbWludE5mZCAqYWJpX3JvdXRlX2xpbmtOZmRBZGRyZXNzICphYmlfcm91dGVfdW5saW5rTmZkQWRkcmVzcyAqYWJpX3JvdXRlX293bmVyc2hpcEFzc2lnbiAqYWJpX3JvdXRlX293bmVyc2hpcENoYW5nZWQgKmFiaV9yb3V0ZV9zZXRBZGRyZXNzUHJpbWFyeU5mZCAqYWJpX3JvdXRlX3VwZ3JhZGVOZmQgKmFiaV9yb3V0ZV9pc1ZhbGlkTmZkQXBwSWQgKmFiaV9yb3V0ZV9nZXROYW1lQXBwSWQgKmFiaV9yb3V0ZV9nZXRBZGRyZXNzQXBwSWRzICphYmlfcm91dGVfbmZkQ29udHJhY3RJbml0ICphYmlfcm91dGVfbmZkQ29udHJhY3RMb2FkICphYmlfcm91dGVfbmZkQ29udHJhY3RDb21taXQgKmFiaV9yb3V0ZV91c2RJbk1pY3JvQWxnbyAqYWJpX3JvdXRlX2Nvc3RUb0FkZFRvQWRkcmVzcyAqYWJpX3JvdXRlX2NhbGNGdXR1cmVQcmljZQoKCS8vICEhISEgV0FSTklORzogbm9uLUFCSSByb3V0aW5nCgljYWxsc3ViIG9uQ2FsbAoJaW50YyAxIC8vIDEKCXJldHVybgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vICEhISEgV0FSTklORzogbm9uLUFCSSByb3V0aW5nCgljYWxsc3ViIG9uQ2FsbAoJaW50YyAxIC8vIDEKCXJldHVybgoKKmludFRvQXNjaWk6Cglwcm90byAxIDEKCXB1c2hieXRlcyAweDMwMzEzMjMzMzQzNTM2MzczODM5IC8vICIwMTIzNDU2Nzg5IgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCWV4dHJhY3QzCglyZXRzdWIKCQoKKml0b2E6Cglwcm90byAxIDEKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKml0b2FfaWZfZW5kCglwdXNoYnl0ZXMgMHgzMAoJcmV0c3ViCgoqaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDEyIC8vIDEwCgkvCglpbnRjIDAgLy8gMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAxMiAvLyAxMAoJLwoJY2FsbHN1YiAqaXRvYQoJYiAqaXRvYV90ZXJuYXJ5X2VuZAoKKml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGVjIDAgLy8gICIiCgoqaXRvYV90ZXJuYXJ5X2VuZDoKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMTIgLy8gMTAKCSUKCWNhbGxzdWIgKmludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3ViCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=","clear":"I3ByYWdtYSB2ZXJzaW9uIDEw"},"templateVariables":{"adminAsaId":{"type":"uint64"},"nfdTreasuryAddr":{"type":"address"},"nfdCommission1Addr":{"type":"address"},"nfdCommission1Rate":{"type":"uint64"},"algoUsdOracleAppId":{"type":"uint64"},"developmentAllowShortMints":{"type":"uint64"}},"scratchVariables":{"adminAsaId":{"type":"uint64","slot":200},"nfdTreasuryAddr":{"type":"address","slot":201},"nfdCommission1Addr":{"type":"address","slot":202},"nfdCommission1Rate":{"type":"uint64","slot":203},"algoUsdOracleAppId":{"type":"uint64","slot":204},"developmentAllowShortMints":{"type":"uint64","slot":205}},"compilerInfo":{"compiler":"algod","compilerVersion":{"major":3,"minor":27,"patch":237217,"commitHash":"0bc3d7e4"}}} as unknown as Arc56Contract +export const APP_SPEC: Arc56Contract = {"name":"NFDRegistry","desc":"","methods":[{"name":"updateApplication","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["UpdateApplication"]}},{"name":"gas","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getPrice","desc":"Returns the price for a given NFD (single year), the max # of years allowed (Name for Display),\nand extra algo required to cover MBR when purchasing.","args":[{"name":"nfdName","type":"string","desc":"The NFD name for which to retrieve the price."},{"name":"caller","type":"address","desc":"the address this request is on behalf of (since an nfd contract might call us it\nneeds to be able to pass on the request on behalf of ITS caller - ie: getting price for an expired nfd will be\ndifferent if its owner ir asking.\n PriceInfo Type containing the price, carry cost, etc."}],"returns":{"type":"(uint64,uint64,bool,bool,bool)","struct":"PriceInfo"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getConstraints","args":[],"returns":{"type":"(uint64,uint64,uint64,address,uint64,uint64,uint64)","struct":"Constraints"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNfdMbrCost","desc":"Returns the MBR amounts needed to MINT an nfd.\nThis value needs to be added to purchase price in mintNfd call.\ngetPrice() returns it though.","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNfdLinkOnMintExtraMbrCost","args":[{"name":"address","type":"address"}],"returns":{"type":"(uint64,uint64)","struct":"LinkOnMintExtraMbrCosts"},"actions":{"create":[],"call":["NoOp"]}},{"name":"mintNfd","desc":"Mint an NFD (NFT) and create a new NFD instance.","args":[{"name":"purchaseTxn","type":"pay","desc":"The payment transaction covering the purchase amount of the nfd"},{"name":"nfdName","type":"string","desc":"The name of the NFD to mint"},{"name":"reservedFor","type":"address","desc":"The address that will own the NFD once minted (so you can buy for someone else)"},{"name":"linkOnMint","type":"bool","desc":"whether to auto-link the address (reserved for MUST MATCH payer!) at mint\n uint64 - The ID of the newly created NFD instance."}],"returns":{"type":"uint64"},"events":[{"name":"nfdRegistry_minted","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"priceOneYear","type":"uint64"},{"name":"paidAmount","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"owner","type":"address"},{"name":"expTime","type":"uint64"},{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"linkNfdAddress","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrToVerify","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"unlinkNfdAddress","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrToUnlink","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"ownershipAssign","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"ownershipChanged","desc":"This method is triggered when the ownership of an NFD (Non-Fungible Domain) changes.\nIt is called by the NFD via the purchase method. It can also be called by TxnLab admin for older 3.3\nNFDs when it detects purchased events for 3.3","args":[{"name":"nfdName","type":"string","desc":"The name of the NFD."},{"name":"nfdAppId","type":"uint64","desc":"The unique application ID of the NFD."},{"name":"seller","type":"address","desc":"The address of the prior owner (seller) of the nfd"},{"name":"buyer","type":"address","desc":"The address of the new owner of the NFD."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"setAddressPrimaryNfd","desc":"Makes the specified NFD the 'first' NFD in the reverse-address set so its the primary NFD for this address.\nThe NFD must be valid, and the sender must be the address (or nfd owner if vault). The NFD wouldn't already be\nin the reverse-lookup set if it wasn't already valid.","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"},{"name":"addrBeingModified","type":"address"}],"returns":{"type":"void"},"events":[{"name":"nfdRegistry_addressPrimaryNfdChanged","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"upgradeNfd","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"string"},"actions":{"create":[],"call":["NoOp"]}},{"name":"isValidNfdAppId","args":[{"name":"nfdName","type":"string"},{"name":"nfdAppId","type":"uint64"}],"returns":{"type":"bool"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getNameAppId","args":[{"name":"nfdName","type":"string"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getAddressAppIds","args":[{"name":"lookupAddress","type":"address"}],"returns":{"type":"uint64[]"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractInit","desc":"Initializes the NFD contract bytecode into the registry","args":[{"name":"version","type":"string","desc":"The version of the contract."},{"name":"size","type":"uint64","desc":"exact byte size of contract to load"},{"name":"clearCode","type":"byte[]","desc":"bytes of clear code"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractLoad","desc":"Loads contract data into the box at the specified offset.","args":[{"name":"version","type":"string","desc":"The version of the contract."},{"name":"offset","type":"uint64","desc":"The offset at which to replace the contract data within the box."},{"name":"data","type":"byte[]","desc":"The contract data to be loaded."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"nfdContractCommit","desc":"Commit a new version of the contract.","args":[{"name":"version","type":"string","desc":"The version number of the contract to be committed."}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"usdInMicroAlgo","args":[{"name":"usdCost","type":"uint64"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"costToAddToAddress","desc":"Returns the cost to add an NFD to the reverse-lookup data","args":[{"name":"lookupAddress","type":"address","desc":"The address to add the NFD app id to"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"calcFuturePrice","desc":"Calculates the future price based on the current price and the number of years.","args":[{"name":"curPrice","type":"uint64","desc":"The current price in USD (in decimals). For example, if the current price is $2.00, the value should be 200."},{"name":"forTime","type":"uint64","desc":"The timestamp to calc the future price based on - ie: 1 year past 'go live date' the price would have inflated by 1 year.\n\n\n uint64 The future price calculated based on the current price and the specified number of years."}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"createApplication","args":[],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]}}],"events":[{"name":"nfdRegistry_minted","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"priceOneYear","type":"uint64"},{"name":"paidAmount","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"owner","type":"address"},{"name":"expTime","type":"uint64"},{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}],"desc":""},{"name":"nfdRegistry_addressPrimaryNfdChanged","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"arcs":[4,56],"structs":{"PriceInfo":[{"name":"oneYearPrice","type":"uint64"},{"name":"carryCost","type":"uint64"},{"name":"exists","type":"bool"},{"name":"isExpired","type":"bool"},{"name":"inAuction","type":"bool"}],"Constraints":[{"name":"segmentPlatformCostInUsd","type":"uint64"},{"name":"segmentPlatformCostInAlgo","type":"uint64"},{"name":"maxYearsAllowed","type":"uint64"},{"name":"treasuryAddress","type":"address"},{"name":"expiredAuctionDuration","type":"uint64"},{"name":"expiredStartingPrice","type":"uint64"},{"name":"maxMintCarryCost","type":"uint64"}],"LinkOnMintExtraMbrCosts":[{"name":"linkingNfdMbrCost","type":"uint64"},{"name":"linkingRegistryMbrCost","type":"uint64"}]},"state":{"schema":{"global":{"bytes":0,"ints":0},"local":{"bytes":16,"ints":0}},"keys":{"global":{},"local":{},"box":{}},"maps":{"global":{},"local":{"localState":{"keyType":"AVMBytes","valueType":"AVMBytes"}},"box":{"boxes":{"keyType":"AVMBytes","valueType":"AVMBytes"}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"teal":25,"source":"contracts/NFDRegistry.algo.ts:51","errorMessage":"The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?","pc":[35]},{"teal":414,"source":"contracts/NFDRegistry.algo.ts:179","errorMessage":"invalid","pc":[516]},{"teal":510,"source":"contracts/NFDRegistry.algo.ts:198","errorMessage":"invalid method","pc":[637]},{"teal":514,"source":"contracts/NFDRegistry.algo.ts:200","errorMessage":"unknown method","pc":[638]},{"teal":542,"source":"contracts/NFDRegistry.algo.ts:216","errorMessage":"argument 0 (caller) for getPrice must be a address","pc":[658]},{"teal":736,"source":"contracts/NFDRegistry.algo.ts:256","errorMessage":"argument 0 (address) for getNfdLinkOnMintExtraMbrCost must be a address","pc":[909]},{"teal":780,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 0 (linkOnMint) for mintNfd must be a bool","pc":[947]},{"teal":792,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 1 (reservedFor) for mintNfd must be a address","pc":[958]},{"teal":808,"source":"contracts/NFDRegistry.algo.ts:272","errorMessage":"argument 3 (purchaseTxn) for mintNfd must be a pay transaction","pc":[974]},{"teal":843,"source":"contracts/NFDRegistry.algo.ts:273","errorMessage":"transaction verification failed: {\"txn\":\"purchaseTxn\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[996]},{"teal":931,"source":"contracts/NFDRegistry.algo.ts:290","errorMessage":"parent nfd/id must be found","pc":[1085]},{"teal":951,"source":"contracts/NFDRegistry.algo.ts:294","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_SELLER)","pc":[1114]},{"teal":968,"source":"contracts/NFDRegistry.algo.ts:298","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_OWNER)","pc":[1128]},{"teal":972,"source":"contracts/NFDRegistry.algo.ts:297","errorMessage":"only owner of root can mint segments if segments are locked","pc":[1130]},{"teal":996,"source":"contracts/NFDRegistry.algo.ts:306","errorMessage":"price can never be 0","pc":[1154]},{"teal":1052,"source":"contracts/NFDRegistry.algo.ts:315","errorMessage":"if linking on mint, the buyer MUST be who will be the owner (reservedFor)","pc":[1208]},{"teal":1081,"source":"contracts/NFDRegistry.algo.ts:322","errorMessage":"payment transaction must be at least enough to cover 30 days of nfd cost + carry cost","pc":[1232]},{"teal":1090,"source":"contracts/NFDRegistry.algo.ts:330","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[1236]},{"teal":1103,"source":"contracts/NFDRegistry.algo.ts:333","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[1244]},{"teal":1115,"source":"contracts/NFDRegistry.algo.ts:335","errorMessage":"box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value","pc":[1254]},{"teal":1124,"source":"contracts/NFDRegistry.algo.ts:336","errorMessage":"box value does not exist: this.boxes(approvProgName).size","pc":[1260]},{"teal":1470,"source":"contracts/NFDRegistry.algo.ts:425","errorMessage":"global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_VERSION)","pc":[1602]},{"teal":1475,"source":"contracts/NFDRegistry.algo.ts:424","errorMessage":"nfd root not 3.x must be version 2.12 in order for segment minting to succeed","pc":[1610]},{"teal":1768,"source":"contracts/NFDRegistry.algo.ts:479","errorMessage":"argument 0 (addrToVerify) for linkNfdAddress must be a address","pc":[1967]},{"teal":1804,"source":"contracts/NFDRegistry.algo.ts:481","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[1999]},{"teal":1814,"source":"contracts/NFDRegistry.algo.ts:483","errorMessage":"referenced NFD name/id must be valid","pc":[2009]},{"teal":1834,"source":"contracts/NFDRegistry.algo.ts:489","errorMessage":"verifying vault account, sender must be NFD owner","pc":[2026]},{"teal":1845,"source":"contracts/NFDRegistry.algo.ts:492","errorMessage":"app call sender must match address being added/removed","pc":[2035]},{"teal":1859,"source":"contracts/NFDRegistry.algo.ts:495","errorMessage":"nfd verified caAlgo.0.as must contain address being added/removed","pc":[2045]},{"teal":1878,"source":"contracts/NFDRegistry.algo.ts:510","errorMessage":"should add nfd to reverse address","pc":[2064]},{"teal":1899,"source":"contracts/NFDRegistry.algo.ts:520","errorMessage":"argument 0 (addrToUnlink) for unlinkNfdAddress must be a address","pc":[2083]},{"teal":1929,"source":"contracts/NFDRegistry.algo.ts:521","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2108]},{"teal":1939,"source":"contracts/NFDRegistry.algo.ts:523","errorMessage":"referenced NFD name/id must be valid","pc":[2118]},{"teal":1969,"source":"contracts/NFDRegistry.algo.ts:529","errorMessage":"Sender unlinking must be NFD owner OR address removing itself","pc":[2148]},{"teal":1983,"source":"contracts/NFDRegistry.algo.ts:534","errorMessage":"nfd verified caAlgo.0.as must contain address being removed","pc":[2158]},{"teal":2085,"source":"contracts/NFDRegistry.algo.ts:558","errorMessage":"referenced NFD name/id must be valid","pc":[2257]},{"teal":2098,"source":"contracts/NFDRegistry.algo.ts:560","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2264]},{"teal":2128,"source":"contracts/NFDRegistry.algo.ts:579","errorMessage":"argument 0 (buyer) for ownershipChanged must be a address","pc":[2291]},{"teal":2138,"source":"contracts/NFDRegistry.algo.ts:579","errorMessage":"argument 1 (seller) for ownershipChanged must be a address","pc":[2300]},{"teal":2191,"source":"contracts/NFDRegistry.algo.ts:583","errorMessage":"referenced NFD name/id must be valid","pc":[2337]},{"teal":2201,"source":"contracts/NFDRegistry.algo.ts:584","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)","pc":[2343]},{"teal":2216,"source":"contracts/NFDRegistry.algo.ts:586","errorMessage":"only txnlab can call this method to backfill ownership, 3.4+ handles it by calling from the nfd itself","pc":[2358]},{"teal":2266,"source":"contracts/NFDRegistry.algo.ts:609","errorMessage":"argument 0 (addrBeingModified) for setAddressPrimaryNfd must be a address","pc":[2406]},{"teal":2302,"source":"contracts/NFDRegistry.algo.ts:610","errorMessage":"referenced NFD name/id must be valid","pc":[2433]},{"teal":2311,"source":"contracts/NFDRegistry.algo.ts:611","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2438]},{"teal":2332,"source":"contracts/NFDRegistry.algo.ts:617","errorMessage":"if changing primary nfd for vault account, sender must be NFD owner","pc":[2457]},{"teal":2346,"source":"contracts/NFDRegistry.algo.ts:620","errorMessage":"app call sender must match address being updated to change primary NFD","pc":[2466]},{"teal":2428,"source":"contracts/NFDRegistry.algo.ts:641","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[2558]},{"teal":2438,"source":"contracts/NFDRegistry.algo.ts:642","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)","pc":[2566]},{"teal":2459,"source":"contracts/NFDRegistry.algo.ts:643","errorMessage":"only NFD owner or TxnLab can upgrade NFD","pc":[2586]},{"teal":2476,"source":"contracts/NFDRegistry.algo.ts:652","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[2598]},{"teal":2489,"source":"contracts/NFDRegistry.algo.ts:654","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)","pc":[2606]},{"teal":2494,"source":"contracts/NFDRegistry.algo.ts:653","errorMessage":"contract already at this version","pc":[2610]},{"teal":2506,"source":"contracts/NFDRegistry.algo.ts:659","errorMessage":"box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value","pc":[2616]},{"teal":2518,"source":"contracts/NFDRegistry.algo.ts:661","errorMessage":"box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value","pc":[2626]},{"teal":2527,"source":"contracts/NFDRegistry.algo.ts:662","errorMessage":"box value does not exist: this.boxes(approvProgName).size","pc":[2632]},{"teal":2730,"source":"contracts/NFDRegistry.algo.ts:697","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[2809]},{"teal":2768,"source":"contracts/NFDRegistry.algo.ts:702","errorMessage":"argument 0 (lookupAddress) for getAddressAppIds must be a address","pc":[2837]},{"teal":2827,"source":"contracts/NFDRegistry.algo.ts:708","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[2888]},{"teal":3056,"source":"contracts/NFDRegistry.algo.ts:758","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('ts')","pc":[3084]},{"teal":3066,"source":"contracts/NFDRegistry.algo.ts:759","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('decimals')","pc":[3100]},{"teal":3076,"source":"contracts/NFDRegistry.algo.ts:760","errorMessage":"global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('price')","pc":[3113]},{"teal":3141,"source":"contracts/NFDRegistry.algo.ts:777","errorMessage":"argument 0 (lookupAddress) for costToAddToAddress must be a address","pc":[3195]},{"teal":3383,"source":"contracts/NFDRegistry.algo.ts:847","errorMessage":"box value does not exist: this.boxes(key).value","pc":[3429]},{"teal":3494,"source":"contracts/NFDRegistry.algo.ts:864","errorMessage":"box value does not exist: this.boxes(key).value","pc":[3516]},{"teal":3900,"source":"contracts/NFDRegistry.algo.ts:965","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[3918]},{"teal":3922,"source":"contracts/NFDRegistry.algo.ts:974","errorMessage":"must be existing v1 name","pc":[3935]},{"teal":3932,"source":"contracts/NFDRegistry.algo.ts:979","errorMessage":"global state value does not exist: AppID.fromUint64(btoi(this.txn.applicationArgs![2])).globalState(REGISTRY_KEY_ASAID)","pc":[3950]},{"teal":4106,"source":"contracts/NFDRegistry.algo.ts:1032","errorMessage":"NFD already exists with this name","pc":[4102]},{"teal":4134,"source":"contracts/NFDRegistry.algo.ts:1038","errorMessage":"NFD has already been minted!","pc":[4122]},{"teal":4206,"source":"contracts/NFDRegistry.algo.ts:1055","errorMessage":"box value does not exist: this.boxes(key).value","pc":[4184]},{"teal":4224,"source":"contracts/NFDRegistry.algo.ts:1059","errorMessage":"int (appid) 'set' should already have at least two values","pc":[4198]},{"teal":4307,"source":"contracts/NFDRegistry.algo.ts:1073","errorMessage":"int (app id) must be found in set in order to move it","pc":[4267]},{"teal":4363,"source":"contracts/NFDRegistry.algo.ts:1084","errorMessage":"box value does not exist: this.boxes(key).value","pc":[4311]},{"teal":4742,"source":"contracts/NFDRegistry.algo.ts:1166","errorMessage":"if not at least 6 chars can't be valid - minimum length to have .algo","pc":[4637]},{"teal":4756,"source":"contracts/NFDRegistry.algo.ts:1167","errorMessage":"string must end w/ .algo","pc":[4656]},{"teal":4851,"source":"contracts/NFDRegistry.algo.ts:1182","errorMessage":"must be 1-27 chars in nfd root or segment name","pc":[4739]},{"teal":4895,"source":"contracts/NFDRegistry.algo.ts:1185","errorMessage":"must be 1-27 chars and at end of string","pc":[4781]},{"teal":4900,"source":"contracts/NFDRegistry.algo.ts:1190","errorMessage":"too many '.' chars in name","pc":[4785]},{"teal":4949,"source":"contracts/NFDRegistry.algo.ts:1198","errorMessage":"invalid character in name","pc":[4836]},{"teal":5089,"source":"contracts/NFDRegistry.algo.ts:1219","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[4971]},{"teal":5160,"source":"contracts/NFDRegistry.algo.ts:1232","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5031]},{"teal":5192,"source":"contracts/NFDRegistry.algo.ts:1239","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5054]},{"teal":5258,"source":"contracts/NFDRegistry.algo.ts:1272","errorMessage":"parent nfd/id must be found","pc":[5095]},{"teal":5325,"source":"contracts/NFDRegistry.algo.ts:1287","errorMessage":"segment mint cost must be at least NFD_MIN_SEGMENT_USD","pc":[5178]},{"teal":5426,"source":"contracts/NFDRegistry.algo.ts:1309","errorMessage":"invalid cost calc","pc":[5284]},{"teal":5476,"source":"contracts/NFDRegistry.algo.ts:1320","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)","pc":[5327]},{"teal":5633,"source":"contracts/NFDRegistry.algo.ts:1351","errorMessage":"price always needs to be at least 1 algo","pc":[5480]},{"teal":6086,"source":"contracts/NFDRegistry.algo.ts:1456","errorMessage":"lsig has to have i.appid localstate","pc":[5951]},{"teal":6159,"source":"contracts/NFDRegistry.algo.ts:1479","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[6024]},{"teal":6168,"source":"contracts/NFDRegistry.algo.ts:1480","errorMessage":"box value does not exist: this.boxes(boxName).size","pc":[6030]},{"teal":6227,"source":"contracts/NFDRegistry.algo.ts:1487","errorMessage":"global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)","pc":[6076]},{"teal":6306,"source":"contracts/NFDRegistry.algo.ts:1505","errorMessage":"max expiration exceeded parameters defined by registry","pc":[6138]},{"teal":6333,"source":"contracts/NFDRegistry.algo.ts:1513","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(NFD_KEY_VERSION)","pc":[6155]},{"teal":6364,"source":"contracts/NFDRegistry.algo.ts:51","errorMessage":"this contract does not implement the given ABI method for create NoOp","pc":[6198]}],"pcOffsetMethod":"cblocks"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"templateVariables":{"adminAsaId":{"type":"uint64"},"nfdTreasuryAddr":{"type":"address"},"nfdCommission1Addr":{"type":"address"},"nfdCommission1Rate":{"type":"uint64"},"algoUsdOracleAppId":{"type":"uint64"},"developmentAllowShortMints":{"type":"uint64"}},"scratchVariables":{"adminAsaId":{"type":"uint64","slot":200},"nfdTreasuryAddr":{"type":"address","slot":201},"nfdCommission1Addr":{"type":"address","slot":202},"nfdCommission1Rate":{"type":"uint64","slot":203},"algoUsdOracleAppId":{"type":"uint64","slot":204},"developmentAllowShortMints":{"type":"uint64","slot":205}},"compilerInfo":{"compiler":"algod","compilerVersion":{"major":3,"minor":27,"patch":237217,"commitHash":"0bc3d7e4"}}} as unknown as Arc56Contract /** * A state record containing binary data diff --git a/packages/sdk/src/contracts/minimal/NFDInstance.arc56.json b/packages/sdk/src/contracts/minimal/NFDInstance.arc56.json new file mode 100644 index 0000000..8489a0f --- /dev/null +++ b/packages/sdk/src/contracts/minimal/NFDInstance.arc56.json @@ -0,0 +1,1966 @@ +{ + "name": "NFDInstance", + "desc": "", + "methods": [ + { + "name": "createApplication", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "purchaseAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + }, + { + "name": "commission1Addr", + "type": "address" + }, + { + "name": "commission1Pct", + "type": "uint64" + }, + { + "name": "commission2Addr", + "type": "address" + }, + { + "name": "commission2Pct", + "type": "uint64" + }, + { + "name": "segmentRootAppId", + "type": "uint64" + }, + { + "name": "segmentRootCommissionAddr", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + }, + { + "name": "updateApplication", + "args": [ + { + "name": "versionNum", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "UpdateApplication" + ] + } + }, + { + "name": "gas", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "mintAsa", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "url", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "deleteFields", + "args": [ + { + "name": "fieldNames", + "type": "byte[][]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateSegmentCount", + "args": [ + { + "name": "childNfdName", + "type": "string" + }, + { + "name": "childNfdAppID", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getFieldUpdateCost", + "readonly": true, + "args": [ + { + "name": "fieldAndVals", + "type": "byte[][]" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateFields", + "args": [ + { + "name": "fieldAndVals", + "type": "byte[][]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "readField", + "readonly": true, + "args": [ + { + "name": "fieldName", + "type": "byte[]" + } + ], + "returns": { + "type": "byte[]" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "offerForSale", + "args": [ + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_offerForSale", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "cancelSale", + "args": [], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "postOffer", + "args": [ + { + "name": "offer", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_postedOffer", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "sender", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "mintPayout", + "args": [ + { + "name": "oneYearPrice", + "type": "uint64" + }, + { + "name": "segmentPlatformCostInAlgo", + "type": "uint64" + } + ], + "returns": { + "type": "(uint64,address,uint64,address,uint64)", + "struct": "PayoutInfo" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "purchase", + "args": [ + { + "name": "payment", + "type": "pay" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_purchased", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "offerAmount", + "type": "uint64" + }, + { + "name": "overpaymentRefund", + "type": "uint64" + }, + { + "name": "convFeeAddr", + "type": "address" + }, + { + "name": "convFeeAmount", + "type": "uint64" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "isAddressInField", + "readonly": true, + "args": [ + { + "name": "fieldName", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "returns": { + "type": "bool" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getRenewPrice", + "readonly": true, + "args": [], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateHash", + "args": [ + { + "name": "hash", + "type": "byte[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "contractLock", + "args": [ + { + "name": "lock", + "type": "bool" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "segmentLock", + "args": [ + { + "name": "lock", + "type": "bool" + }, + { + "name": "usdPrice", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultOptInLock", + "args": [ + { + "name": "lock", + "type": "bool" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultOptIn", + "args": [ + { + "name": "assets", + "type": "uint64[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultSend", + "args": [ + { + "name": "amount", + "type": "uint64" + }, + { + "name": "receiver", + "type": "address" + }, + { + "name": "note", + "type": "string" + }, + { + "name": "asset", + "type": "uint64" + }, + { + "name": "otherAssets", + "type": "uint64[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "renew", + "desc": "Renew adds more time to an existing NFDs expiration, or renews it if expired.\n\n\nAs part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded\nto v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check)\n\n\nIf already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price)\nExpirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future.\n\n\nIF the NFD is expired:\n x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they\n get it back as-is.\n x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where\n 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED!", + "args": [ + { + "name": "payment", + "type": "pay", + "desc": "The payment transaction from which the renewal period is determined.." + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_renewed", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "origOwner", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "renewAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "setPrimaryAddress", + "args": [ + { + "name": "fieldName", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "registryAddingVerifiedAddress", + "desc": "Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified\nverified field.", + "args": [ + { + "name": "fieldBeingVerified", + "type": "string", + "desc": "- MUST START with u.cav. (!)\ngets 'added' to 'set' in next arg - must be fixed-sized bytes" + }, + { + "name": "fieldSetName", + "type": "string", + "desc": "(must BE v.ca[...].as)" + } + ], + "returns": { + "type": "bool", + "desc": "true if added or already present, false otherwise" + }, + "events": [ + { + "name": "nfd_addressLinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "registryRemovingVerifiedAddress", + "desc": "Approved call from registry instructing us to REMOVE an address from the specified verified address set", + "args": [ + { + "name": "fieldBeingChanged", + "type": "string", + "desc": "The field being changed in the address registry." + }, + { + "name": "address", + "type": "address", + "desc": "The address to be removed from the field." + }, + { + "name": "mbrRefundDest", + "type": "address", + "desc": "the address to send reclaimed MBR (if any)\n boolean - true if valid removed" + } + ], + "returns": { + "type": "bool" + }, + "events": [ + { + "name": "nfd_addressUnlinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + } + ], + "events": [ + { + "name": "nfd_offerForSale", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "desc": "" + }, + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_postedOffer", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "sender", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_purchased", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "offerAmount", + "type": "uint64" + }, + { + "name": "overpaymentRefund", + "type": "uint64" + }, + { + "name": "convFeeAddr", + "type": "address" + }, + { + "name": "convFeeAmount", + "type": "uint64" + } + ], + "desc": "" + }, + { + "name": "nfd_renewed", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "origOwner", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "renewAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + } + ], + "desc": "" + }, + { + "name": "nfd_addressLinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + }, + { + "name": "nfd_addressUnlinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "PayoutInfo": [ + { + "name": "amountToSeller", + "type": "uint64" + }, + { + "name": "commissionAddress", + "type": "address" + }, + { + "name": "amountToCommission", + "type": "uint64" + }, + { + "name": "segmentRootOwner", + "type": "address" + }, + { + "name": "amountToSegmentRoot", + "type": "uint64" + } + ] + }, + "state": { + "schema": { + "global": { + "bytes": 30, + "ints": 0 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": {}, + "local": {}, + "box": {} + }, + "maps": { + "global": { + "globalState": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + }, + "local": {}, + "box": { + "boxes": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "teal": 25, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 36 + ] + }, + { + "teal": 37, + "source": "contracts/NFDInstance.algo.ts:43", + "errorMessage": "argument 0 (segmentRootCommissionAddr) for createApplication must be a address", + "pc": [ + 44 + ] + }, + { + "teal": 55, + "source": "contracts/NFDInstance.algo.ts:40", + "errorMessage": "argument 3 (commission2Addr) for createApplication must be a address", + "pc": [ + 60 + ] + }, + { + "teal": 69, + "source": "contracts/NFDInstance.algo.ts:38", + "errorMessage": "argument 5 (commission1Addr) for createApplication must be a address", + "pc": [ + 72 + ] + }, + { + "teal": 87, + "source": "contracts/NFDInstance.algo.ts:35", + "errorMessage": "argument 8 (buyer) for createApplication must be a address", + "pc": [ + 88 + ] + }, + { + "teal": 97, + "source": "contracts/NFDInstance.algo.ts:34", + "errorMessage": "argument 9 (seller) for createApplication must be a address", + "pc": [ + 96 + ] + }, + { + "teal": 122, + "source": "contracts/NFDInstance.algo.ts:45", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 117 + ] + }, + { + "teal": 224, + "source": "contracts/NFDInstance.algo.ts:60", + "errorMessage": "commission must be between 1 and 50%", + "pc": [ + 217 + ] + }, + { + "teal": 262, + "source": "contracts/NFDInstance.algo.ts:64", + "errorMessage": "commission must be between 1 and 50%", + "pc": [ + 251 + ] + }, + { + "teal": 370, + "source": "contracts/NFDInstance.algo.ts:90", + "errorMessage": "parent commission address must be set if parent app id is set and parent is unlocked", + "pc": [ + 382 + ] + }, + { + "teal": 384, + "source": "contracts/NFDInstance.algo.ts:97", + "errorMessage": "the segment commission agent should be the parent nfd's seller", + "pc": [ + 393 + ] + }, + { + "teal": 420, + "source": "contracts/NFDInstance.algo.ts:110", + "errorMessage": "contract must be unlocked to upgrade", + "pc": [ + 420 + ] + }, + { + "teal": 429, + "source": "contracts/NFDInstance.algo.ts:113", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 426 + ] + }, + { + "teal": 459, + "source": "contracts/NFDInstance.algo.ts:120", + "errorMessage": "can't still be in minting state", + "pc": [ + 449 + ] + }, + { + "teal": 481, + "source": "contracts/NFDInstance.algo.ts:125", + "errorMessage": "NFD can't be expired for these v1/v2 operations", + "pc": [ + 467 + ] + }, + { + "teal": 677, + "source": "contracts/NFDInstance.algo.ts:180", + "errorMessage": "unknown method", + "pc": [ + 731 + ] + }, + { + "teal": 721, + "source": "contracts/NFDInstance.algo.ts:190", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 768 + ] + }, + { + "teal": 942, + "source": "contracts/NFDInstance.algo.ts:224", + "errorMessage": "field not removable or no permissions to remove", + "pc": [ + 959 + ] + }, + { + "teal": 950, + "source": "contracts/NFDInstance.algo.ts:225", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 963 + ] + }, + { + "teal": 1075, + "source": "contracts/NFDInstance.algo.ts:244", + "errorMessage": "field not removable or no permissions to remove", + "pc": [ + 1067 + ] + }, + { + "teal": 1130, + "source": "contracts/NFDInstance.algo.ts:258", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 1111 + ] + }, + { + "teal": 1144, + "source": "contracts/NFDInstance.algo.ts:259", + "errorMessage": "child NFD MUST still be in pre-claim state!", + "pc": [ + 1121 + ] + }, + { + "teal": 1172, + "source": "contracts/NFDInstance.algo.ts:266", + "errorMessage": "passed in child name must match name in created nfd state", + "pc": [ + 1144 + ] + }, + { + "teal": 1209, + "source": "contracts/NFDInstance.algo.ts:276", + "errorMessage": "parent must be suffix of child", + "pc": [ + 1177 + ] + }, + { + "teal": 1381, + "source": "contracts/NFDInstance.algo.ts:298", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 1346 + ] + }, + { + "teal": 1423, + "source": "contracts/NFDInstance.algo.ts:307", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 1386 + ] + }, + { + "teal": 1537, + "source": "contracts/NFDInstance.algo.ts:323", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 1487 + ] + }, + { + "teal": 1644, + "source": "contracts/NFDInstance.algo.ts:333", + "errorMessage": "invalid update call by registry", + "pc": [ + 1615 + ] + }, + { + "teal": 1738, + "source": "contracts/NFDInstance.algo.ts:340", + "errorMessage": "field not updatable or no permissions to update", + "pc": [ + 1717 + ] + }, + { + "teal": 1799, + "source": "contracts/NFDInstance.algo.ts:353", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 1763 + ] + }, + { + "teal": 1844, + "source": "contracts/NFDInstance.algo.ts:359", + "errorMessage": "field not updatable or no permissions to update", + "pc": [ + 1803 + ] + }, + { + "teal": 1953, + "source": "contracts/NFDInstance.algo.ts:379", + "errorMessage": "must be user-defined or verified field to fetch", + "pc": [ + 1902 + ] + }, + { + "teal": 1971, + "source": "contracts/NFDInstance.algo.ts:384", + "errorMessage": "box value does not exist: this.boxes(fieldName).value", + "pc": [ + 1914 + ] + }, + { + "teal": 2005, + "source": "contracts/NFDInstance.algo.ts:392", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 1944 + ] + }, + { + "teal": 2057, + "source": "contracts/NFDInstance.algo.ts:400", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 1994 + ] + }, + { + "teal": 2093, + "source": "contracts/NFDInstance.algo.ts:407", + "errorMessage": "argument 0 (reservedFor) for offerForSale must be a address", + "pc": [ + 2021 + ] + }, + { + "teal": 2117, + "source": "contracts/NFDInstance.algo.ts:408", + "errorMessage": "can't sell if NFD expired", + "pc": [ + 2039 + ] + }, + { + "teal": 2165, + "source": "contracts/NFDInstance.algo.ts:419", + "errorMessage": "can only be sold if no user-defined or verified properties remain", + "pc": [ + 2089 + ] + }, + { + "teal": 2185, + "source": "contracts/NFDInstance.algo.ts:423", + "errorMessage": "must be sold for at least MIN amount", + "pc": [ + 2106 + ] + }, + { + "teal": 2323, + "source": "contracts/NFDInstance.algo.ts:465", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 2252 + ] + }, + { + "teal": 2340, + "source": "contracts/NFDInstance.algo.ts:467", + "errorMessage": "must be for sale", + "pc": [ + 2265 + ] + }, + { + "teal": 2484, + "source": "contracts/NFDInstance.algo.ts:492", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 2420 + ] + }, + { + "teal": 2751, + "source": "contracts/NFDInstance.algo.ts:573", + "errorMessage": "argument 0 (payment) for purchase must be a pay transaction", + "pc": [ + 2652 + ] + }, + { + "teal": 2782, + "source": "contracts/NFDInstance.algo.ts:575", + "errorMessage": "can't be expired", + "pc": [ + 2677 + ] + }, + { + "teal": 2789, + "source": "contracts/NFDInstance.algo.ts:576", + "errorMessage": "must be for sale", + "pc": [ + 2681 + ] + }, + { + "teal": 2830, + "source": "contracts/NFDInstance.algo.ts:583", + "errorMessage": "payment sender must be same as purchase caller", + "pc": [ + 2733 + ] + }, + { + "teal": 2853, + "source": "contracts/NFDInstance.algo.ts:586", + "errorMessage": "Reserved owner set, but sender isn't the reserved address", + "pc": [ + 2749 + ] + }, + { + "teal": 2900, + "source": "contracts/NFDInstance.algo.ts:604", + "errorMessage": "offer must be at least min amount", + "pc": [ + 2795 + ] + }, + { + "teal": 2910, + "source": "contracts/NFDInstance.algo.ts:607", + "errorMessage": "offer must be at least sell amount", + "pc": [ + 2801 + ] + }, + { + "teal": 2935, + "source": "contracts/NFDInstance.algo.ts:614", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"origOfferamt\"}", + "pc": [ + 2823 + ] + }, + { + "teal": 2944, + "source": "contracts/NFDInstance.algo.ts:614", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 2831 + ] + }, + { + "teal": 3406, + "source": "contracts/NFDInstance.algo.ts:730", + "errorMessage": "argument 0 (address) for isAddressInField must be a address", + "pc": [ + 3291 + ] + }, + { + "teal": 3458, + "source": "contracts/NFDInstance.algo.ts:735", + "errorMessage": "box value does not exist: this.boxes(fieldName).value", + "pc": [ + 3336 + ] + }, + { + "teal": 3711, + "source": "contracts/NFDInstance.algo.ts:856", + "errorMessage": "must pass 32-byte hash that isn't 0", + "pc": [ + 3553 + ] + }, + { + "teal": 3729, + "source": "contracts/NFDInstance.algo.ts:861", + "errorMessage": "only txnlab or owner can request an nfd nft hash update", + "pc": [ + 3567 + ] + }, + { + "teal": 3782, + "source": "contracts/NFDInstance.algo.ts:876", + "errorMessage": "argument 0 (lock) for contractLock must be a bool", + "pc": [ + 3603 + ] + }, + { + "teal": 3835, + "source": "contracts/NFDInstance.algo.ts:884", + "errorMessage": "argument 1 (lock) for segmentLock must be a bool", + "pc": [ + 3649 + ] + }, + { + "teal": 3930, + "source": "contracts/NFDInstance.algo.ts:895", + "errorMessage": "amount must be at least NFD_MIN_SEGMENT_USD dollars in algo", + "pc": [ + 3732 + ] + }, + { + "teal": 3952, + "source": "contracts/NFDInstance.algo.ts:907", + "errorMessage": "argument 0 (lock) for vaultOptInLock must be a bool", + "pc": [ + 3747 + ] + }, + { + "teal": 4032, + "source": "contracts/NFDInstance.algo.ts:925", + "errorMessage": "sender must be owner when vault locked", + "pc": [ + 3812 + ] + }, + { + "teal": 4042, + "source": "contracts/NFDInstance.algo.ts:931", + "errorMessage": "part of opt-in for new asset, must have prior txn paying MBR", + "pc": [ + 3817 + ] + }, + { + "teal": 4061, + "source": "contracts/NFDInstance.algo.ts:933", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}", + "pc": [ + 3830 + ] + }, + { + "teal": 4070, + "source": "contracts/NFDInstance.algo.ts:934", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 3838 + ] + }, + { + "teal": 4084, + "source": "contracts/NFDInstance.algo.ts:935", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * assets.length\"}", + "pc": [ + 3853 + ] + }, + { + "teal": 4198, + "source": "contracts/NFDInstance.algo.ts:958", + "errorMessage": "argument 3 (receiver) for vaultSend must be a address", + "pc": [ + 3954 + ] + }, + { + "teal": 4247, + "source": "contracts/NFDInstance.algo.ts:968", + "errorMessage": "can't specify other assets if sending algo from vault", + "pc": [ + 3994 + ] + }, + { + "teal": 4329, + "source": "contracts/NFDInstance.algo.ts:980", + "errorMessage": "can only send one asset if amount == 0", + "pc": [ + 4061 + ] + }, + { + "teal": 4402, + "source": "contracts/NFDInstance.algo.ts:993", + "errorMessage": "receiver must be owner", + "pc": [ + 4128 + ] + }, + { + "teal": 4537, + "source": "contracts/NFDInstance.algo.ts:1029", + "errorMessage": "argument 0 (payment) for renew must be a pay transaction", + "pc": [ + 4237 + ] + }, + { + "teal": 4577, + "source": "contracts/NFDInstance.algo.ts:1030", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 4256 + ] + }, + { + "teal": 4706, + "source": "contracts/NFDInstance.algo.ts:1052", + "errorMessage": "can't claim expired nfd unless all metadata is cleared", + "pc": [ + 4386 + ] + }, + { + "teal": 4719, + "source": "contracts/NFDInstance.algo.ts:1058", + "errorMessage": "must pay at least minimum renewal price", + "pc": [ + 4394 + ] + }, + { + "teal": 4892, + "source": "contracts/NFDInstance.algo.ts:1098", + "errorMessage": "global state value does not exist: parentAppId.globalState(NFD_KEY_OWNER)", + "pc": [ + 4550 + ] + }, + { + "teal": 5039, + "source": "contracts/NFDInstance.algo.ts:1137", + "errorMessage": "argument 0 (address) for setPrimaryAddress must be a address", + "pc": [ + 4716 + ] + }, + { + "teal": 5126, + "source": "contracts/NFDInstance.algo.ts:1156", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 4802 + ] + }, + { + "teal": 5140, + "source": "contracts/NFDInstance.algo.ts:1158", + "errorMessage": "field being verified MUST START with u.cav", + "pc": [ + 4820 + ] + }, + { + "teal": 5150, + "source": "contracts/NFDInstance.algo.ts:1159", + "errorMessage": "destination field MUST START with v.ca[....]", + "pc": [ + 4829 + ] + }, + { + "teal": 5165, + "source": "contracts/NFDInstance.algo.ts:1160", + "errorMessage": "destination field must end END with .as", + "pc": [ + 4844 + ] + }, + { + "teal": 5178, + "source": "contracts/NFDInstance.algo.ts:1161", + "errorMessage": "referenced field to add as verified address must have value in box storage", + "pc": [ + 4850 + ] + }, + { + "teal": 5193, + "source": "contracts/NFDInstance.algo.ts:1167", + "errorMessage": "box value does not exist: this.boxes(fieldBeingVerified).value", + "pc": [ + 4859 + ] + }, + { + "teal": 5253, + "source": "contracts/NFDInstance.algo.ts:1187", + "errorMessage": "argument 0 (mbrRefundDest) for registryRemovingVerifiedAddress must be a address", + "pc": [ + 4924 + ] + }, + { + "teal": 5263, + "source": "contracts/NFDInstance.algo.ts:1187", + "errorMessage": "argument 1 (address) for registryRemovingVerifiedAddress must be a address", + "pc": [ + 4932 + ] + }, + { + "teal": 5302, + "source": "contracts/NFDInstance.algo.ts:1188", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 4962 + ] + }, + { + "teal": 5318, + "source": "contracts/NFDInstance.algo.ts:1191", + "errorMessage": "can't be for sale", + "pc": [ + 4974 + ] + }, + { + "teal": 5329, + "source": "contracts/NFDInstance.algo.ts:1193", + "errorMessage": "verified field MUST START with v.ca[....]", + "pc": [ + 4983 + ] + }, + { + "teal": 5347, + "source": "contracts/NFDInstance.algo.ts:1194", + "errorMessage": "verified field must end END with .as", + "pc": [ + 4998 + ] + }, + { + "teal": 5362, + "source": "contracts/NFDInstance.algo.ts:1200", + "errorMessage": "box value does not exist: this.boxes(fieldBeingChanged).size", + "pc": [ + 5007 + ] + }, + { + "teal": 5542, + "source": "contracts/NFDInstance.algo.ts:1247", + "errorMessage": "sender must be owner", + "pc": [ + 5175 + ] + }, + { + "teal": 5552, + "source": "contracts/NFDInstance.algo.ts:1250", + "errorMessage": "part of opt-in for new asset, must have prior txn paying MBR", + "pc": [ + 5180 + ] + }, + { + "teal": 5571, + "source": "contracts/NFDInstance.algo.ts:1252", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}", + "pc": [ + 5193 + ] + }, + { + "teal": 5580, + "source": "contracts/NFDInstance.algo.ts:1253", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 5201 + ] + }, + { + "teal": 5593, + "source": "contracts/NFDInstance.algo.ts:1254", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * (this.txn.numAppArgs - 1)\"}", + "pc": [ + 5214 + ] + }, + { + "teal": 5730, + "source": "contracts/NFDInstance.algo.ts:1280", + "errorMessage": "global state value does not exist: AppID.fromUint64(appId).globalState(key)", + "pc": [ + 5317 + ] + }, + { + "teal": 5796, + "source": "contracts/NFDInstance.algo.ts:1313", + "errorMessage": "internal fields can never be deleted", + "pc": [ + 5371 + ] + }, + { + "teal": 5820, + "source": "contracts/NFDInstance.algo.ts:1320", + "errorMessage": "must be owned", + "pc": [ + 5388 + ] + }, + { + "teal": 5836, + "source": "contracts/NFDInstance.algo.ts:1323", + "errorMessage": "can't be for sale", + "pc": [ + 5400 + ] + }, + { + "teal": 5920, + "source": "contracts/NFDInstance.algo.ts:1357", + "errorMessage": "internal fields can never be updated", + "pc": [ + 5471 + ] + }, + { + "teal": 5977, + "source": "contracts/NFDInstance.algo.ts:1365", + "errorMessage": "must be owned", + "pc": [ + 5526 + ] + }, + { + "teal": 5985, + "source": "contracts/NFDInstance.algo.ts:1366", + "errorMessage": "can't be for sale", + "pc": [ + 5531 + ] + }, + { + "teal": 5995, + "source": "contracts/NFDInstance.algo.ts:1367", + "errorMessage": "sender must be owner", + "pc": [ + 5537 + ] + }, + { + "teal": 6031, + "source": "contracts/NFDInstance.algo.ts:1375", + "errorMessage": "updating v.caAlgo field isn't allowed via regular field update", + "pc": [ + 5567 + ] + }, + { + "teal": 6176, + "source": "contracts/NFDInstance.algo.ts:1426", + "errorMessage": "can't be for sale", + "pc": [ + 5688 + ] + }, + { + "teal": 6184, + "source": "contracts/NFDInstance.algo.ts:1427", + "errorMessage": "can't be expired", + "pc": [ + 5693 + ] + }, + { + "teal": 6296, + "source": "contracts/NFDInstance.algo.ts:1454", + "errorMessage": "max expiration exceeded parameters defined by registry", + "pc": [ + 5778 + ] + }, + { + "teal": 6529, + "source": "contracts/NFDInstance.algo.ts:1508", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 5946 + ] + }, + { + "teal": 6547, + "source": "contracts/NFDInstance.algo.ts:1512", + "errorMessage": "address 'set' should already have at least two values", + "pc": [ + 5961 + ] + }, + { + "teal": 6629, + "source": "contracts/NFDInstance.algo.ts:1528", + "errorMessage": "address must be found in set in order to move it", + "pc": [ + 6029 + ] + }, + { + "teal": 6712, + "source": "contracts/NFDInstance.algo.ts:1552", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 6095 + ] + }, + { + "teal": 6733, + "source": "contracts/NFDInstance.algo.ts:1555", + "errorMessage": "existing set must be multiple of key being added", + "pc": [ + 6114 + ] + }, + { + "teal": 6869, + "source": "contracts/NFDInstance.algo.ts:1586", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 6221 + ] + }, + { + "teal": 7078, + "source": "contracts/NFDInstance.algo.ts:1624", + "errorMessage": "sender must be owner", + "pc": [ + 6390 + ] + }, + { + "teal": 7087, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 6405 + ] + }, + { + "teal": 7128, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 6621 + ] + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "templateVariables": { + "adminAsaId": { + "type": "uint64" + }, + "registryAppId": { + "type": "uint64" + } + }, + "scratchVariables": { + "adminAsaId": { + "type": "uint64", + "slot": 200 + }, + "registryAppId": { + "type": "uint64", + "slot": 201 + } + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 27, + "patch": 237217, + "commitHash": "0bc3d7e4" + } + } +} \ No newline at end of file diff --git a/packages/sdk/src/contracts/minimal/NFDRegistry.arc56.json b/packages/sdk/src/contracts/minimal/NFDRegistry.arc56.json new file mode 100644 index 0000000..706f047 --- /dev/null +++ b/packages/sdk/src/contracts/minimal/NFDRegistry.arc56.json @@ -0,0 +1,1609 @@ +{ + "name": "NFDRegistry", + "desc": "", + "methods": [ + { + "name": "updateApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "UpdateApplication" + ] + } + }, + { + "name": "gas", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getPrice", + "desc": "Returns the price for a given NFD (single year), the max # of years allowed (Name for Display),\nand extra algo required to cover MBR when purchasing.", + "args": [ + { + "name": "nfdName", + "type": "string", + "desc": "The NFD name for which to retrieve the price." + }, + { + "name": "caller", + "type": "address", + "desc": "the address this request is on behalf of (since an nfd contract might call us it\nneeds to be able to pass on the request on behalf of ITS caller - ie: getting price for an expired nfd will be\ndifferent if its owner ir asking.\n PriceInfo Type containing the price, carry cost, etc." + } + ], + "returns": { + "type": "(uint64,uint64,bool,bool,bool)", + "struct": "PriceInfo" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getConstraints", + "args": [], + "returns": { + "type": "(uint64,uint64,uint64,address,uint64,uint64,uint64)", + "struct": "Constraints" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getNfdMbrCost", + "desc": "Returns the MBR amounts needed to MINT an nfd.\nThis value needs to be added to purchase price in mintNfd call.\ngetPrice() returns it though.", + "args": [ + { + "name": "nfdName", + "type": "string" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getNfdLinkOnMintExtraMbrCost", + "args": [ + { + "name": "address", + "type": "address" + } + ], + "returns": { + "type": "(uint64,uint64)", + "struct": "LinkOnMintExtraMbrCosts" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "mintNfd", + "desc": "Mint an NFD (NFT) and create a new NFD instance.", + "args": [ + { + "name": "purchaseTxn", + "type": "pay", + "desc": "The payment transaction covering the purchase amount of the nfd" + }, + { + "name": "nfdName", + "type": "string", + "desc": "The name of the NFD to mint" + }, + { + "name": "reservedFor", + "type": "address", + "desc": "The address that will own the NFD once minted (so you can buy for someone else)" + }, + { + "name": "linkOnMint", + "type": "bool", + "desc": "whether to auto-link the address (reserved for MUST MATCH payer!) at mint\n uint64 - The ID of the newly created NFD instance." + } + ], + "returns": { + "type": "uint64" + }, + "events": [ + { + "name": "nfdRegistry_minted", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "paidAmount", + "type": "uint64" + }, + { + "name": "carryCost", + "type": "uint64" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "expTime", + "type": "uint64" + }, + { + "name": "amountToSeller", + "type": "uint64" + }, + { + "name": "commissionAddress", + "type": "address" + }, + { + "name": "amountToCommission", + "type": "uint64" + }, + { + "name": "segmentRootOwner", + "type": "address" + }, + { + "name": "amountToSegmentRoot", + "type": "uint64" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "linkNfdAddress", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "nfdAppId", + "type": "uint64" + }, + { + "name": "addrToVerify", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "unlinkNfdAddress", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "nfdAppId", + "type": "uint64" + }, + { + "name": "addrToUnlink", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "ownershipAssign", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "nfdAppId", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "ownershipChanged", + "desc": "This method is triggered when the ownership of an NFD (Non-Fungible Domain) changes.\nIt is called by the NFD via the purchase method. It can also be called by TxnLab admin for older 3.3\nNFDs when it detects purchased events for 3.3", + "args": [ + { + "name": "nfdName", + "type": "string", + "desc": "The name of the NFD." + }, + { + "name": "nfdAppId", + "type": "uint64", + "desc": "The unique application ID of the NFD." + }, + { + "name": "seller", + "type": "address", + "desc": "The address of the prior owner (seller) of the nfd" + }, + { + "name": "buyer", + "type": "address", + "desc": "The address of the new owner of the NFD." + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "setAddressPrimaryNfd", + "desc": "Makes the specified NFD the 'first' NFD in the reverse-address set so its the primary NFD for this address.\nThe NFD must be valid, and the sender must be the address (or nfd owner if vault). The NFD wouldn't already be\nin the reverse-lookup set if it wasn't already valid.", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "nfdAppId", + "type": "uint64" + }, + { + "name": "addrBeingModified", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfdRegistry_addressPrimaryNfdChanged", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "upgradeNfd", + "args": [ + { + "name": "nfdName", + "type": "string" + } + ], + "returns": { + "type": "string" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "isValidNfdAppId", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "nfdAppId", + "type": "uint64" + } + ], + "returns": { + "type": "bool" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getNameAppId", + "args": [ + { + "name": "nfdName", + "type": "string" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getAddressAppIds", + "args": [ + { + "name": "lookupAddress", + "type": "address" + } + ], + "returns": { + "type": "uint64[]" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "nfdContractInit", + "desc": "Initializes the NFD contract bytecode into the registry", + "args": [ + { + "name": "version", + "type": "string", + "desc": "The version of the contract." + }, + { + "name": "size", + "type": "uint64", + "desc": "exact byte size of contract to load" + }, + { + "name": "clearCode", + "type": "byte[]", + "desc": "bytes of clear code" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "nfdContractLoad", + "desc": "Loads contract data into the box at the specified offset.", + "args": [ + { + "name": "version", + "type": "string", + "desc": "The version of the contract." + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset at which to replace the contract data within the box." + }, + { + "name": "data", + "type": "byte[]", + "desc": "The contract data to be loaded." + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "nfdContractCommit", + "desc": "Commit a new version of the contract.", + "args": [ + { + "name": "version", + "type": "string", + "desc": "The version number of the contract to be committed." + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "usdInMicroAlgo", + "args": [ + { + "name": "usdCost", + "type": "uint64" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "costToAddToAddress", + "desc": "Returns the cost to add an NFD to the reverse-lookup data", + "args": [ + { + "name": "lookupAddress", + "type": "address", + "desc": "The address to add the NFD app id to" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "calcFuturePrice", + "desc": "Calculates the future price based on the current price and the number of years.", + "args": [ + { + "name": "curPrice", + "type": "uint64", + "desc": "The current price in USD (in decimals). For example, if the current price is $2.00, the value should be 200." + }, + { + "name": "forTime", + "type": "uint64", + "desc": "The timestamp to calc the future price based on - ie: 1 year past 'go live date' the price would have inflated by 1 year.\n\n\n uint64 The future price calculated based on the current price and the specified number of years." + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "events": [ + { + "name": "nfdRegistry_minted", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "paidAmount", + "type": "uint64" + }, + { + "name": "carryCost", + "type": "uint64" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "expTime", + "type": "uint64" + }, + { + "name": "amountToSeller", + "type": "uint64" + }, + { + "name": "commissionAddress", + "type": "address" + }, + { + "name": "amountToCommission", + "type": "uint64" + }, + { + "name": "segmentRootOwner", + "type": "address" + }, + { + "name": "amountToSegmentRoot", + "type": "uint64" + } + ], + "desc": "" + }, + { + "name": "nfdRegistry_addressPrimaryNfdChanged", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "PriceInfo": [ + { + "name": "oneYearPrice", + "type": "uint64" + }, + { + "name": "carryCost", + "type": "uint64" + }, + { + "name": "exists", + "type": "bool" + }, + { + "name": "isExpired", + "type": "bool" + }, + { + "name": "inAuction", + "type": "bool" + } + ], + "Constraints": [ + { + "name": "segmentPlatformCostInUsd", + "type": "uint64" + }, + { + "name": "segmentPlatformCostInAlgo", + "type": "uint64" + }, + { + "name": "maxYearsAllowed", + "type": "uint64" + }, + { + "name": "treasuryAddress", + "type": "address" + }, + { + "name": "expiredAuctionDuration", + "type": "uint64" + }, + { + "name": "expiredStartingPrice", + "type": "uint64" + }, + { + "name": "maxMintCarryCost", + "type": "uint64" + } + ], + "LinkOnMintExtraMbrCosts": [ + { + "name": "linkingNfdMbrCost", + "type": "uint64" + }, + { + "name": "linkingRegistryMbrCost", + "type": "uint64" + } + ] + }, + "state": { + "schema": { + "global": { + "bytes": 0, + "ints": 0 + }, + "local": { + "bytes": 16, + "ints": 0 + } + }, + "keys": { + "global": {}, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": { + "localState": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + }, + "box": { + "boxes": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "teal": 25, + "source": "contracts/NFDRegistry.algo.ts:51", + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 35 + ] + }, + { + "teal": 414, + "source": "contracts/NFDRegistry.algo.ts:179", + "errorMessage": "invalid", + "pc": [ + 516 + ] + }, + { + "teal": 510, + "source": "contracts/NFDRegistry.algo.ts:198", + "errorMessage": "invalid method", + "pc": [ + 637 + ] + }, + { + "teal": 514, + "source": "contracts/NFDRegistry.algo.ts:200", + "errorMessage": "unknown method", + "pc": [ + 638 + ] + }, + { + "teal": 542, + "source": "contracts/NFDRegistry.algo.ts:216", + "errorMessage": "argument 0 (caller) for getPrice must be a address", + "pc": [ + 658 + ] + }, + { + "teal": 736, + "source": "contracts/NFDRegistry.algo.ts:256", + "errorMessage": "argument 0 (address) for getNfdLinkOnMintExtraMbrCost must be a address", + "pc": [ + 909 + ] + }, + { + "teal": 780, + "source": "contracts/NFDRegistry.algo.ts:272", + "errorMessage": "argument 0 (linkOnMint) for mintNfd must be a bool", + "pc": [ + 947 + ] + }, + { + "teal": 792, + "source": "contracts/NFDRegistry.algo.ts:272", + "errorMessage": "argument 1 (reservedFor) for mintNfd must be a address", + "pc": [ + 958 + ] + }, + { + "teal": 808, + "source": "contracts/NFDRegistry.algo.ts:272", + "errorMessage": "argument 3 (purchaseTxn) for mintNfd must be a pay transaction", + "pc": [ + 974 + ] + }, + { + "teal": 843, + "source": "contracts/NFDRegistry.algo.ts:273", + "errorMessage": "transaction verification failed: {\"txn\":\"purchaseTxn\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 996 + ] + }, + { + "teal": 931, + "source": "contracts/NFDRegistry.algo.ts:290", + "errorMessage": "parent nfd/id must be found", + "pc": [ + 1085 + ] + }, + { + "teal": 951, + "source": "contracts/NFDRegistry.algo.ts:294", + "errorMessage": "global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_SELLER)", + "pc": [ + 1114 + ] + }, + { + "teal": 968, + "source": "contracts/NFDRegistry.algo.ts:298", + "errorMessage": "global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 1128 + ] + }, + { + "teal": 972, + "source": "contracts/NFDRegistry.algo.ts:297", + "errorMessage": "only owner of root can mint segments if segments are locked", + "pc": [ + 1130 + ] + }, + { + "teal": 996, + "source": "contracts/NFDRegistry.algo.ts:306", + "errorMessage": "price can never be 0", + "pc": [ + 1154 + ] + }, + { + "teal": 1052, + "source": "contracts/NFDRegistry.algo.ts:315", + "errorMessage": "if linking on mint, the buyer MUST be who will be the owner (reservedFor)", + "pc": [ + 1208 + ] + }, + { + "teal": 1081, + "source": "contracts/NFDRegistry.algo.ts:322", + "errorMessage": "payment transaction must be at least enough to cover 30 days of nfd cost + carry cost", + "pc": [ + 1232 + ] + }, + { + "teal": 1090, + "source": "contracts/NFDRegistry.algo.ts:330", + "errorMessage": "box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value", + "pc": [ + 1236 + ] + }, + { + "teal": 1103, + "source": "contracts/NFDRegistry.algo.ts:333", + "errorMessage": "box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value", + "pc": [ + 1244 + ] + }, + { + "teal": 1115, + "source": "contracts/NFDRegistry.algo.ts:335", + "errorMessage": "box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value", + "pc": [ + 1254 + ] + }, + { + "teal": 1124, + "source": "contracts/NFDRegistry.algo.ts:336", + "errorMessage": "box value does not exist: this.boxes(approvProgName).size", + "pc": [ + 1260 + ] + }, + { + "teal": 1470, + "source": "contracts/NFDRegistry.algo.ts:425", + "errorMessage": "global state value does not exist: AppID.fromUint64(parentAppId).globalState(NFD_KEY_VERSION)", + "pc": [ + 1602 + ] + }, + { + "teal": 1475, + "source": "contracts/NFDRegistry.algo.ts:424", + "errorMessage": "nfd root not 3.x must be version 2.12 in order for segment minting to succeed", + "pc": [ + 1610 + ] + }, + { + "teal": 1768, + "source": "contracts/NFDRegistry.algo.ts:479", + "errorMessage": "argument 0 (addrToVerify) for linkNfdAddress must be a address", + "pc": [ + 1967 + ] + }, + { + "teal": 1804, + "source": "contracts/NFDRegistry.algo.ts:481", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 1999 + ] + }, + { + "teal": 1814, + "source": "contracts/NFDRegistry.algo.ts:483", + "errorMessage": "referenced NFD name/id must be valid", + "pc": [ + 2009 + ] + }, + { + "teal": 1834, + "source": "contracts/NFDRegistry.algo.ts:489", + "errorMessage": "verifying vault account, sender must be NFD owner", + "pc": [ + 2026 + ] + }, + { + "teal": 1845, + "source": "contracts/NFDRegistry.algo.ts:492", + "errorMessage": "app call sender must match address being added/removed", + "pc": [ + 2035 + ] + }, + { + "teal": 1859, + "source": "contracts/NFDRegistry.algo.ts:495", + "errorMessage": "nfd verified caAlgo.0.as must contain address being added/removed", + "pc": [ + 2045 + ] + }, + { + "teal": 1878, + "source": "contracts/NFDRegistry.algo.ts:510", + "errorMessage": "should add nfd to reverse address", + "pc": [ + 2064 + ] + }, + { + "teal": 1899, + "source": "contracts/NFDRegistry.algo.ts:520", + "errorMessage": "argument 0 (addrToUnlink) for unlinkNfdAddress must be a address", + "pc": [ + 2083 + ] + }, + { + "teal": 1929, + "source": "contracts/NFDRegistry.algo.ts:521", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 2108 + ] + }, + { + "teal": 1939, + "source": "contracts/NFDRegistry.algo.ts:523", + "errorMessage": "referenced NFD name/id must be valid", + "pc": [ + 2118 + ] + }, + { + "teal": 1969, + "source": "contracts/NFDRegistry.algo.ts:529", + "errorMessage": "Sender unlinking must be NFD owner OR address removing itself", + "pc": [ + 2148 + ] + }, + { + "teal": 1983, + "source": "contracts/NFDRegistry.algo.ts:534", + "errorMessage": "nfd verified caAlgo.0.as must contain address being removed", + "pc": [ + 2158 + ] + }, + { + "teal": 2085, + "source": "contracts/NFDRegistry.algo.ts:558", + "errorMessage": "referenced NFD name/id must be valid", + "pc": [ + 2257 + ] + }, + { + "teal": 2098, + "source": "contracts/NFDRegistry.algo.ts:560", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 2264 + ] + }, + { + "teal": 2128, + "source": "contracts/NFDRegistry.algo.ts:579", + "errorMessage": "argument 0 (buyer) for ownershipChanged must be a address", + "pc": [ + 2291 + ] + }, + { + "teal": 2138, + "source": "contracts/NFDRegistry.algo.ts:579", + "errorMessage": "argument 1 (seller) for ownershipChanged must be a address", + "pc": [ + 2300 + ] + }, + { + "teal": 2191, + "source": "contracts/NFDRegistry.algo.ts:583", + "errorMessage": "referenced NFD name/id must be valid", + "pc": [ + 2337 + ] + }, + { + "teal": 2201, + "source": "contracts/NFDRegistry.algo.ts:584", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)", + "pc": [ + 2343 + ] + }, + { + "teal": 2216, + "source": "contracts/NFDRegistry.algo.ts:586", + "errorMessage": "only txnlab can call this method to backfill ownership, 3.4+ handles it by calling from the nfd itself", + "pc": [ + 2358 + ] + }, + { + "teal": 2266, + "source": "contracts/NFDRegistry.algo.ts:609", + "errorMessage": "argument 0 (addrBeingModified) for setAddressPrimaryNfd must be a address", + "pc": [ + 2406 + ] + }, + { + "teal": 2302, + "source": "contracts/NFDRegistry.algo.ts:610", + "errorMessage": "referenced NFD name/id must be valid", + "pc": [ + 2433 + ] + }, + { + "teal": 2311, + "source": "contracts/NFDRegistry.algo.ts:611", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 2438 + ] + }, + { + "teal": 2332, + "source": "contracts/NFDRegistry.algo.ts:617", + "errorMessage": "if changing primary nfd for vault account, sender must be NFD owner", + "pc": [ + 2457 + ] + }, + { + "teal": 2346, + "source": "contracts/NFDRegistry.algo.ts:620", + "errorMessage": "app call sender must match address being updated to change primary NFD", + "pc": [ + 2466 + ] + }, + { + "teal": 2428, + "source": "contracts/NFDRegistry.algo.ts:641", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 2558 + ] + }, + { + "teal": 2438, + "source": "contracts/NFDRegistry.algo.ts:642", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)", + "pc": [ + 2566 + ] + }, + { + "teal": 2459, + "source": "contracts/NFDRegistry.algo.ts:643", + "errorMessage": "only NFD owner or TxnLab can upgrade NFD", + "pc": [ + 2586 + ] + }, + { + "teal": 2476, + "source": "contracts/NFDRegistry.algo.ts:652", + "errorMessage": "box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value", + "pc": [ + 2598 + ] + }, + { + "teal": 2489, + "source": "contracts/NFDRegistry.algo.ts:654", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_VERSION)", + "pc": [ + 2606 + ] + }, + { + "teal": 2494, + "source": "contracts/NFDRegistry.algo.ts:653", + "errorMessage": "contract already at this version", + "pc": [ + 2610 + ] + }, + { + "teal": 2506, + "source": "contracts/NFDRegistry.algo.ts:659", + "errorMessage": "box value does not exist: this.boxes(REGISTRY_CONTRACT_BOX_CURRENT_CONTRACT).value", + "pc": [ + 2616 + ] + }, + { + "teal": 2518, + "source": "contracts/NFDRegistry.algo.ts:661", + "errorMessage": "box value does not exist: this.boxes(concat(REGISTRY_CONTRACT_BOX_CLEAR_NAMEPREFIX, currentContractVer)).value", + "pc": [ + 2626 + ] + }, + { + "teal": 2527, + "source": "contracts/NFDRegistry.algo.ts:662", + "errorMessage": "box value does not exist: this.boxes(approvProgName).size", + "pc": [ + 2632 + ] + }, + { + "teal": 2730, + "source": "contracts/NFDRegistry.algo.ts:697", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 2809 + ] + }, + { + "teal": 2768, + "source": "contracts/NFDRegistry.algo.ts:702", + "errorMessage": "argument 0 (lookupAddress) for getAddressAppIds must be a address", + "pc": [ + 2837 + ] + }, + { + "teal": 2827, + "source": "contracts/NFDRegistry.algo.ts:708", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 2888 + ] + }, + { + "teal": 3056, + "source": "contracts/NFDRegistry.algo.ts:758", + "errorMessage": "global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('ts')", + "pc": [ + 3084 + ] + }, + { + "teal": 3066, + "source": "contracts/NFDRegistry.algo.ts:759", + "errorMessage": "global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('decimals')", + "pc": [ + 3100 + ] + }, + { + "teal": 3076, + "source": "contracts/NFDRegistry.algo.ts:760", + "errorMessage": "global state value does not exist: AppID.fromUint64(this.algoUsdOracleAppId).globalState('price')", + "pc": [ + 3113 + ] + }, + { + "teal": 3141, + "source": "contracts/NFDRegistry.algo.ts:777", + "errorMessage": "argument 0 (lookupAddress) for costToAddToAddress must be a address", + "pc": [ + 3195 + ] + }, + { + "teal": 3383, + "source": "contracts/NFDRegistry.algo.ts:847", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 3429 + ] + }, + { + "teal": 3494, + "source": "contracts/NFDRegistry.algo.ts:864", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 3516 + ] + }, + { + "teal": 3900, + "source": "contracts/NFDRegistry.algo.ts:965", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 3918 + ] + }, + { + "teal": 3922, + "source": "contracts/NFDRegistry.algo.ts:974", + "errorMessage": "must be existing v1 name", + "pc": [ + 3935 + ] + }, + { + "teal": 3932, + "source": "contracts/NFDRegistry.algo.ts:979", + "errorMessage": "global state value does not exist: AppID.fromUint64(btoi(this.txn.applicationArgs![2])).globalState(REGISTRY_KEY_ASAID)", + "pc": [ + 3950 + ] + }, + { + "teal": 4106, + "source": "contracts/NFDRegistry.algo.ts:1032", + "errorMessage": "NFD already exists with this name", + "pc": [ + 4102 + ] + }, + { + "teal": 4134, + "source": "contracts/NFDRegistry.algo.ts:1038", + "errorMessage": "NFD has already been minted!", + "pc": [ + 4122 + ] + }, + { + "teal": 4206, + "source": "contracts/NFDRegistry.algo.ts:1055", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 4184 + ] + }, + { + "teal": 4224, + "source": "contracts/NFDRegistry.algo.ts:1059", + "errorMessage": "int (appid) 'set' should already have at least two values", + "pc": [ + 4198 + ] + }, + { + "teal": 4307, + "source": "contracts/NFDRegistry.algo.ts:1073", + "errorMessage": "int (app id) must be found in set in order to move it", + "pc": [ + 4267 + ] + }, + { + "teal": 4363, + "source": "contracts/NFDRegistry.algo.ts:1084", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 4311 + ] + }, + { + "teal": 4742, + "source": "contracts/NFDRegistry.algo.ts:1166", + "errorMessage": "if not at least 6 chars can't be valid - minimum length to have .algo", + "pc": [ + 4637 + ] + }, + { + "teal": 4756, + "source": "contracts/NFDRegistry.algo.ts:1167", + "errorMessage": "string must end w/ .algo", + "pc": [ + 4656 + ] + }, + { + "teal": 4851, + "source": "contracts/NFDRegistry.algo.ts:1182", + "errorMessage": "must be 1-27 chars in nfd root or segment name", + "pc": [ + 4739 + ] + }, + { + "teal": 4895, + "source": "contracts/NFDRegistry.algo.ts:1185", + "errorMessage": "must be 1-27 chars and at end of string", + "pc": [ + 4781 + ] + }, + { + "teal": 4900, + "source": "contracts/NFDRegistry.algo.ts:1190", + "errorMessage": "too many '.' chars in name", + "pc": [ + 4785 + ] + }, + { + "teal": 4949, + "source": "contracts/NFDRegistry.algo.ts:1198", + "errorMessage": "invalid character in name", + "pc": [ + 4836 + ] + }, + { + "teal": 5089, + "source": "contracts/NFDRegistry.algo.ts:1219", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 4971 + ] + }, + { + "teal": 5160, + "source": "contracts/NFDRegistry.algo.ts:1232", + "errorMessage": "global state value does not exist: AppID.fromUint64(appId).globalState(key)", + "pc": [ + 5031 + ] + }, + { + "teal": 5192, + "source": "contracts/NFDRegistry.algo.ts:1239", + "errorMessage": "global state value does not exist: AppID.fromUint64(appId).globalState(key)", + "pc": [ + 5054 + ] + }, + { + "teal": 5258, + "source": "contracts/NFDRegistry.algo.ts:1272", + "errorMessage": "parent nfd/id must be found", + "pc": [ + 5095 + ] + }, + { + "teal": 5325, + "source": "contracts/NFDRegistry.algo.ts:1287", + "errorMessage": "segment mint cost must be at least NFD_MIN_SEGMENT_USD", + "pc": [ + 5178 + ] + }, + { + "teal": 5426, + "source": "contracts/NFDRegistry.algo.ts:1309", + "errorMessage": "invalid cost calc", + "pc": [ + 5284 + ] + }, + { + "teal": 5476, + "source": "contracts/NFDRegistry.algo.ts:1320", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_OWNER)", + "pc": [ + 5327 + ] + }, + { + "teal": 5633, + "source": "contracts/NFDRegistry.algo.ts:1351", + "errorMessage": "price always needs to be at least 1 algo", + "pc": [ + 5480 + ] + }, + { + "teal": 6086, + "source": "contracts/NFDRegistry.algo.ts:1456", + "errorMessage": "lsig has to have i.appid localstate", + "pc": [ + 5951 + ] + }, + { + "teal": 6159, + "source": "contracts/NFDRegistry.algo.ts:1479", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 6024 + ] + }, + { + "teal": 6168, + "source": "contracts/NFDRegistry.algo.ts:1480", + "errorMessage": "box value does not exist: this.boxes(boxName).size", + "pc": [ + 6030 + ] + }, + { + "teal": 6227, + "source": "contracts/NFDRegistry.algo.ts:1487", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppId).globalState(NFD_KEY_NAME)", + "pc": [ + 6076 + ] + }, + { + "teal": 6306, + "source": "contracts/NFDRegistry.algo.ts:1505", + "errorMessage": "max expiration exceeded parameters defined by registry", + "pc": [ + 6138 + ] + }, + { + "teal": 6333, + "source": "contracts/NFDRegistry.algo.ts:1513", + "errorMessage": "global state value does not exist: AppID.fromUint64(appId).globalState(NFD_KEY_VERSION)", + "pc": [ + 6155 + ] + }, + { + "teal": 6364, + "source": "contracts/NFDRegistry.algo.ts:51", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 6198 + ] + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "templateVariables": { + "adminAsaId": { + "type": "uint64" + }, + "nfdTreasuryAddr": { + "type": "address" + }, + "nfdCommission1Addr": { + "type": "address" + }, + "nfdCommission1Rate": { + "type": "uint64" + }, + "algoUsdOracleAppId": { + "type": "uint64" + }, + "developmentAllowShortMints": { + "type": "uint64" + } + }, + "scratchVariables": { + "adminAsaId": { + "type": "uint64", + "slot": 200 + }, + "nfdTreasuryAddr": { + "type": "address", + "slot": 201 + }, + "nfdCommission1Addr": { + "type": "address", + "slot": 202 + }, + "nfdCommission1Rate": { + "type": "uint64", + "slot": 203 + }, + "algoUsdOracleAppId": { + "type": "uint64", + "slot": 204 + }, + "developmentAllowShortMints": { + "type": "uint64", + "slot": 205 + } + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 27, + "patch": 237217, + "commitHash": "0bc3d7e4" + } + } +} \ No newline at end of file diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json index c5d5ae9..dcd43fd 100644 --- a/packages/sdk/tsconfig.json +++ b/packages/sdk/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES2020", + "target": "ES2022", "useDefineForClassFields": true, "module": "ESNext", "lib": ["ES2020", "DOM", "DOM.Iterable"], @@ -16,9 +16,14 @@ "noFallthroughCasesInSwitch": true, "paths": { "@/*": ["./src/*"] - } + }, + "types": ["node"], + "allowJs": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true }, - "include": ["src", "tests"], + "include": ["src", "tests", "scripts"], "exclude": [ "src/contracts/NFDInstanceClient.ts", "src/contracts/NFDRegistryClient.ts" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a5c3ad..0aa7008 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 9.21.0 '@tanstack/config': specifier: ^0.16.2 - version: 0.16.3(@types/node@22.13.5)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + version: 0.16.3(@types/node@22.13.9)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) '@typescript-eslint/eslint-plugin': specifier: ^8.24.1 version: 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) @@ -77,13 +77,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) examples/link-address: dependencies: @@ -117,13 +117,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) examples/mint: dependencies: @@ -157,13 +157,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) examples/resolve: dependencies: @@ -185,13 +185,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) examples/reverse-lookup: dependencies: @@ -213,13 +213,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) examples/set-metadata: dependencies: @@ -253,13 +253,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.4(vite@4.5.9(@types/node@22.13.5)) + version: 4.3.4(vite@4.5.9(@types/node@22.13.9)) vite: specifier: ^4.5.2 - version: 4.5.9(@types/node@22.13.5) + version: 4.5.9(@types/node@22.13.9) vite-plugin-node-polyfills: specifier: ^0.23.0 - version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)) + version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) packages/sdk: dependencies: @@ -284,10 +284,13 @@ importers: version: 0.64.5(magicast@0.3.5)(typescript@5.7.3) '@tanstack/config': specifier: ^0.16.2 - version: 0.16.3(@types/node@22.13.5)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + version: 0.16.3(@types/node@22.13.9)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 '@types/node-fetch': specifier: ^2.6.12 version: 2.6.12 @@ -309,18 +312,21 @@ importers: tsx: specifier: ^4.19.3 version: 4.19.3 + type-fest: + specifier: ^4.37.0 + version: 4.37.0 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: ^4.5.0 - version: 4.5.0(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.0(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: ^3.0.7 - version: 3.0.7(@types/node@22.13.5)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + version: 3.0.7(@types/node@22.13.9)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) packages: @@ -1140,8 +1146,8 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@22.13.5': - resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==} + '@types/node@22.13.9': + resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3372,6 +3378,10 @@ packages: resolution: {integrity: sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==} engines: {node: '>=16'} + type-fest@4.37.0: + resolution: {integrity: sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==} + engines: {node: '>=16'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -4111,31 +4121,31 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} - '@microsoft/api-extractor-model@7.29.6(@types/node@22.13.5)': + '@microsoft/api-extractor-model@7.29.6(@types/node@22.13.9)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.7.0(@types/node@22.13.9) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.30.3(@types/node@22.13.5)': + '@microsoft/api-extractor-model@7.30.3(@types/node@22.13.9)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.11.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.7(@types/node@22.13.5)': + '@microsoft/api-extractor@7.47.7(@types/node@22.13.9)': dependencies: - '@microsoft/api-extractor-model': 7.29.6(@types/node@22.13.5) + '@microsoft/api-extractor-model': 7.29.6(@types/node@22.13.9) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.7.0(@types/node@22.13.9) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.0(@types/node@22.13.5) - '@rushstack/ts-command-line': 4.22.6(@types/node@22.13.5) + '@rushstack/terminal': 0.14.0(@types/node@22.13.9) + '@rushstack/ts-command-line': 4.22.6(@types/node@22.13.9) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -4145,15 +4155,15 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.51.0(@types/node@22.13.5)': + '@microsoft/api-extractor@7.51.0(@types/node@22.13.9)': dependencies: - '@microsoft/api-extractor-model': 7.30.3(@types/node@22.13.5) + '@microsoft/api-extractor-model': 7.30.3(@types/node@22.13.9) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.11.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.0(@types/node@22.13.5) - '@rushstack/ts-command-line': 4.23.5(@types/node@22.13.5) + '@rushstack/terminal': 0.15.0(@types/node@22.13.9) + '@rushstack/ts-command-line': 4.23.5(@types/node@22.13.9) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -4266,7 +4276,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true - '@rushstack/node-core-library@5.11.0(@types/node@22.13.5)': + '@rushstack/node-core-library@5.11.0(@types/node@22.13.9)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -4277,9 +4287,9 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 - '@rushstack/node-core-library@5.7.0(@types/node@22.13.5)': + '@rushstack/node-core-library@5.7.0(@types/node@22.13.9)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -4290,39 +4300,39 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.0(@types/node@22.13.5)': + '@rushstack/terminal@0.14.0(@types/node@22.13.9)': dependencies: - '@rushstack/node-core-library': 5.7.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.7.0(@types/node@22.13.9) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 - '@rushstack/terminal@0.15.0(@types/node@22.13.5)': + '@rushstack/terminal@0.15.0(@types/node@22.13.9)': dependencies: - '@rushstack/node-core-library': 5.11.0(@types/node@22.13.5) + '@rushstack/node-core-library': 5.11.0(@types/node@22.13.9) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 - '@rushstack/ts-command-line@4.22.6(@types/node@22.13.5)': + '@rushstack/ts-command-line@4.22.6(@types/node@22.13.9)': dependencies: - '@rushstack/terminal': 0.14.0(@types/node@22.13.5) + '@rushstack/terminal': 0.14.0(@types/node@22.13.9) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.5(@types/node@22.13.5)': + '@rushstack/ts-command-line@4.23.5(@types/node@22.13.9)': dependencies: - '@rushstack/terminal': 0.15.0(@types/node@22.13.5) + '@rushstack/terminal': 0.15.0(@types/node@22.13.9) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -4347,7 +4357,7 @@ snapshots: eslint-visitor-keys: 4.2.0 espree: 10.3.0 - '@tanstack/config@0.16.3(@types/node@22.13.5)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))': + '@tanstack/config@0.16.3(@types/node@22.13.9)(esbuild@0.25.0)(eslint@9.21.0(jiti@2.4.2))(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.21.0 @@ -4369,9 +4379,9 @@ snapshots: typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.7.3)) typescript-eslint: 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) v8flags: 4.0.1 - vite-plugin-dts: 4.2.3(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) - vite-plugin-externalize-deps: 0.9.0(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) - vite-tsconfig-paths: 5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + vite-plugin-dts: 4.2.3(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + vite-plugin-externalize-deps: 0.9.0(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + vite-tsconfig-paths: 5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) vue-eslint-parser: 9.4.3(eslint@9.21.0(jiti@2.4.2)) transitivePeerDependencies: - '@types/node' @@ -4435,7 +4445,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 '@types/crypto-js@4.2.2': {} @@ -4451,10 +4461,10 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 form-data: 4.0.2 - '@types/node@22.13.5': + '@types/node@22.13.9': dependencies: undici-types: 6.20.0 @@ -4550,14 +4560,14 @@ snapshots: '@typescript-eslint/types': 8.25.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@4.3.4(vite@4.5.9(@types/node@22.13.5))': + '@vitejs/plugin-react@4.3.4(vite@4.5.9(@types/node@22.13.9))': dependencies: '@babel/core': 7.26.9 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 4.5.9(@types/node@22.13.5) + vite: 4.5.9(@types/node@22.13.9) transitivePeerDependencies: - supports-color @@ -4575,7 +4585,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.7(@types/node@22.13.5)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.0.7(@types/node@22.13.9)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -4586,13 +4596,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.7(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.0.7(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.7 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) '@vitest/pretty-format@3.0.7': dependencies: @@ -4622,7 +4632,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.12 tinyrainbow: 2.0.0 - vitest: 3.0.7(@types/node@22.13.5)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.0.7(@types/node@22.13.9)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) '@vitest/utils@3.0.7': dependencies: @@ -7111,6 +7121,8 @@ snapshots: type-fest@4.35.0: {} + type-fest@4.37.0: {} + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.3 @@ -7236,13 +7248,13 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@3.0.7(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): + vite-node@3.0.7(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -7257,9 +7269,9 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.2.3(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-dts@4.2.3(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.13.5) + '@microsoft/api-extractor': 7.47.7(@types/node@22.13.9) '@rollup/pluginutils': 5.1.4(rollup@4.34.8) '@volar/typescript': 2.4.11 '@vue/language-core': 2.1.6(typescript@5.7.3) @@ -7270,15 +7282,15 @@ snapshots: magic-string: 0.30.17 typescript: 5.7.3 optionalDependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.5.0(@types/node@22.13.5)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-dts@4.5.0(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): dependencies: - '@microsoft/api-extractor': 7.51.0(@types/node@22.13.5) + '@microsoft/api-extractor': 7.51.0(@types/node@22.13.9) '@rollup/pluginutils': 5.1.4(rollup@4.34.8) '@volar/typescript': 2.4.11 '@vue/language-core': 2.2.0(typescript@5.7.3) @@ -7289,60 +7301,60 @@ snapshots: magic-string: 0.30.17 typescript: 5.7.3 optionalDependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.9.0(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-externalize-deps@0.9.0(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): dependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) - vite-plugin-node-polyfills@0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.5)): + vite-plugin-node-polyfills@0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)): dependencies: '@rollup/plugin-inject': 5.0.5(rollup@4.34.8) node-stdlib-browser: 1.3.1 - vite: 4.5.9(@types/node@22.13.5) + vite: 4.5.9(@types/node@22.13.9) transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.7.3) optionalDependencies: - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@4.5.9(@types/node@22.13.5): + vite@4.5.9(@types/node@22.13.9): dependencies: esbuild: 0.18.20 postcss: 8.5.3 rollup: 3.29.5 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 fsevents: 2.3.3 - vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.0 postcss: 8.5.3 rollup: 4.34.8 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 fsevents: 2.3.3 jiti: 2.4.2 tsx: 4.19.3 yaml: 2.7.0 - vitest@3.0.7(@types/node@22.13.5)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): + vitest@3.0.7(@types/node@22.13.9)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.7 - '@vitest/mocker': 3.0.7(vite@6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.0.7(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.7 '@vitest/runner': 3.0.7 '@vitest/snapshot': 3.0.7 @@ -7358,11 +7370,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.0.7(@types/node@22.13.5)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite-node: 3.0.7(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.9 '@vitest/ui': 3.0.7(vitest@3.0.7) transitivePeerDependencies: - jiti