From 26320512c7987d3b72602648907a2aa0391a5a75 Mon Sep 17 00:00:00 2001 From: yashnevatia Date: Wed, 15 Jan 2025 11:47:01 +0000 Subject: [PATCH 1/2] adding zksync wrappers --- .../scripts/native_solc_compile_all_ccip | 106 +- contracts/src/v0.8/ccip/test/WETH9.sol | 6 +- core/gethwrappers/abigen.go | 197 +- .../generated/commit_store/commit_store.go | 15 +- .../evm_2_evm_offramp/evm_2_evm_offramp.go | 15 +- .../evm_2_evm_onramp/evm_2_evm_onramp.go | 15 +- .../ccip/generated/link_token/link_token.go | 2071 ++++++++++++ .../price_registry_1_2_0.go | 2866 +++++++++++++++++ .../registry_module_owner_custom.go | 15 +- .../generated/rmn_contract/rmn_contract.go | 15 +- .../rmn_proxy_contract/rmn_proxy_contract.go | 15 +- .../ccip/generated/router/router.go | 15 +- .../self_funded_ping_pong.go | 15 +- .../token_admin_registry.go | 15 +- .../ccip/generated/weth9/weth9.go | 17 +- ...rapper-dependency-versions-do-not-edit.txt | 6 +- core/gethwrappers/ccip/go_gen_zk.go | 15 + core/gethwrappers/generated/generated.go | 98 + core/gethwrappers/generation/generate/wrap.go | 8 +- go.mod | 28 +- go.sum | 88 +- 21 files changed, 5497 insertions(+), 144 deletions(-) create mode 100644 core/gethwrappers/ccip/generated/link_token/link_token.go create mode 100644 core/gethwrappers/ccip/generated/price_registry_1_2_0/price_registry_1_2_0.go create mode 100644 core/gethwrappers/ccip/go_gen_zk.go diff --git a/contracts/scripts/native_solc_compile_all_ccip b/contracts/scripts/native_solc_compile_all_ccip index a384ea6786..b91b4e99e3 100755 --- a/contracts/scripts/native_solc_compile_all_ccip +++ b/contracts/scripts/native_solc_compile_all_ccip @@ -7,6 +7,7 @@ echo " │ Compiling CCIP contracts... │" echo " └──────────────────────────────────────────────┘" SOLC_VERSION="0.8.24" +ZKSOLC_VERSION="1.5.3" OPTIMIZE_RUNS=26000 OPTIMIZE_RUNS_OFFRAMP=18000 OPTIMIZE_RUNS_ONRAMP=4100 @@ -52,56 +53,67 @@ compileContract () { --bin-runtime --hashes --metadata --metadata-literal --combined-json abi,hashes,metadata,srcmap,srcmap-runtime \ --evm-version paris \ "$ROOT"/contracts/src/v0.8/"$1" + + zksolc --overwrite -O3 --metadata-hash none \ + -o "$ROOT"/contracts/zksolc/v$ZKSOLC_VERSION/"$contract" \ + --bin --allow-paths "$ROOT"/contracts/src/v0.8 \ + --metadata-literal \ + --evm-version paris \ + "$ROOT"/contracts/src/v0.8/"$1" } # Solc produces and overwrites intermediary contracts. # Contracts should be ordered in reverse-import-complexity-order to minimize overwrite risks. -compileContract ccip/offRamp/EVM2EVMOffRamp.sol -compileContract ccip/offRamp/OffRamp.sol -compileContract ccip/applications/PingPongDemo.sol -compileContract ccip/applications/SelfFundedPingPong.sol -compileContract ccip/applications/EtherSenderReceiver.sol -compileContract ccip/onRamp/OnRamp.sol +# compileContract ccip/offRamp/EVM2EVMOffRamp.sol compileContract ccip/onRamp/EVM2EVMOnRamp.sol -compileContract ccip/CommitStore.sol -compileContract ccip/MultiAggregateRateLimiter.sol -compileContract ccip/Router.sol -compileContract ccip/PriceRegistry.sol -compileContract ccip/RMN.sol -compileContract ccip/ARMProxy.sol -compileContract ccip/tokenAdminRegistry/TokenAdminRegistry.sol -compileContract ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol -compileContract ccip/capability/CCIPConfig.sol -compileContract ccip/capability/interfaces/IOCR3ConfigEncoder.sol -compileContract ccip/NonceManager.sol -compileContract shared/token/ERC677/BurnMintERC677.sol - - -# Pools -compileContract ccip/pools/LockReleaseTokenPool.sol -compileContract ccip/pools/BurnMintTokenPool.sol -compileContract ccip/pools/BurnFromMintTokenPool.sol -compileContract ccip/pools/BurnWithFromMintTokenPool.sol -compileContract ccip/pools/LockReleaseTokenPoolAndProxy.sol -compileContract ccip/pools/BurnMintTokenPoolAndProxy.sol -compileContract ccip/pools/BurnWithFromMintTokenPoolAndProxy.sol -compileContract ccip/pools/TokenPool.sol - - -# Test helpers -compileContract ccip/test/helpers/BurnMintERC677Helper.sol -compileContract ccip/test/helpers/CommitStoreHelper.sol -compileContract ccip/test/helpers/MessageHasher.sol -compileContract ccip/test/helpers/CCIPReaderTester.sol -compileContract ccip/test/helpers/ReportCodec.sol -compileContract ccip/test/helpers/receivers/MaybeRevertMessageReceiver.sol -compileContract ccip/test/helpers/MultiOCR3Helper.sol -compileContract ccip/test/mocks/MockE2EUSDCTokenMessenger.sol -compileContract ccip/test/mocks/MockE2EUSDCTransmitter.sol -compileContract ccip/test/WETH9.sol - -# Customer contracts -compileContract ccip/pools/USDC/USDCTokenPool.sol - -compileContract tests/MockV3Aggregator.sol +# compileContract ccip/applications/PingPongDemo.sol +# compileContract ccip/applications/SelfFundedPingPong.sol +# compileContract ccip/CommitStore.sol +# compileContract ccip/Router.sol +# compileContract ccip/PriceRegistry.sol +# compileContract ccip/RMN.sol +# compileContract ccip/ARMProxy.sol +# compileContract ccip/tokenAdminRegistry/TokenAdminRegistry.sol +# compileContract ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol +# compileContract ccip/pools/LockReleaseTokenPool.sol +# compileContract ccip/test/WETH9.sol +# compileContract shared/token/ERC677/LinkToken.sol + + +# compileContract ccip/offRamp/OffRamp.sol +# compileContract ccip/applications/EtherSenderReceiver.sol +# compileContract ccip/onRamp/OnRamp.sol +# compileContract ccip/MultiAggregateRateLimiter.sol +# compileContract ccip/capability/CCIPConfig.sol +# compileContract ccip/capability/interfaces/IOCR3ConfigEncoder.sol +# compileContract ccip/NonceManager.sol +# compileContract shared/token/ERC677/BurnMintERC677.sol + + +# # Pools +# compileContract ccip/pools/BurnMintTokenPool.sol +# compileContract ccip/pools/BurnFromMintTokenPool.sol +# compileContract ccip/pools/BurnWithFromMintTokenPool.sol +# compileContract ccip/pools/LockReleaseTokenPoolAndProxy.sol +# compileContract ccip/pools/BurnMintTokenPoolAndProxy.sol +# compileContract ccip/pools/BurnWithFromMintTokenPoolAndProxy.sol +# compileContract ccip/pools/TokenPool.sol + + +# # Test helpers +# compileContract ccip/test/helpers/BurnMintERC677Helper.sol +# compileContract ccip/test/helpers/CommitStoreHelper.sol +# compileContract ccip/test/helpers/MessageHasher.sol +# compileContract ccip/test/helpers/CCIPReaderTester.sol +# compileContract ccip/test/helpers/ReportCodec.sol +# compileContract ccip/test/helpers/receivers/MaybeRevertMessageReceiver.sol +# compileContract ccip/test/helpers/MultiOCR3Helper.sol +# compileContract ccip/test/mocks/MockE2EUSDCTokenMessenger.sol +# compileContract ccip/test/mocks/MockE2EUSDCTransmitter.sol + + +# # Customer contracts +# compileContract ccip/pools/USDC/USDCTokenPool.sol + +# compileContract tests/MockV3Aggregator.sol diff --git a/contracts/src/v0.8/ccip/test/WETH9.sol b/contracts/src/v0.8/ccip/test/WETH9.sol index fbc19ee2c4..adf003cf82 100644 --- a/contracts/src/v0.8/ccip/test/WETH9.sol +++ b/contracts/src/v0.8/ccip/test/WETH9.sol @@ -43,10 +43,12 @@ contract WETH9 { _deposit(); } - function withdraw(uint256 wad) external { + function withdraw(uint256 wad) public { require(balanceOf[msg.sender] >= wad); balanceOf[msg.sender] -= wad; - payable(msg.sender).transfer(wad); + // Replace transfer with call + (bool success,) = payable(msg.sender).call{value: wad}(""); + require(success, "WETH9: ETH transfer failed"); emit Withdrawal(msg.sender, wad); } diff --git a/core/gethwrappers/abigen.go b/core/gethwrappers/abigen.go index af085f30d9..be13094d49 100644 --- a/core/gethwrappers/abigen.go +++ b/core/gethwrappers/abigen.go @@ -28,7 +28,7 @@ const headerComment = `// Code generated - DO NOT EDIT. // AbigenArgs is the arguments to the abigen executable. E.g., Bin is the -bin // arg. type AbigenArgs struct { - Bin, ABI, Out, Type, Pkg string + Bin, ABI, Out, Type, Pkg, ZkBinPath string } // Abigen calls Abigen with the given arguments @@ -72,6 +72,9 @@ func Abigen(a AbigenArgs) { } ImproveAbigenOutput(a.Out, a.ABI) + if a.ZkBinPath != "" { + ImproveAbigenOutputZks(a.Out, a.ZkBinPath) + } } func ImproveAbigenOutput(path string, abiPath string) { @@ -466,3 +469,195 @@ func writeInterface(contractName string, fileNode *ast.File) *ast.File { func addHeader(code []byte) []byte { return utils.ConcatBytes([]byte(headerComment), code) } + +// ZK stack logic +func ImproveAbigenOutputZks(path string, zkBinPath string) { + bs, err := os.ReadFile(path) + if err != nil { + Exit("Error while improving abigen output", err) + } + + fset, fileNode := parseFile(bs) + + contractName := getContractName(fileNode) + + zkByteCode, err := os.ReadFile(zkBinPath) + if err != nil { + Exit("Error while improving abigen output", err) + } + zkHexString := string(zkByteCode) + + // add zksync binary to the wrapper + fileNode = addZKSyncBin(fileNode, contractName, zkHexString) + + // add zksync logic to the deploy function + fileNode = updateDeployMethod(contractName, fset, fileNode) + + bs = generateCode(fset, fileNode) + + err = os.WriteFile(path, bs, 0600) + if err != nil { + Exit("Error while writing improved abigen source", err) + } +} + +// add zksync binary to the wrapper +func addZKSyncBin(fileNode *ast.File, contractName string, zkHexString string) *ast.File { + // zksync + newVarSpec := &ast.ValueSpec{ + Names: []*ast.Ident{ast.NewIdent(contractName + "ZKBin")}, + Values: []ast.Expr{ + &ast.BasicLit{ + Kind: token.STRING, + Value: fmt.Sprintf("(\"%s\")", zkHexString), + }, + }, + } + newVarDecl := &ast.GenDecl{ + Tok: token.VAR, + Specs: []ast.Spec{newVarSpec}, + } + + // Insert the new variable declaration at the top of the file (before existing functions) + fileNode.Decls = append(fileNode.Decls, newVarDecl) + return fileNode +} + +// add zksync logic to the deploy function +func updateDeployMethod(contractName string, fset *token.FileSet, fileNode *ast.File) *ast.File { + + return astutil.Apply(fileNode, func(cursor *astutil.Cursor) bool { + x, is := cursor.Node().(*ast.FuncDecl) + if !is { + return true + } else if x.Name.Name != "Deploy"+contractName { + return false + } + + // only add this import if Deploy method found + astutil.AddImport(fset, fileNode, "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated") + + // Extract the parameters from the existing function x + paramList := getConstructorParams(x.Type.Params.List) + // get the `if zksync()` block + zkSyncBlock := getZKSyncBlock(contractName, paramList) + // insert the `if zksync()` block + addZKSyncBlock(*x, zkSyncBlock) + // update the return type in the function signature + updateTxReturnType(*x) + // update the actual return value + updateReturnStmt(*x) + + return false + }, nil).(*ast.File) +} + +// get the `if zksync()` block +func getZKSyncBlock(contractName, paramList string) string { + zkSyncBlock := `if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(%sZKBin), backend, %params) + contractReturn := &%s{address: address, abi: *parsed, %sCaller: %sCaller{contract: contractBind}, %sTransactor: %sTransactor{contract: contractBind},%sFilterer: %sFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + }` + zkSyncBlock = strings.ReplaceAll(zkSyncBlock, "%s", contractName) + zkSyncBlock = strings.ReplaceAll(zkSyncBlock, "%params", paramList) + return strings.ReplaceAll(zkSyncBlock, "%s", contractName) +} + +// Extract the parameters for constructor function +func getConstructorParams(contstructorParams []*ast.Field) string { + params := []string{} + for i, param := range contstructorParams { + if i > 1 { // Skip auth and backend + for _, name := range param.Names { + params = append(params, name.Name) + } + } + } + paramList := strings.Join(params, ", ") + return paramList +} + +// insert the `if zksync()` block +func addZKSyncBlock(x ast.FuncDecl, zkSyncBlock string) ast.FuncDecl { + for i, stmt := range x.Body.List { + + ifStmt, ok := stmt.(*ast.IfStmt) + if !ok { + continue + } + binaryExpr, ok := ifStmt.Cond.(*ast.BinaryExpr) + if !ok { + continue + } + if ident, ok := binaryExpr.X.(*ast.Ident); ok && ident.Name == "parsed" { + // Creating new statement to insert + newStmt := &ast.ExprStmt{ + X: &ast.BasicLit{ + Kind: token.STRING, + Value: zkSyncBlock, + }, + } + + // Insert the new statement after the current statement + x.Body.List = append(x.Body.List[:i+1], append([]ast.Stmt{newStmt}, x.Body.List[i+1:]...)...) + break + } + } + return x +} + +// convert *types.Transaction to *generated_zks.Transaction +func updateTxReturnType(x ast.FuncDecl) { + x.Type.Results.List[1].Type = &ast.StarExpr{ + X: &ast.SelectorExpr{ + X: &ast.Ident{Name: "generated"}, + Sel: &ast.Ident{Name: "Transaction"}, + }, + } +} + +// convert tx to &Transaction{Transaction: tx, HashZks: tx.Hash()} +func updateReturnStmt(x ast.FuncDecl) { + for _, stmt := range x.Body.List { + returnStmt, is := stmt.(*ast.ReturnStmt) + if !is { + continue + } + if len(returnStmt.Results) < 3 { + continue + } + + txExpr, ok := returnStmt.Results[1].(*ast.Ident) + if !ok { + return + } + if txExpr.Name != "tx" { + return + } + + txField := &ast.KeyValueExpr{ + Key: ast.NewIdent("Transaction"), + Value: ast.NewIdent("tx"), + } + + hashField := &ast.KeyValueExpr{ + Key: ast.NewIdent("HashZks"), + Value: &ast.CallExpr{ + Fun: &ast.SelectorExpr{ + X: ast.NewIdent("tx"), + Sel: ast.NewIdent("Hash"), + }, + }, + } + newRet := &ast.CompositeLit{ + Type: &ast.SelectorExpr{ + X: ast.NewIdent("generated"), + Sel: ast.NewIdent("Transaction"), + }, + Elts: []ast.Expr{txField, hashField}, + } + pointerRet := &ast.UnaryExpr{Op: token.AND, X: newRet} + returnStmt.Results[1] = pointerRet + } +} diff --git a/core/gethwrappers/ccip/generated/commit_store/commit_store.go b/core/gethwrappers/ccip/generated/commit_store/commit_store.go index b0082a3f0b..d3a7bb87e5 100644 --- a/core/gethwrappers/ccip/generated/commit_store/commit_store.go +++ b/core/gethwrappers/ccip/generated/commit_store/commit_store.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package commit_store import ( @@ -76,7 +73,7 @@ var CommitStoreABI = CommitStoreMetaData.ABI var CommitStoreBin = CommitStoreMetaData.Bin -func DeployCommitStore(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig CommitStoreStaticConfig) (common.Address, *types.Transaction, *CommitStore, error) { +func DeployCommitStore(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig CommitStoreStaticConfig) (common.Address, *generated.Transaction, *CommitStore, error) { parsed, err := CommitStoreMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -84,12 +81,16 @@ func DeployCommitStore(auth *bind.TransactOpts, backend bind.ContractBackend, st if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(CommitStoreZKBin), backend, staticConfig) + contractReturn := &CommitStore{address: address, abi: *parsed, CommitStoreCaller: CommitStoreCaller{contract: contractBind}, CommitStoreTransactor: CommitStoreTransactor{contract: contractBind}, CommitStoreFilterer: CommitStoreFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CommitStoreBin), backend, staticConfig) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &CommitStore{address: address, abi: *parsed, CommitStoreCaller: CommitStoreCaller{contract: contract}, CommitStoreTransactor: CommitStoreTransactor{contract: contract}, CommitStoreFilterer: CommitStoreFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &CommitStore{address: address, abi: *parsed, CommitStoreCaller: CommitStoreCaller{contract: contract}, CommitStoreTransactor: CommitStoreTransactor{contract: contract}, CommitStoreFilterer: CommitStoreFilterer{contract: contract}}, nil } type CommitStore struct { @@ -2189,3 +2190,5 @@ type CommitStoreInterface interface { Address() common.Address } + +var CommitStoreZKBin = ("0x00030000000000020018000000000002000000000301001900000060033002700002000000010355000003e80030019d000003e8033001970000000100200190000000320000c13d0000008002000039000000400020043f000000040030008c000000520000413d000000000401043b000000e004400270000003f60040009c0000005d0000a13d000003f70040009c000000700000213d000003ff0040009c000000ff0000213d000004030040009c000003fe0000613d000004040040009c000002710000613d000004050040009c000000520000c13d0000000001000416000000000001004b000000520000c13d000000000100041a000003ed021001970000000001000411000000000021004b000004f80000c13d0000000902000039000000000302041a0000044a033001970000044b033001c7000000000032041b000000800010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000044c011001c70000800d0200003900000001030000390000044d040000410000045b0000013d0000000002000416000000000002004b000000520000c13d0000001f02300039000003e9022001970000014002200039000000400020043f0000001f0430018f000003ea053001980000014002500039000000430000613d0000014006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003f0000c13d000000000004004b000000500000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000800030008c000000540000813d000000000100001900000f9d00010430000000400300043d000003eb0030009c000000a90000a13d0000046101000041000000000010043f0000004101000039000000040010043f0000045b0100004100000f9d00010430000004060040009c000000d40000a13d000004070040009c0000013d0000213d0000040b0040009c000004880000613d0000040c0040009c000004460000613d0000040d0040009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000901000039000000000101041a000003ec01100197000000800010043f000004490100004100000f9c0001042e000003f80040009c000001250000213d000003fc0040009c0000041a0000613d000003fd0040009c000002800000613d000003fe0040009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000042101000041000000800010043f0000041701000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b00000080011002100000042201100197000000840010043f0000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000201043b0000000001000414000003ed02200197000000040020008c0000054e0000c13d0000000103000031000000200030008c00000020040000390000000004034019000005730000013d0000008001300039000000400010043f000001400100043d000003ec0010009c000000520000213d0000000001130436001000000001001d000001600100043d000003ec0010009c000000520000213d00000010020000290000000000120435000001800100043d000003ed0010009c000000520000213d0000004002300039000f00000002001d0000000000120435000001a00100043d000003ed0010009c000000520000213d000000600230003900000000001204350000000001000411000000000001004b0000050c0000c13d000000400100043d0000004402100039000003f3030000410000000000320435000000240210003900000018030000390000000000320435000003f4020000410000000000210435000000040210003900000020030000390000000000320435000003e80010009c000003e8010080410000004001100210000003f5011001c700000f9d000104300000040e0040009c000001500000a13d0000040f0040009c0000025d0000613d000004100040009c0000015e0000613d000004110040009c000000520000c13d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000004250010009c000000520000213d000000000200041a000003ed022001970000000003000411000000000023004b000004f80000c13d0000042502100197000000400110021000000458011001970000000903000039000000000403041a0000042d05400197000000000115019f000000000013041b00000040014002700000042501100197000000800010043f000000a00020043f0000000001000414000003e80010009c000003e801008041000000c00110021000000447011001c70000800d02000039000000010300003900000459040000410000045b0000013d000004000040009c000004230000613d000004010040009c000002f40000613d000004020040009c000000520000c13d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000003ec0010009c000000520000213d000000000200041a000003ed022001970000000003000411000000000023004b000004f80000c13d000003ec011001970000000902000039000000000302041a0000043204300197000000000414019f000000000042041b000003ec02300197000000800020043f000000a00010043f0000000001000414000003e80010009c000003e801008041000000c00110021000000447011001c70000800d02000039000000010300003900000448040000410000045b0000013d000003f90040009c0000042b0000613d000003fa0040009c000003050000613d000003fb0040009c000000520000c13d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b0f9b0ec10000040f000000000001004b0000000001000039000000010100c039000000400200043d0000000000120435000003e80020009c000003e802008041000000400120021000000414011001c700000f9c0001042e000004080040009c000004ed0000613d000004090040009c000004600000613d0000040a0040009c000000520000c13d0000000001000416000000000001004b000000520000c13d000000800000043f000000c001000039000000400010043f0000000801000039000000000101041a000003ed01100197000000a00010043f000000c00010043f000004500100004100000f9c0001042e000004120040009c000003c00000613d000004130040009c000000520000c13d0000000001000416000000000001004b000000520000c13d0000000901000039000000000101041a00000040011002700000042501100197000000800010043f000004490100004100000f9c0001042e000000c40030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b000003ec0050009c000000570000213d00000005045002100000003f064000390000042906600197000003eb0060009c000000570000213d0000008006600039000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000520000213d000000000005004b000001870000613d0000008005000039000000000621034f000000000606043b000003ed0060009c000000520000213d000000200550003900000000006504350000002002200039000000000042004b0000017e0000413d0000002402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b00000000050000190000042b050080410000042b04400197000000000004004b00000000060000190000042b060040410000042b0040009c000000000605c019000000000006004b000000520000c13d0000000404200039000000000441034f000000000404043b000003ec0040009c000000570000213d00000005054002100000003f065000390000042906600197000000400700043d0000000006670019001000000007001d000000000076004b00000000070000390000000107004039000003ec0060009c000000570000213d0000000100700190000000570000c13d000000400060043f00000010060000290000000006460436000f00000006001d00000024022000390000000005250019000000000035004b000000520000213d000000000004004b000001bd0000613d0000001004000029000000000621034f000000000606043b000003ed0060009c000000520000213d000000200440003900000000006404350000002002200039000000000052004b000001b40000413d0000004402100370000000000202043b000e00000002001d000000ff0020008c000000520000213d0000006402100370000000000402043b000003ec0040009c000000520000213d0000002302400039000000000032004b00000000050000190000042b050080410000042b02200197000000000002004b00000000060000190000042b060040410000042b0020009c000000000605c019000000000006004b000000520000c13d0000000405400039000000000251034f000000000202043b000003ec0020009c000000570000213d0000001f062000390000046c066001970000003f066000390000046c06600197000000400700043d0000000006670019000d00000007001d000000000076004b00000000070000390000000107004039000003ec0060009c000000570000213d0000000100700190000000570000c13d0000002404400039000000400060043f0000000d060000290000000006260436000c00000006001d0000000004420019000000000034004b000000520000213d0000002004500039000000000541034f0000046c062001980000001f0720018f0000000c04600029000001f90000613d000000000805034f0000000c09000029000000008a08043c0000000009a90436000000000049004b000001f50000c13d000000000007004b000002060000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000000c0220002900000000000204350000008402100370000000000202043b000b00000002001d000003ec0020009c000000520000213d000000a402100370000000000402043b000003ec0040009c000000520000213d0000002302400039000000000032004b00000000050000190000042b050080410000042b02200197000000000002004b00000000060000190000042b060040410000042b0020009c000000000605c019000000000006004b000000520000c13d0000000405400039000000000251034f000000000202043b000003ec0020009c000000570000213d0000001f062000390000046c066001970000003f066000390000046c06600197000000400700043d0000000006670019000800000007001d000000000076004b00000000070000390000000107004039000003ec0060009c000000570000213d0000000100700190000000570000c13d0000002404400039000000400060043f00000008060000290000000006260436000700000006001d0000000004420019000000000034004b000000520000213d0000002003500039000000000331034f0000046c042001980000001f0520018f0000000701400029000002440000613d000000000603034f0000000707000029000000006806043c0000000007870436000000000017004b000002400000c13d000000000005004b000002510000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000007012000290000000000010435000000800100043d000000200010008c0000089f0000413d000000400100043d0000045a020000410000000000210435000000040210003900000001030000390000000000320435000008a60000013d0000000001000416000000000001004b000000520000c13d000000c001000039000000400010043f0000001101000039000000800010043f0000046901000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e0020000390f9b0ea10000040f000000c00110008a000003e80010009c000003e80100804100000060011002100000046a011001c700000f9c0001042e0000000001000416000000000001004b000000520000c13d0000000201000039000000000101041a0000000402000039000000000202041a000003e803200197000000800030043f0000002002200270000003e802200197000000a00020043f000000c00010043f000004460100004100000f9c0001042e000000e40030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000006402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d000f00040020003d0000000f04100360000000000404043b001000000004001d000003ec0040009c000000520000213d0000002402200039000d00000002001d000e00100020002d0000000e0030006b000000520000213d0000008402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000404043b000c00000004001d000003ec0040009c000000520000213d00000024042000390000000c020000290000000502200210000b00000004001d000a00000002001d0000000002420019000000000032004b000000520000213d000000a402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000404043b000900000004001d000003ec0040009c000000520000213d000800240020003d000000090200002900000005022002100000000802200029000000000032004b000000520000213d0000000902000039000000000202041a0000042400200198000005cd0000c13d0000002401100370000000000101043b000700000001001d0000042101000041000000800010043f0000041701000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b00000080011002100000042201100197000000840010043f0000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000201043b0000000001000414000003ed02200197000000040020008c0000061f0000c13d0000000103000031000000200030008c00000020040000390000000004034019000006440000013d000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000000000010043f0000000a01000039000000200010043f000000400200003900000000010000190f9b0f5e0000040f000000000101041a000000800010043f000004490100004100000f9c0001042e000000240030008c000000520000413d0000000004000416000000000004004b000000520000c13d0000000404100370000000000404043b000003ec0040009c000000520000213d0000002305400039000000000035004b000000520000813d0000000405400039000000000151034f000000000101043b000d00000001001d000003ec0010009c000000520000213d000c00240040003d0000000d0100002900000005011002100000000c01100029000000000031004b000000520000213d000000000100041a000003ed011001970000000003000411000000000013004b000004f80000c13d0000000d0000006b0000045e0000613d001000000000001d0000032b0000013d00000010030000290000000103300039001000000003001d0000000d0030006c0000045e0000813d000000100100002900000005011002100000000c011000290000000201100367000000000301043b000004150020009c000000570000213d0000004001200039000000400010043f0000002001200039000e00000003001d000000000031043500000000030004100000000000320435000000400400043d000004160300004100000000003404350000000002020433000003ed02200197000000040340003900000000002304350000000001010433000f00000004001d000000240240003900000000001204350000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000201043b0000000001000414000003ed02200197000000040020008c0000035e0000c13d0000000103000031000000200030008c000000200400003900000000040340190000000f0a000029000003880000013d0000000f03000029000003e80030009c000003e8030080410000004003300210000003e80010009c000003e801008041000000c001100210000000000131019f00000419011001c70f9b0f960000040f0000000f0a00002900000000030100190000006003300270000003e803300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000003780000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000003740000c13d0000001f07400190000003850000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0000000100200190000005d10000613d0000001f01400039000000600110018f0000000002a10019000000000012004b00000000010000390000000101004039000003ec0020009c0000000e04000029000000570000213d0000000100100190000000570000c13d000000400020043f000000200030008c000000520000413d00000000010a0433000000000001004b0000000003000039000000010300c039000000000031004b000000520000c13d000000000001004b000003260000c13d000000000040043f0000000a01000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000e030000290000000100200190000000520000613d000000000101043b000000000001041b000000400100043d0000000000310435000003e80010009c000003e80100804100000040011002100000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041b011001c70000800d0200003900000001030000390000041c040000410f9b0f910000040f0000000100200190000000520000613d000000400200043d000003260000013d0000000001000416000000000001004b000000520000c13d000000800000043f000000a00000043f000000c00000043f000000e00000043f0000018001000039000000400010043f0000000001000412001800000001001d001700400000003d000080050100003900000044030000390000000004000415000000180440008a000000050440021000000417020000410f9b0f730000040f000003ec01100197000001000010043f0000000001000412001600000001001d001500600000003d0000000004000415000000160440008a00000005044002100000800501000039000004170200004100000044030000390f9b0f730000040f000003ec01100197000001200010043f0000000001000412001400000001001d001300800000003d0000000004000415000000140440008a00000005044002100000800501000039000004170200004100000044030000390f9b0f730000040f000003ed01100197000001400010043f0000000001000412001200000001001d001100a00000003d0000000004000415000000120440008a00000005044002100000800501000039000004170200004100000044030000390f9b0f730000040f000003ed01100197000001600010043f000001000100003900000180020000390f9b0e7e0000040f0000046b0100004100000f9c0001042e0000000001000416000000000001004b000000520000c13d0000000101000039000000000201041a000003ed032001970000000006000411000000000036004b000005020000c13d000000000300041a000003ee04300197000000000464019f000000000040041b000003ee02200197000000000021041b0000000001000414000003ed05300197000003e80010009c000003e801008041000000c0011002100000041d011001c70000800d0200003900000003030000390000044f040000410f9b0f910000040f0000000100200190000000520000613d0000045e0000013d0000000001000416000000000001004b000000520000c13d0000000101000039000000800010043f000000a00000043f000000c00000043f000004460100004100000f9c0001042e0000000001000416000000000001004b000000520000c13d000000000100041a000003ed01100197000000800010043f000004490100004100000f9c0001042e000000240030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000401100370000000000101043b000003ed0010009c000000520000213d000000000200041a000003ed022001970000000005000411000000000025004b000004f80000c13d000003ed06100197000000000056004b0000053d0000c13d000003f401000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000041f01000041000000c40010043f000004200100004100000f9d000104300000000001000416000000000001004b000000520000c13d000000000100041a000003ed021001970000000001000411000000000021004b000004f80000c13d0000000902000039000000000302041a0000044a03300197000000000032041b000000800010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000044c011001c70000800d02000039000000010300003900000452040000410f9b0f910000040f0000000100200190000000520000613d000000000100001900000f9c0001042e0000000001000416000000000001004b000000520000c13d0000000702000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b000004760000613d000000a004000039000004510200004100000000030000190000000005040019000000000402041a000003ed04400197000000000445043600000001022000390000000103300039000000000013004b0000046d0000413d000000600250008a00000080010000390f9b0e8f0000040f000000400200043d001000000002001d0000002001000039000000000212043600000080010000390f9b0eb30000040f00000010020000290000000001210049000003e80010009c000003e8010080410000006001100210000003e80020009c000003e8020080410000004002200210000000000121019f00000f9c0001042e000000640030008c000000520000413d0000000002000416000000000002004b000000520000c13d0000000402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000804043b000003ec0080009c000000520000213d0000002406200039000000050a80021000000000076a0019000000000037004b000000520000213d0000002402100370000000000202043b000003ec0020009c000000520000213d0000002304200039000000000034004b000000520000813d0000000404200039000000000441034f000000000504043b000003ec0050009c000000520000213d000000240220003900000005095002100000000004290019000000000034004b000000520000213d000000090b000039000000000b0b041a0000042400b00198000005cd0000c13d000000440b100370000000000b0b043b00090000000b001d0000003f0aa00039000004290aa00197000003eb00a0009c000000570000213d000000800aa0003900070000000a001d0000004000a0043f000000800080043f000000000008004b000004ca0000613d0000008008000039000000000a61034f000000000a0a043b00000020088000390000000000a804350000002006600039000000000076004b000004c10000413d000000400600043d000700000006001d0000003f0690003900000429066001970000000706600029000000070060006c00000000070000390000000107004039000003ec0060009c000000570000213d0000000100700190000000570000c13d000000400060043f00000007060000290000000006560436000600000006001d000000000005004b000500000000001d000004e60000613d0000000705000029000000000621034f000000000606043b000000200550003900000000006504350000002002200039000000000042004b000004dc0000413d00000007020000290000000002020433000500000002001d000000800200043d000b00000002001d000000000002004b000005dd0000c13d000000400100043d0000045602000041000005370000013d0000000001000416000000000001004b000000520000c13d0000000901000039000000000101041a00000424001001980000000001000039000000010100c039000000800010043f000004490100004100000f9c0001042e000003f401000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000045701000041000000c40010043f000004200100004100000f9d00010430000003f401000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000044e01000041000000c40010043f000004200100004100000f9d00010430000d00000002001d000e00000003001d000000000200041a000003ee02200197000000000112019f000000000010041b000000800000043f000003ef0100004100000000001004430000000001000414000003e80010009c000003e801008041000000c001100210000003f0011001c70000800b020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000000a00010043f0000000902000039000000000302041a000003f10330019700000001033001bf000000000032041b0000000f040000290000000002040433000003ed00200198000005350000613d0000000e020000290000000002020433000003ec02200198000005350000613d00000010030000290000000003030433000003ec00300198000005350000613d0000000d030000290000000003030433000003ed00300198000005aa0000c13d000000400100043d00000468020000410000000000210435000003e80010009c000003e801008041000000400110021000000427011001c700000f9d000104300000000101000039000000000201041a000003ee02200197000000000262019f000000000021041b0000000001000414000003e80010009c000003e801008041000000c0011002100000041d011001c70000800d0200003900000003030000390000041e040000410f9b0f910000040f0000000100200190000000520000613d0000045e0000013d000003e80010009c000003e801008041000000c00110021000000423011001c70f9b0f960000040f00000000030100190000006003300270000003e803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005630000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000055f0000c13d000000000006004b000005700000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000058c0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000520000413d000000800200043d000000000002004b0000000003000039000000010300c039000000000032004b000000520000c13d000000000002004b0000000002000019000005870000c13d0000000902000039000000000202041a000004240020019800000000020000390000000102006039000000010220018f0000000000210435000000400110021000000414011001c700000f9c0001042e0000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005930000c13d000000000005004b000005a40000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003e80020009c000003e8020080410000004002200210000000000112019f00000f9d00010430000000c00020043f00000010030000290000000003030433000003ec03300197000000e00030043f0000000004040433000003ed04400197000001000040043f0000000d050000290000000005050433000003ed05500197000001200050043f000000800600043d0000014000000443000001600060044300000020060000390000018000600443000001a0001004430000004001000039000001c000100443000001e000200443000000600100003900000200001004430000022000300443000000800100003900000240001004430000026000400443000000a0010000390000028000100443000002a000500443000001000060044300000006010000390000012000100443000003f20100004100000f9c0001042e0000045301000041000000800010043f000004540100004100000f9d000104300000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005d80000c13d000005970000013d0000000b02000029000001010020008c000005ea0000213d0000000502000029000001020020008c000005ea0000813d0000000b040000290000000502400029000400000002001d000000010220008a000800000002001d000001000020008c000005ed0000a13d000000400100043d0000045502000041000005370000013d000000080000006b000007800000c13d000000a002000039000000400100043d000004150010009c000000570000213d00000000030204330000004002100039000000400020043f0000002002100039000f00000003001d0000000000320435000000000300041000000000003104350000041603000041000000400400043d00000000003404350000000001010433000003ed01100197000000040340003900000000001304350000000001020433001000000004001d000000240240003900000000001204350000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000201043b0000000001000414000003ed02200197000000040020008c000008410000c13d0000000103000031000000200030008c000000200400003900000000040340190000086b0000013d000003e80010009c000003e801008041000000c00110021000000423011001c70f9b0f960000040f00000000030100190000006003300270000003e803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000006340000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000006300000c13d000000000006004b000006410000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000082f0000613d0000001f01400039000000600210018f00000080012001bf000600000001001d000000400010043f000000200030008c000000520000413d000000800100043d000000000001004b0000000003000039000000010300c039000000000031004b000000520000c13d000000000001004b0000083b0000c13d0000001001000029000000200010008c000000520000413d0000000f01000029001000200010003d00000002030003670000001001300360000000000101043b000003ec0010009c000000520000213d0000000d041000290000000e01400069000004280010009c000000520000213d000000800010008c000000520000413d000000000643034f000000e005200039000000400050043f000000000606043b000003ec0060009c000000520000213d00000000064600190000000e07600069000004280070009c000000520000213d000000400070008c000000520000413d000000000863034f0000012007200039000000400070043f000000000808043b000003ec0080009c000000520000213d00000000086800190000001f098000390000000e0090006c000000520000813d000000000983034f000000000a09043b000003ec00a0009c000000570000213d0000000509a002100000003f0990003900000429099001970000000009790019000003ec0090009c000000570000213d000000400090043f0000000000a7043500000020088000390000000609a0021000000000098900190000000e0090006c000000520000213d00000000000a004b00000adc0000c13d00000000007504350000002007600039000000000773034f000000000707043b000003ec0070009c000000520000213d00000000076700190000001f067000390000000e09000029000000000096004b00000000080000190000042b080080410000042b066001970000042b09900197000000000a96013f000000000096004b00000000060000190000042b060040410000042b00a0009c000000000608c019000000000006004b000000520000c13d000000000673034f000000000806043b000003ec0080009c000000570000213d00000005068002100000003f066000390000042909600197000000400600043d0000000009960019000000000069004b000000000a000039000000010a004039000003ec0090009c000000570000213d0000000100a00190000000570000c13d000000400090043f00000000008604350000002007700039000000060880021000000000087800190000000e0080006c000000520000213d000000000087004b000006d60000813d00000000090600190000000e0a7000690000042800a0009c000000520000213d0000004000a0008c000000520000413d000000400a00043d0000041500a0009c000000570000213d000000400ba000390000004000b0043f000000000b73034f000000000b0b043b000003ec00b0009c000000520000213d000000000bba0436000000200c700039000000000cc3034f000000000c0c043b0000042a00c0009c000000520000213d00000020099000390000000000cb04350000000000a904350000004007700039000000000087004b000006bc0000413d00000100072001bf000000000067043500000006060000290000000000560435000000200110008a000004280010009c000000520000213d000000400010008c000000520000413d000000400100043d000004150010009c000000570000213d0000004005100039000000400050043f0000002004400039000000000543034f000000000505043b000003ec0050009c000000520000213d00000000055104360000002004400039000000000643034f000000000606043b000003ec0060009c000000520000213d0000000000650435000000a005200039000400000005001d00000000001504350000002004400039000000000343034f000000000303043b000000c002200039000500000002001d000000000032043500000006020000290000000002020433000300000002001d0000000042020434000e00000004001d0000000002020433000000000002004b000007060000c13d0000000e0200002900000000020204330000000002020433000000000002004b00000bcb0000613d000000070200002900000425022001970000000904000039000000000404041a00000040054002700000042505500197000000000025004b00000bc60000813d00000040012002100000042d02400197000000000112019f0000000902000039000000000012041b0000000801000039000000000101041a0000042e020000410000000000200443000003ed01100197000200000001001d00000004001004430000000001000414000003e80010009c000003e801008041000000c0011002100000042f011001c700008002020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000000000001004b000000520000613d000000400500043d0000043001000041000000000015043500000004015000390000002002000039000000000021043500000003010000290000000003010433000000240150003900000040020000390000000000210435000000640250003900000000040304330000000000420435000700000005001d0000008402500039000000000004004b000007450000613d0000000005000019000000200330003900000000060304330000000076060434000003ed06600197000000000662043600000000070704330000042a07700197000000000076043500000040022000390000000105500039000000000045004b000007390000413d00000000011200490000000e03000029000000000303043300000007040000290000004404400039000000000014043500000000040304330000000001420436000000000004004b0000075c0000613d0000000002000019000000200330003900000000050304330000000065050434000003ec05500197000000000551043600000000060604330000042a06600197000000000065043500000040011000390000000102200039000000000042004b000007500000413d00000000020004140000000203000029000000040030008c000007740000613d00000007030000290000000001310049000003e80010009c000003e8010080410000006001100210000003e80030009c000003e8030080410000004003300210000000000131019f000003e80020009c000003e802008041000000c002200210000000000121019f00000002020000290f9b0f910000040f00000000030100190000006003300270000103e80030019d000000010020019000000be00000613d0000000701000029000003ec0010009c000000570000213d0000000701000029000000400010043f00000005010000290000000003010433000000000003004b00000c8e0000613d0000000401000029000000000101043300000bcb0000013d000000080200002900000005022002100000003f042000390000042904400197000000400500043d0000000004450019000d00000005001d000000000054004b00000000050000390000000105004039000003ec0040009c000000570000213d0000000100500190000000570000c13d000000400040043f0000000d0400002900000008050000290000000004540436000c00000004001d0000001f0420018f000000000002004b0000079d0000613d000000000131034f0000000c030000290000000002230019000000001501043c0000000003530436000000000023004b000007990000c13d000000000004004b0000000009000019000a00000000001d00000000080000190000000007000019000000010190020f000000ff0090008c0000000001002019000000090210017f000000000012004b000007b10000c13d0000000b0080006c000007ba0000813d000000800100043d000000000081004b00000e510000a13d00000005018002100000000108800039000000a002000039000007c10000013d000000070100002900000000010104330000000a0010006c00000e510000a13d0000000a020000290000000501200210000a00010020003d0000000602000029000007c10000013d0000000d010000290000000001010433000000000071004b00000e510000a13d000000050270021000000001077000390000000c01000029000000000112001900000000010104330000000b0080006c000007cc0000813d000000800200043d000000000082004b00000e510000a13d00000005028002100000000108800039000000a003000039000007d30000013d0000000d020000290000000002020433000000000072004b00000e510000a13d000000050370021000000001077000390000000c02000029000000000097004b000005ea0000213d00000000022300190000000004020433000000400200043d00000020032000390000000105000039000000000053043500000060052000390000004006200039000000000041004b001000000007001d000f00000008001d000e00000009001d000007f40000813d0000000000160435000000000045043500000060010000390000000000120435000003eb0020009c000000570000213d0000008001200039000000400010043f000003e80030009c000003e80300804100000040013002100000000002020433000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000008050000013d0000000000460435000000000015043500000060010000390000000000120435000003eb0020009c000000570000213d0000008001200039000000400010043f000003e80030009c000003e80300804100000040013002100000000002020433000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d00000010070000290000000f080000290000000d0200002900000000020204330000000e09000029000000000092004b00000e510000a13d00000005029002100000000c02200029000000000101043b00000000001204350000000109900039000000080090006c000007a20000413d0000000401000029000000020110008a000000000017004b000005ea0000c13d0000000b0080006c000005ea0000c13d0000000a02000029000000050020006c000005ea0000c13d0000000d010000290000000001010433000000000071004b00000e510000a13d00000005017002100000000c02100029000000400100043d000004150010009c000000570000213d000005f30000013d0000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008360000c13d000005970000013d000004260100004100000006020000290000000000120435000000400120021000000427011001c700000f9d000104300000001003000029000003e80030009c000003e8030080410000004003300210000003e80010009c000003e801008041000000c001100210000000000131019f00000419011001c70f9b0f960000040f00000000030100190000006003300270000003e803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000010057000290000085b0000613d000000000801034f0000001009000029000000008a08043c0000000009a90436000000000059004b000008570000c13d000000000006004b000008680000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000008930000613d0000001f01400039000000600110018f0000001002100029000000000012004b00000000010000390000000101004039000003ec0020009c000000570000213d0000000100100190000000570000c13d000000400020043f000000200030008c000000520000413d00000010010000290000000001010433000000000001004b0000000003000039000000010300c039000000000031004b000000520000c13d000000000001004b0000000001000019000001370000613d0000000f01000029000000000010043f0000000a01000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000400200043d000000000101043b000000000101041a000001370000013d0000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000089a0000c13d000005970000013d0000000e0000006b000008ab0000c13d000000400100043d0000045a02000041000000000021043500000004021000390000000000020435000003e80010009c000003e80100804100000040011002100000045b011001c700000f9d0001043000000010020000290000000002020433000000000021004b00000ac90000c13d0000000e0200002900000003022000c9000000000021004b00000acf0000a13d000000000100041a000003ed011001970000000002000411000000000012004b00000ad50000c13d0000000d010000290000000001010433000004280010009c000000520000213d000000200010008c000000520000413d000000400100043d000a00000001001d0000045c0010009c000000570000213d0000000a010000290000002001100039000000400010043f0000000c010000290000000002010433000003ed0020009c000000520000213d000003ed012001980000000a030000290000000000230435000005350000613d0000000802000039000000000302041a000003ee03300197000000000113019f000000000012041b0000000901000039000000000201041a0000042d02200197000000000021041b000000400100043d000600000001001d000003eb0010009c000000570000213d00000006010000290000008001100039000000400010043f0000041701000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000003ec0110019700000006020000290000000001120436000500000001001d0000041701000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000003ec011001970000000502000029000000000012043500000417010000410000000000100443000000000100041200000004001004430000008001000039000900000001001d00000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d00000006020000290000004002200039000000000101043b000003ed01100197000400000002001d00000000001204350000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000003ed011001970000000603000029000000600230003900000000001204350000000001030433000003ec01100197000000400300043d000000000113043600000005040000290000000004040433000003ec04400197000000000041043500000004010000290000000001010433000003ed01100197000000400430003900000000001404350000000001020433000003ed01100197000000600230003900000000001204350000000a010000290000000001010433000003ed0110019700000080023000390000000000120435000003e80030009c000003e80300804100000040013002100000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000045d011001c70000800d0200003900000001030000390000045e040000410f9b0f910000040f0000000100200190000000520000613d0000000601000039000000000101041a000600000001001d000000000001004b00000af70000c13d000000800100043d000100000001001d000000000001004b000000000100001900000b2a0000c13d0000000603000039000000000203041a000000000013041b000000000021004b0000096a0000813d0000045f0220009a0000045f0310009a000000000023004b0000096a0000813d000000000003041b0000000103300039000000000023004b000009660000413d0000000602000039000000000020043f000000000001004b000009790000613d000000000200001900000009030000290000002003300039000900000003001d0000000003030433000003ed033001970000045f0420009a000000000034041b0000000102200039000000000012004b0000096f0000413d00000010010000290000000001010433000003ec0010009c000000570000213d0000000702000039000000000302041a000000000012041b000000000031004b0000098a0000813d0000043b0330009a0000043b0410009a000000000034004b0000098a0000813d000000000004041b0000000104400039000000000034004b000009860000413d000000000020043f000000000001004b000009970000613d0000000002000019000000100300002900000020033000390000000004030433000003ed044001970000043b0520009a000000000045041b0000000102200039000000000012004b0000098f0000413d0000000301000039000000000201041a0000046002200197000000010300002900000008033002100000ff000330018f000000000223019f0000000e03000029000f00ff003001930000000f022001af000000000021041b0000000401000039000000000101041a000a00000001001d000003e801100197000900000001001d000003e80010009c00000e570000613d000000400100043d000e00000001001d000003ef0100004100000000001004430000000001000414000003e80010009c000003e801008041000000c001100210000003f0011001c70000800b020000390f9b0f960000040f000000010020019000000cf50000613d000000000201043b0000000e04000029000000800140003900000120030000390000000000310435000000400140003900000000030004100000000000310435000000090100002900000001031000390000006001400039000900000003001d0000000000310435000000200140003900000000002104350000014002400039000000800300043d00000000003204350000016002400039000000000003004b000009d40000613d0000008004000039000000000500001900000020044000390000000006040433000003ed0660019700000000026204360000000105500039000000000035004b000009cd0000413d0000000e040000290000000003420049000000200330008a000000a0044000390000000000340435000000100300002900000000030304330000000002320436000000000003004b000009e70000613d0000000004000019000000100500002900000020055000390000000006050433000003ed0660019700000000026204360000000104400039000000000034004b000009e00000413d0000000e05000029000000c0035000390000000f0400002900000000004304350000000003520049000000200330008a000000e00450003900000000003404350000000d0300002900000000030304330000000002320436000000000003004b000009fc0000613d000000000400001900000000052400190000000c06400029000000000606043300000000006504350000002004400039000000000034004b000009f50000413d000000000423001900000000000404350000001f033000390000046c0330019700000000022300190000000e050000290000000003520049000000200330008a000001200450003900000000003404350000000b03000029000003ec043001970000010003500039000b00000004001d0000000000430435000000080300002900000000030304330000000004320436000000000003004b00000a180000613d000000000500001900000000064500190000000707500029000000000707043300000000007604350000002005500039000000000035004b00000a110000413d000000000443001900000000000404350000001f033000390000046c033001970000000e050000290000000003530049000000000223001900000000002504350000003f022000390000046c032001970000000002530019000000000032004b00000000030000390000000103004039000003ec0020009c000000570000213d0000000100300190000000570000c13d000000400020043f000003e80010009c000003e80100804100000040011002100000000e020000290000000002020433000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000004630110019700000464021001c70000000201000039000e00000002001d000000000021041b000004650100004100000000001004430000000001000414000003e80010009c000003e801008041000000c001100210000003f0011001c70000800b020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000000200110021000000466011001970000000a030000290000043202300197000000000112019f0000000904000029000000000141019f0000000402000039000000000012041b000000400100043d00000060021000390000012005000039000000000052043500000020021000390000000e05000029000000000052043500000040021000390000000000420435000000000234019f0000002002200270000003e80220019700000000002104350000012002100039000000800300043d00000000003204350000014002100039000000000003004b00000a750000613d0000008004000039000000000500001900000020044000390000000006040433000003ed0660019700000000026204360000000105500039000000000035004b00000a6e0000413d000000000312004900000080041000390000000000340435000000100300002900000000030304330000000002320436000000000003004b00000a870000613d000000000400001900000010050000290000002005500039001000000005001d0000000005050433000003ed0550019700000000025204360000000104400039000000000034004b00000a7e0000413d0000000003120049000000c0041000390000000000340435000000a0031000390000000f0400002900000000004304350000000d0300002900000000030304330000000002320436000000000003004b00000a9a0000613d000000000400001900000000052400190000000c06400029000000000606043300000000006504350000002004400039000000000034004b00000a930000413d00000000042300190000000000040435000000e0041000390000000b0500002900000000005404350000001f033000390000046c033001970000000002230019000000000312004900000100041000390000000000340435000000080300002900000000030304330000000002320436000000000003004b00000ab20000613d000000000400001900000000052400190000000706400029000000000606043300000000006504350000002004400039000000000034004b00000aab0000413d000000000423001900000000000404350000001f033000390000046c0330019700000000021200490000000002320019000003e80020009c000003e8020080410000006002200210000003e80010009c000003e8010080410000004001100210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c70000800d02000039000000010300003900000467040000410000045b0000013d000000400100043d0000045a020000410000000000210435000000040210003900000004030000390000025b0000013d000000400100043d0000045a020000410000000000210435000000040210003900000002030000390000025b0000013d000000400100043d00000044021000390000045703000041000000000032043500000024021000390000001603000039000000c90000013d000001400a2000390000000e0b8000690000042800b0009c000000520000213d0000004000b0008c000000520000413d000000400b00043d0000041500b0009c000000570000213d000000400cb000390000004000c0043f000000000c83034f000000000c0c043b000003ed00c0009c000000520000213d000000000ccb0436000000200d800039000000000dd3034f000000000d0d043b0000042a00d0009c000000520000213d0000000000dc0435000000000aba04360000004008800039000000000098004b00000add0000413d0000068c0000013d000a00000000001d0000000601000039000000000101041a0000000a0010006b00000e510000813d0000000a010000290000045f0110009a000000000101041a000003ed01100197000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000000000001041b0000000701000039000000000101041a0000000a0010006c00000e510000a13d0000000a010000290000043b0110009a000000000101041a000003ed01100197000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000000000001041b0000000a020000290000000102200039000a00000002001d000000060020006c00000af80000413d000009580000013d000a00000000001d000000800100043d0000000a0010006c00000e510000a13d0000000a010000290000000501100210000400000001001d000000a0011000390000000001010433000003ed01100197000600000001001d000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000000000101041a0000000801100270000000ff0110018f000000020010008c00000d380000213d000000000001004b00000bed0000c13d000000060000006b00000bf30000613d000000400100043d000500000001001d000004150010009c000000570000213d00000005020000290000004001200039000000400010043f00000020032000390000000101000039000300000003001d00000000001304350000000a01000029000000ff0110018f000200000001001d00000000001204350000000601000029000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d00000003020000290000000002020433000000020020008c00000d380000213d00000008022002100000ff000220018f00000005030000290000000003030433000000ff0330018f000000000223019f000000000101043b000000000301041a0000046003300197000000000232019f000000000021041b000000100100002900000000010104330000000a0010006c00000e510000a13d00000004020000290000000f012000290000000001010433000003ed01100197000600000001001d000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000000000101041a0000000801100270000000ff0110018f000000020010008c00000d380000213d000000000001004b00000bed0000c13d000000060000006b00000bf30000613d000000400100043d000500000001001d000004150010009c000000570000213d00000005020000290000004001200039000000400010043f000000020100002900000000021204360000000201000039000400000002001d00000000001204350000000601000029000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d00000004020000290000000002020433000000020020008c00000d380000213d00000008022002100000ff000220018f00000005030000290000000003030433000000ff0330018f000000000223019f000000000101043b000000000301041a0000046003300197000000000232019f000000000021041b0000000a020000290000000102200039000a00000002001d000000010020006c00000b2b0000413d000000800100043d000003ec0010009c000000570000213d0000095d0000013d000000000003004b00000bcb0000c13d000000400100043d0000042c02000041000005370000013d0000000002010433000003ec022001970000000904000039000000000404041a000e00000004001d000003ec04400197000000000024004b00000bd80000c13d00000020041000390000000004040433000003ec04400197000000000042004b00000bf60000a13d000000400300043d001000000003001d0000044502000041000000000023043500000004023000390f9b0f560000040f000000100100002900000e670000013d000003e8033001970000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000be80000c13d000005970000013d000000400100043d0000045a020000410000000000210435000000040210003900000003030000390000025b0000013d000000400100043d0000046202000041000005370000013d000000000003004b00000bfb0000c13d000000400100043d0000044402000041000005370000013d000000000030043f0000000a01000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000000000101041a000000000001004b00000cf60000c13d0000000401000029000000000101043300000020011000390000000001010433000003ec02100197000003ec0020009c00000e570000613d0000000e0200002900000432022001970000000101100039000003ec01100197000000000121019f0000000902000039000000000012041b00000005010000290000000001010433000000000010043f0000000a01000039000000200010043f000004330100004100000000001004430000000001000414000003e80010009c000003e801008041000000c001100210000003f0011001c70000800b020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000e00000001001d0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b0000000e02000029000000000021041b0000002002000039000000400100043d00000000022104360000000603000029000000000303043300000080040000390000000000420435000000a002100039000000400400003900000000350304340000000000420435000000e004100039000000000605043300000000006404350000010004100039000000000006004b00000c550000613d0000000007000019000000200550003900000000080504330000000098080434000003ed08800197000000000884043600000000090904330000042a09900197000000000098043500000040044000390000000107700039000000000067004b00000c490000413d00000000022400490000000003030433000000c005100039000000000025043500000000050304330000000002540436000000000005004b00000c6a0000613d0000000004000019000000200330003900000000060304330000000076060434000003ec06600197000000000662043600000000070704330000042a07700197000000000076043500000040022000390000000104400039000000000054004b00000c5e0000413d000000040300002900000000030304330000000043030434000003ec03300197000000400510003900000000003504350000000003040433000003ec033001970000006004100039000000000034043500000005030000290000000003030433000000800410003900000000003404350000000002120049000003e80020009c000003e8020080410000006002200210000003e80010009c000003e8010080410000004001100210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c70000800d02000039000000010300003900000434040000410f9b0f910000040f0000000100200190000000520000613d000000400100043d000700000001001d0000000701000029000004350010009c000000570000213d00000007040000290000006001400039000000400010043f0000000201000039000000000101041a00000000051404360000000302000039000000000202041a000000ff0320018f000600000005001d000000000035043500000040034000390000000802200270000000ff0220018f000700000003001d000000000023043500000004020000390000000202200367000000000202043b000000000021004b00000cf90000c13d0000041701000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d000000000101043b000e00000001001d000003ef0100004100000000001004430000000001000414000003e80010009c000003e801008041000000c001100210000003f0011001c70000800b020000390f9b0f960000040f000000010020019000000cf50000613d000000400200043d000000000101043b0000000e0010006b00000d050000c13d00000002010003670000000403100370000000000303043b00000000033204360000002401100370000000000101043b0000000801100270000003e8011001970000000000130435000003e80020009c000003e80200804100000040012002100000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041a011001c70000800d02000039000000010300003900000438040000410f9b0f910000040f0000000100200190000000520000613d000004170100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000cf50000613d00000006020000290000000002020433000000ff0220018f000000000101043b000000000001004b00000d110000c13d000000ff0020008c00000d180000c13d00000e570000013d000000000001042f000000400100043d0000043102000041000005370000013d000000400300043d000000240430003900000000002404350000043602000041000000000023043500000004023000390000000000120435000003e80030009c000003e803008041000000400130021000000419011001c700000f9d00010430000000240320003900000000001304350000043701000041000000000012043500000004012000390000000e030000290000000000310435000003e80020009c000003e802008041000000400120021000000419011001c700000f9d0001043000000007010000290000000001010433000000ff0110018f0000000001120019000000ff0010008c00000e570000213d000000010210027000000001012000390000000c0010006b00000d3e0000c13d00000009020000290000000c0020006b00000d410000c13d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000400200043d000004150020009c000000570000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f00000000021204360000000803300270000000ff0330018f000000020030008c00000d440000a13d0000046101000041000000000010043f0000002101000039000000040010043f0000045b0100004100000f9d00010430000000400100043d0000043902000041000005370000013d000000400100043d0000043a02000041000005370000013d000000000032043500000e5d0000c13d0000000702000039000000000302041a000000000013004b00000e510000a13d000000000020043f0000043b0110009a000000000101041a000003ed011001970000000002000411000000000012004b00000e5d0000c13d00000002030003670000000f01300360000000000101043b0000046d0010009c00000e570000213d00000144041000390000000a024000290000000c0000006b00000d5c0000613d000000000042004b00000e570000413d0000000a0020002a00000e570000413d0000000a052000290000000002000031000000000052004b00000e600000c13d000003ec0010009c000000570000213d0000001f021000390000046c022001970000003f022000390000046c04200197000000400200043d0000000004420019000000000024004b00000000070000390000000107004039000003ec0040009c000000570000213d0000000100700190000000570000c13d000000400040043f00000000041204360000000d07100029000000000057004b000000520000213d00000010053003600000046c061001980000001f0710018f000000000364001900000d810000613d000000000805034f0000000009040019000000008a08043c0000000009a90436000000000039004b00000d7d0000c13d000000000007004b00000d8e0000613d000000000565034f0000000306700210000000000703043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000053043500000000011400190000000000010435000003e80040009c000003e80400804100000040014002100000000002020433000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000201043b000000400300043d00000020013000390000000000210435001000a00030003d000f00000003001d000000400230003900000004030000390000000203300367000000003403043c0000000002420436000000100020006c00000dab0000c13d00000080020000390000000f0300002900000000002304350000043e0030009c000000570000213d0000001002000029000000400020043f000003e80010009c000003e80100804100000040011002100000000f020000290000000002020433000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000000101043b000e00000001001d0000000f010000290000043f0010009c000000570000213d0000000f010000290000048001100039000000400010043f0000001003000029000003e00130003900000000020000310000000202200367000000002402043c0000000003430436000000000013004b00000dd50000c13d0000000c0000006b0000045e0000613d000f00000000001d0000000f010000290000001f0010008c00000e510000213d0000000f0100002900000003011002100000000202000367000000c403200370000000000303043b00000000011301cf000004400010009c00000e570000213d0000000f0300002900000005033002100000000b043000290000000803300029000000000332034f000000000242034f000000000202043b000000000303043b000000400400043d0000006005400039000000000035043500000040034000390000000000230435000000f8011002700000001b01100039000000200240003900000000001204350000000e010000290000000000140435000000000000043f000003e80040009c000003e80400804100000040014002100000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f00000441011001c700000001020000390f9b0f960000040f00000000030100190000006003300270000003e803300197000000200030008c00000020050000390000000005034019000000200450019000000e140000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000e100000c13d0000001f0550019000000e210000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f000000010020019000000e6c0000613d000000000100043d000003ed01100197000000000010043f0000000501000039000000200010043f0000000001000414000003e80010009c000003e801008041000000c0011002100000041a011001c700008010020000390f9b0f960000040f0000000100200190000000520000613d000000400200043d000004150020009c000000570000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f00000000021204360000000803300270000000ff0330018f000000020030008c00000d380000213d0000000000320435000000010030008c00000e780000c13d0000001e0010008c00000e510000213d000000050110021000000010011000290000000002010433000000000002004b00000e7b0000c13d000000010200003900000000002104350000000f020000290000000102200039000f00000002001d0000000c0020006c00000ddc0000413d0000045e0000013d0000046101000041000000000010043f0000003201000039000000040010043f0000045b0100004100000f9d000104300000046101000041000000000010043f0000001101000039000000040010043f0000045b0100004100000f9d00010430000000400100043d0000043c02000041000005370000013d000000400100043d000000240310003900000000002304350000043d02000041000000000021043500000004021000390000000000520435000003e80010009c000003e801008041000000400110021000000419011001c700000f9d000104300000001f0530018f000003ea06300198000000400200043d0000000004620019000005970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e730000c13d000005970000013d000000400100043d0000044202000041000005370000013d000000400100043d0000044302000041000005370000013d0000000043010434000003ec0330019700000000033204360000000004040433000003ec04400197000000000043043500000040031000390000000003030433000003ed0330019700000040042000390000000000340435000000600220003900000060011000390000000001010433000003ed011001970000000000120435000000000001042d0000001f022000390000046c022001970000000001120019000000000021004b00000000020000390000000102004039000003ec0010009c00000e9b0000213d000000010020019000000e9b0000c13d000000400010043f000000000001042d0000046101000041000000000010043f0000004101000039000000040010043f0000045b0100004100000f9d0001043000000000430104340000000001320436000000000003004b00000ead0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b00000ea60000413d000000000231001900000000000204350000001f023000390000046c022001970000000001210019000000000001042d000000000301001900000000040304330000000001420436000000000004004b00000ec00000613d000000000200001900000020033000390000000005030433000003ed0550019700000000015104360000000102200039000000000042004b00000eb90000413d000000000001042d0001000000000002000000400200043d0000046e0020009c00000f2f0000813d0000004003200039000000400030043f00000020032000390000000000130435000000000100041000000000001204350000041601000041000000400400043d00000000001404350000000001020433000003ed01100197000000040240003900000000001204350000000001030433000100000004001d000000240240003900000000001204350000041701000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000003e80010009c000003e801008041000000c00110021000000418011001c700008005020000390f9b0f960000040f000000010020019000000f370000613d000000000201043b0000000001000414000003ed02200197000000040020008c00000ef00000c13d0000000103000031000000200030008c00000020040000390000000004034019000000010b00002900000f1b0000013d0000000103000029000003e80030009c000003e8030080410000004003300210000003e80010009c000003e801008041000000c001100210000000000131019f00000419011001c70f9b0f960000040f000000010b00002900000000030100190000006003300270000003e803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000f0b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000f070000c13d000000000006004b00000f180000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000000f380000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000003ec0010009c00000f2f0000213d000000010020019000000f2f0000c13d000000400010043f0000001f0030008c00000f350000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b00000f350000c13d000000000001042d0000046101000041000000000010043f0000004101000039000000040010043f0000045b0100004100000f9d00010430000000000100001900000f9d00010430000000000001042f0000001f0530018f000003ea06300198000000400200043d000000000462001900000f430000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f3f0000c13d000000000005004b00000f500000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003e80020009c000003e8020080410000004002200210000000000112019f00000f9d000104300000000031010434000003ec0110019700000000011204360000000002030433000003ec022001970000000000210435000000000001042d000000000001042f000003e80010009c000003e8010080410000004001100210000003e80020009c000003e8020080410000006002200210000000000112019f0000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000041d011001c700008010020000390f9b0f960000040f000000010020019000000f710000613d000000000101043b000000000001042d000000000100001900000f9d0001043000000000050100190000000000200443000000050030008c00000f810000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b00000f790000413d000003e80030009c000003e80300804100000060013002100000000002000414000003e80020009c000003e802008041000000c002200210000000000112019f0000046f011001c700000000020500190f9b0f960000040f000000010020019000000f900000613d000000000101043b000000000001042d000000000001042f00000f94002104210000000102000039000000000001042d0000000002000019000000000001042d00000f99002104230000000102000039000000000001042d0000000002000019000000000001042d00000f9b0000043200000f9c0001042e00000f9d000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffff00ffffffffff000000000000000000000002000000000000000000000000000001c000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000079ba509600000000000000000000000000000000000000000000000000000000afcb95d600000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f47a869000000000000000000000000000000000000000000000000000000000ff888fb100000000000000000000000000000000000000000000000000000000afcb95d700000000000000000000000000000000000000000000000000000000b1dc65a400000000000000000000000000000000000000000000000000000000e89d039f000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000a7206cd600000000000000000000000000000000000000000000000000000000ad7a22f80000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000081ff7048000000000000000000000000000000000000000000000000000000008456cb590000000000000000000000000000000000000000000000000000000032048874000000000000000000000000000000000000000000000000000000005c975aba000000000000000000000000000000000000000000000000000000005c975abb00000000000000000000000000000000000000000000000000000000666cab8d000000000000000000000000000000000000000000000000000000007437ff9f0000000000000000000000000000000000000000000000000000000032048875000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000004120fccd00000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000001ef381740000000000000000000000000000000000000000000000000000000029b980e40000000000000000000000000000000000000000000000000000000006285c690000000000000000000000000000000000000000000000000000000010c374ed0000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf4d61677100000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004400000000000000000000000002000000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000020000000000000000000000000202f1139a3e334b6056064c0e9b19fd07e44a88d8f6e5ded571b24cf8c371f120200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c6600000000000000000000000000000000000000000000000000000000640000008000000000000000002cbc26bb000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffff53ad11d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000f803a2ca00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000003937306f00000000000000000000000000000000000000000000000000000000a0bce24f00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d95539132291698c01aa71f912280535d88a00d2c59fb63530a3f5d0098560468acb9ebf5000000000000000000000000000000000000000000000000ffffffffffffff9f93df584c000000000000000000000000000000000000000000000000000000000f01ce8500000000000000000000000000000000000000000000000000000000b04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a6271253a2500000000000000000000000000000000000000000000000000000000a75d88af00000000000000000000000000000000000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c93978da0f08e8000000000000000000000000000000000000000000000000000000008e1192e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f000000000000000000000000000000000000000000000000fffffffffffffb7fe4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000080000000000000000000000000ca31867a00000000000000000000000000000000000000000000000000000000f67bc7c400000000000000000000000000000000000000000000000000000000504570e300000000000000000000000000000000000000000000000000000000bb1ae18d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000008000000000000000000200000000000000000000000000000000000040000000800000000000000000ea59e8027e41fda1525220008cf2416797405065eb21b0ebd417bfc6d361b8de0000000000000000000000000000000000000020000000800000000000000000ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff0000000000000000000000000000000000000100000000000000000000000000020000000000000000000000000000000000002000000080000000000000000062e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2584d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000000000000000000000000000000000020000000c00000000000000000a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aaeced32bc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000080000000000000000009bde3390000000000000000000000000000000000000000000000000000000011a6b264000000000000000000000000000000000000000000000000000000004f6e6c792063616c6c61626c65206279206f776e65720000000000000000000000000000000000000000000000000000000000ffffffffff0000000000000000f0d557bfce33e354b41885eb9264448726cfe51f486ffa69809d2bf565456444367f56a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf02000000000000000000000000000000000000a0000000000000000000000000c9d7123efd4203e60b0f0a4b1dbc4800fc97ce63679f71c3a27279b24a7ddec309addddcec1d7ba6ad726df49aeea3e93fb0c1037d551236841a60c0c883f2c1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00004e487b7100000000000000000000000000000000000000000000000000000000d6c62c9b000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd1000000000000000000000000000000000000000000000000ffffffff000000001591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e053f8be2be00000000000000000000000000000000000000000000000000000000436f6d6d697453746f726520312e352e300000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000080000001800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebb000000000000000000000000000000000000000000000000ffffffffffffffc002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go b/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go index d1bfc5b47a..3bdd1eec0e 100644 --- a/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go +++ b/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package evm_2_evm_offramp import ( @@ -117,7 +114,7 @@ var EVM2EVMOffRampABI = EVM2EVMOffRampMetaData.ABI var EVM2EVMOffRampBin = EVM2EVMOffRampMetaData.Bin -func DeployEVM2EVMOffRamp(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig EVM2EVMOffRampStaticConfig, rateLimiterConfig RateLimiterConfig) (common.Address, *types.Transaction, *EVM2EVMOffRamp, error) { +func DeployEVM2EVMOffRamp(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig EVM2EVMOffRampStaticConfig, rateLimiterConfig RateLimiterConfig) (common.Address, *generated.Transaction, *EVM2EVMOffRamp, error) { parsed, err := EVM2EVMOffRampMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -125,12 +122,16 @@ func DeployEVM2EVMOffRamp(auth *bind.TransactOpts, backend bind.ContractBackend, if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(EVM2EVMOffRampZKBin), backend, staticConfig, rateLimiterConfig) + contractReturn := &EVM2EVMOffRamp{address: address, abi: *parsed, EVM2EVMOffRampCaller: EVM2EVMOffRampCaller{contract: contractBind}, EVM2EVMOffRampTransactor: EVM2EVMOffRampTransactor{contract: contractBind}, EVM2EVMOffRampFilterer: EVM2EVMOffRampFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(EVM2EVMOffRampBin), backend, staticConfig, rateLimiterConfig) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &EVM2EVMOffRamp{address: address, abi: *parsed, EVM2EVMOffRampCaller: EVM2EVMOffRampCaller{contract: contract}, EVM2EVMOffRampTransactor: EVM2EVMOffRampTransactor{contract: contract}, EVM2EVMOffRampFilterer: EVM2EVMOffRampFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &EVM2EVMOffRamp{address: address, abi: *parsed, EVM2EVMOffRampCaller: EVM2EVMOffRampCaller{contract: contract}, EVM2EVMOffRampTransactor: EVM2EVMOffRampTransactor{contract: contract}, EVM2EVMOffRampFilterer: EVM2EVMOffRampFilterer{contract: contract}}, nil } type EVM2EVMOffRamp struct { @@ -2803,3 +2804,5 @@ type EVM2EVMOffRampInterface interface { Address() common.Address } + +var EVM2EVMOffRampZKBin = ("0x0004000000000002003400000000000200000000030100190000006003300270000009300030019d0000093003300197000300000031035500020000000103550000000100200190000000d80000c13d0000008002000039000000400020043f000000040030008c000000f90000413d000000000201043b000000e002200270000009480020009c000001040000a13d000009490020009c000001a20000a13d0000094a0020009c000001d00000213d0000094e0020009c000003d60000613d0000094f0020009c0000055c0000613d000009500020009c000000f90000c13d000000640030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000402100370000000000202043b002000000002001d000009350020009c000000f90000213d000000200230006a0000096d0020009c000000f90000213d000001a40020008c000000f90000413d0000002402100370000000000202043b001f00000002001d000009350020009c000000f90000213d0000001f020000290000002302200039000000000032004b000000f90000813d0000001f020000290000000402200039000000000221034f000000000202043b001e00000002001d000009350020009c000000f90000213d0000001f02000029001d00240020003d0000001e0200002900000005022002100000001d02200029000000000032004b000000f90000213d0000004402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000f90000813d0000000404200039000000000441034f000000000504043b000009350050009c000000fe0000213d00000005045002100000003f064000390000096406600197000009650060009c000000fe0000213d0000008006600039000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000f90000213d000000000005004b000000660000613d0000008003000039000000000521034f000000000505043b000009300050009c000000f90000213d000000200330003900000000005304350000002002200039000000000042004b0000005d0000413d0000000001000415001000000001001d000000400100043d001a00000001001d00000000010004100000000002000411000000000012004b00000aa80000c13d0000001a010000290000096f0010009c000000fe0000213d000000200200002900000004052000390000001a030000290000002001300039000000400010043f0000000000030435000201440020003d00000002010003670000000202100360000000000202043b0000000004000031000300000005001d00000000035400490000001f0730008a00000970087001970000097003200197000000000583013f000000000083004b00000000030000190000097003004041000000000072004b00000000060000190000097006008041000009700050009c000000000306c019000000000003004b000000f90000c13d0000000302200029000000000321034f000000000303043b000900000003001d000009350030009c000000f90000213d00000009030000290000000606300210000000000564004900000020032000390000097009500197000009700a300197000000000b9a013f00000000009a004b00000000090000190000097009004041000000000053004b000000000500001900000970050020410000097000b0009c000000000905c019000000000009004b000000f90000c13d000000090000006b00000c620000c13d0000000202000029001f0020002000920000001f02100360000000000202043b00000970032001970000097005700197000000000653013f000000000053004b00000000030000190000097003004041000000000072004b00000000050000190000097005008041000009700060009c000000000305c019000000000003004b000000f90000c13d0000000303200029000000000231034f000000000202043b000009350020009c000000f90000213d00000000042400490000002003300039000000000043004b0000000005000019000009700500204100000970044001970000097003300197000000000643013f000000000043004b00000000030000190000097003004041000009700060009c000000000305c019000000000003004b000000f90000c13d000000000002004b000014870000c13d0000001f02000029000000a00220008a000000000221034f0000000003000415000000230330008a001e000500300218000000000202043b000000000002004b002300000000003d002300010000603d0000148b0000c13d000014a40000013d000001a004000039000000400040043f0000000002000416000000000002004b000000f90000c13d0000001f023000390000093102200197000001a002200039000000400020043f0000001f0530018f0000093206300198000001a002600039000000ea0000613d000000000701034f000000007807043c0000000004840436000000000024004b000000e60000c13d000000000005004b000000f70000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000001400030008c000000fb0000813d0000000001000019000024bf00010430000000400300043d000009330030009c000001460000a13d000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf00010430000009570020009c000001af0000213d0000095e0020009c000002250000a13d0000095f0020009c000003ab0000613d000009600020009c000004290000613d000009610020009c000000f90000c13d0000000001000416000000000001004b000000f90000c13d000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f0000000301000039000000000101041a0000093702100197001f00000002001d000001200020043f00000080021002700000093002200197002000000002001d000001400020043f0000098c001001980000000001000039000000010100c039000001600010043f0000000401000039000000000101041a0000093702100197001e00000002001d000001800020043f0000008001100270000001a00010043f0000026001000039000000400010043f000001c00000043f000001e00000043f000002000000043f000002200000043f000002400000043f0000093a0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000101043b0000002005000029000000000351004b000007980000813d000009a901000041000000000010043f0000001101000039000000040010043f0000097701000041000024bf00010430000000e001300039000000400010043f000001a00100043d000009340010009c000000f90000213d0000000001130436002000000001001d000001c00100043d000009350010009c000000f90000213d00000020020000290000000000120435000001e00100043d000009350010009c000000f90000213d0000004002300039001f00000002001d0000000000120435000002000100043d000009340010009c000000f90000213d0000006002300039001e00000002001d0000000000120435000002200100043d000009340010009c000000f90000213d0000008002300039001d00000002001d0000000000120435000002400100043d000009340010009c000000f90000213d000000a002300039001c00000002001d0000000000120435000002600100043d000009340010009c000000f90000213d000000c002300039001b00000002001d0000000000120435000000400100043d000009360010009c000000fe0000213d0000006002100039000000400020043f000002800400043d000000000004004b0000000002000039000000010200c039001a00000004001d000000000024004b000000f90000c13d0000001a020000290000000002210436000002a00400043d001900000004001d000009370040009c000000f90000213d00000019040000290000000000420435000002c00200043d001800000002001d000009370020009c000000f90000213d001600000003001d000000400110003900000018020000290000000000210435000000400100043d001700000001001d0000000001000411000000000001004b00000a510000c13d000000170300002900000044013000390000094502000041000000000021043500000024013000390000001802000039000000000021043500000946010000410000000000130435000000040130003900000020020000390000000000210435000009300030009c0000093003008041000000400130021000000947011001c7000024bf00010430000009510020009c000001f00000a13d000009520020009c000002810000613d000009530020009c000003450000613d000009540020009c000000f90000c13d0000000001000416000000000001004b000000f90000c13d000000000100041a000006fa0000013d000009580020009c000002550000a13d000009590020009c000003bf0000613d0000095a0020009c000005290000613d0000095b0020009c000000f90000c13d0000000001000416000000000001004b000000f90000c13d0000000101000039000000000201041a00000934032001970000000006000411000000000036004b000007810000c13d000000000300041a0000093804300197000000000464019f000000000040041b0000093802200197000000000021041b00000000010004140000093405300197000009300010009c0000093001008041000000c001100210000009b0011001c70000800d020000390000000303000039000009b404000041000007df0000013d0000094b0020009c000003df0000613d0000094c0020009c000005fc0000613d0000094d0020009c000000f90000c13d000000240030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000401100370000000000601043b000009340060009c000000f90000213d000000000100041a00000934011001970000000005000411000000000015004b000007c10000c13d000000000056004b000007d20000c13d0000094601000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000009b201000041000000c40010043f000009af01000041000024bf00010430000009550020009c0000041a0000613d000009560020009c000000f90000c13d000000240030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000401100370000000000101043b002000000001001d000009340010009c000000f90000213d0000002001000029000000000010043f0000000f01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000101041a0000093502100198000007cb0000c13d0000097501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000400500043d000000000101043b00000934021001980000082c0000c13d00000000010500190000000002000019000007cc0000013d000009620020009c0000065d0000613d000009630020009c000000f90000c13d000000240030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000401100370000000000101043b002000000001001d000009350010009c000000f90000213d00000020010000290000000701100270000000000010043f0000001001000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d00000020030000290000000102300210000000000101043b000000000101041a0000007f033001900000024b0000613d000000ff0420018f00000000033400d9000000020030008c000001400000c13d000000fe0220018f000000000121022f000000030110018f000000400200043d0000000000120435000009300020009c00000930020080410000004001200210000009ad011001c7000024be0001042e0000095c0020009c000006f50000613d0000095d0020009c000000f90000c13d0000000001000416000000000001004b000000f90000c13d0000000902000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b0000026f0000613d000000a004000039000009b90200004100000000030000190000000005040019000000000402041a0000093404400197000000000445043600000001022000390000000103300039000000000013004b000002660000413d000000600250008a000000800100003924bd1da00000040f000000400200043d002000000002001d00000020010000390000000002120436000000800100003924bd1dd00000040f00000020020000290000000001210049000009300010009c00000930010080410000006001100210000009300020009c00000930020080410000004002200210000000000121019f000024be0001042e000000440030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000f90000813d0000000404200039000000000441034f000000000504043b000009350050009c000000fe0000213d00000005045002100000003f044000390000096404400197000009650040009c000000fe0000213d0000008004400039000000400040043f000000800050043f000000240220003900000006045002100000000004240019000000000034004b000000f90000213d000000000005004b000008100000c13d0000002402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000060000190000097006004041000009700040009c000000000605c019000000000006004b000000f90000c13d0000000404200039000000000441034f000000000504043b000009350050009c000000fe0000213d00000005045002100000003f044000390000096404400197000000400600043d0000000004460019001d00000006001d000000000064004b00000000060000390000000106004039000009350040009c000000fe0000213d0000000100600190000000fe0000c13d000000400040043f0000001d040000290000000004540436001b00000004001d000000240220003900000006045002100000000004240019000000000034004b000000f90000213d000000000005004b00000b330000c13d000000000100041a00000934011001970000000002000411000000000012004b000017c80000c13d000000800100043d000000000001004b00000b4f0000c13d0000001d010000290000000001010433000000000001004b000007e20000613d002000000000001d000002e20000013d0000002002000029002000010020003d0000001d010000290000000001010433000000200010006b000007e20000813d000000200100002900000005011002100000001b01100029001c00000001001d00000000010104330000000012010434001e00000002001d00000000010104330000093401100197001f00000001001d000000000010043f0000000e01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b0000001e020000290000093402200197000000000021041b0000001f01000029000000000010043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000101041a000000000001004b000002dc0000c13d0000000c03000039000000000103041a000009350010009c000000fe0000213d0000000102100039000000000023041b000009660110009a0000001f02000029000000000021041b000000000103041a001e00000001001d000000000020043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b0000001e02000029000000000021041b0000001d010000290000000001010433000000200010006c00001cda0000a13d0000001c010000290000000001010433000000002101043400000000020204330000093402200197000000400300043d0000002004300039000000000024043500000934011001970000000000130435000009300030009c000009300300804100000040013002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f00000967011001c70000800d020000390000000103000039000009ab0400004124bd24b30000040f0000000100200190000002dc0000c13d000000f90000013d000000440030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000402100370000000000202043b001700000002001d000009350020009c000000f90000213d0000001702000029001600040020003d000000160230006a0000096d0020009c000000f90000213d000000800020008c000000f90000413d0000010002000039000000400020043f0000001602100360000000000202043b000009350020009c000000f90000213d0000001602200029001a00000002001d0000001f02200039000000000032004b000000f90000813d0000001a02100360000000000202043b000009350020009c000000fe0000213d00000005042002100000003f054000390000096405500197000009830050009c000000fe0000213d0000010005500039000000400050043f000001000020043f0000001a0500002900000020065000390000000005060019001900000064001d000000190030006b000000f90000213d000000000002004b0000000002050019000008dd0000c13d0000010002000039000000800020043f00000016020000290000002002200039000000000221034f000000000202043b000009350020009c000000f90000213d0000001602200029001c00000002001d0000001f02200039000000000032004b000000000400001900000970040080410000097002200197000000000002004b00000000050000190000097005004041000009700020009c000000000504c019000000000005004b000000f90000c13d0000001c02100360000000000202043b000009350020009c000000fe0000213d00000005042002100000003f054000390000096405500197000000400600043d0000000005560019001a00000006001d000000000065004b00000000060000390000000106004039000009350050009c000000fe0000213d0000000100600190000000fe0000c13d000000400050043f0000001a0500002900000000002504350000001c0200002900000020052000390000000002050019001b00000054001d0000001b0030006b000000f90000213d0000001b0020006c00000bd00000813d000000200900008a001e001a0000002d000007070000013d0000000001000416000000000001004b000000f90000c13d000000c001000039000000400010043f0000001401000039000000800010043f000009ca01000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003924bd1dbe0000040f000000c00110008a000009300010009c00000930010080410000006001100210000009cb011001c7000024be0001042e000000240030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000401100370000000000101043b000009340010009c000000f90000213d0000000202000039000000000302041a000000000400041a00000934054001970000000004000411000000000054004b0000078b0000613d0000093405300197000000000054004b0000078b0000613d0000096801000041000000800010043f000009b601000041000024bf000104300000000001000416000000000001004b000000f90000c13d0000000101000039000000800010043f000000a00000043f000000c00000043f000009a101000041000024be0001042e000000640030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d000000e002000039000000400020043f0000000402100370000000000202043b000000000002004b0000000003000039000000010300c039000000000032004b000000f90000c13d000000800020043f0000002402100370000000000202043b000009370020009c000000f90000213d000000a00020043f0000004401100370000000000101043b000009370010009c000000f90000213d000000c00010043f000000000100041a00000934021001970000000001000411000000000021004b000004020000613d0000000202000039000000000202041a0000093402200197000000000021004b000008390000c13d0000000301000039000000000101041a002000000001001d0000093a0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000200600002900000080026002700000093002200197000000000101043b000000000421004b000001400000413d0000087d0000c13d0000000304000039000000000104041a000008920000013d0000000001000416000000000001004b000000f90000c13d0000000501000039000000000101041a0000000702000039000000000202041a0000093003200197000000800030043f00000020022002700000093002200197000000a00020043f000000c00010043f000009a101000041000024be0001042e000000c40030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000000402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000f90000813d0000000404200039000000000441034f000000000504043b000009350050009c000000fe0000213d00000005045002100000003f064000390000096406600197000009650060009c000000fe0000213d0000008006600039000000400060043f000000800050043f00000024022000390000000004240019000000000034004b000000f90000213d000000000005004b000004520000613d0000008005000039000000000621034f000000000606043b000009340060009c000000f90000213d000000200550003900000000006504350000002002200039000000000042004b000004490000413d0000002402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000060000190000097006004041000009700040009c000000000605c019000000000006004b000000f90000c13d0000000404200039000000000441034f000000000404043b000009350040009c000000fe0000213d00000005054002100000003f065000390000096406600197000000400700043d0000000006670019002000000007001d000000000076004b00000000070000390000000107004039000009350060009c000000fe0000213d0000000100700190000000fe0000c13d000000400060043f00000020060000290000000006460436001f00000006001d00000024022000390000000005250019000000000035004b000000f90000213d000000000004004b000004880000613d0000002004000029000000000621034f000000000606043b000009340060009c000000f90000213d000000200440003900000000006404350000002002200039000000000052004b0000047f0000413d0000004402100370000000000202043b001e00000002001d000000ff0020008c000000f90000213d0000006402100370000000000402043b000009350040009c000000f90000213d0000002302400039000000000032004b000000000500001900000970050080410000097002200197000000000002004b00000000060000190000097006004041000009700020009c000000000605c019000000000006004b000000f90000c13d0000000405400039000000000251034f000000000202043b000009350020009c000000fe0000213d0000001f06200039000009cd066001970000003f06600039000009cd06600197000000400700043d0000000006670019001d00000007001d000000000076004b00000000070000390000000107004039000009350060009c000000fe0000213d0000000100700190000000fe0000c13d0000002404400039000000400060043f0000001d060000290000000006260436001c00000006001d0000000004420019000000000034004b000000f90000213d0000002004500039000000000541034f000009cd062001980000001f0720018f0000001c04600029000004c40000613d000000000805034f0000001c09000029000000008a08043c0000000009a90436000000000049004b000004c00000c13d000000000007004b000004d10000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000001c0220002900000000000204350000008402100370000000000202043b001b00000002001d000009350020009c000000f90000213d000000a402100370000000000402043b000009350040009c000000f90000213d0000002302400039000000000032004b000000000500001900000970050080410000097002200197000000000002004b00000000060000190000097006004041000009700020009c000000000605c019000000000006004b000000f90000c13d0000000405400039000000000251034f000000000202043b000009350020009c000000fe0000213d0000001f06200039000009cd066001970000003f06600039000009cd06600197000000400700043d0000000006670019001a00000007001d000000000076004b00000000070000390000000107004039000009350060009c000000fe0000213d0000000100700190000000fe0000c13d0000002404400039000000400060043f0000001a060000290000000006260436001900000006001d0000000004420019000000000034004b000000f90000213d0000002003500039000000000331034f000009cd042001980000001f0520018f00000019014000290000050f0000613d000000000603034f0000001907000029000000006806043c0000000007870436000000000017004b0000050b0000c13d000000000005004b0000051c0000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000001901200029000000000001043500000020010000290000000001010433000000200010008c000014ab0000413d000000400100043d000009c0020000410000000000210435000000040210003900000001030000390000000000320435000014b20000013d0000000001000416000000000001004b000000f90000c13d24bd1dde0000040f000000400100043d002000000001001d24bd1d950000040f0000000a01000039000000000101041a0000005002100270000009340220019700000020060000290000006003600039000000000023043500000040021002700000ffff0220018f0000004004600039000000000024043500000020021002700000093002200197000000200560003900000000002504350000093001100197000000000016043500000080026000390000000b06000039000000000606041a00000934066001970000000000620435000000400600043d000000000116043600000000050504330000093005500197000000000051043500000000010404330000ffff0110018f0000004004600039000000000014043500000000010304330000093401100197000000600360003900000000001304350000000001020433000009340110019700000080026000390000000000120435000009300060009c00000930060080410000004001600210000009b5011001c7000024be0001042e000000e40030008c000000f90000413d0000000002000416000000000002004b000000f90000c13d0000006402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000f90000813d0000000404200039000000000541034f000000000505043b001f00000005001d000009350050009c000000f90000213d00000024052000390020001f0050002d000000200030006b000000f90000213d0000008406100370000000000606043b000009350060009c000000f90000213d0000002307600039000000000037004b000000f90000813d0000000407600039000000000771034f000000000707043b000009350070009c000000f90000213d001600050070021800000016066000290000002406600039000000000036004b000000f90000213d000000a406100370000000000606043b000009350060009c000000f90000213d0000002307600039000000000037004b000000f90000813d0000000407600039000000000771034f000000000707043b000009350070009c000000f90000213d0000001f02000029000000200020008c000000f90000413d001500050070021800000015066000290000002406600039000000000036004b000000f90000213d0000002003400039000000000331034f000000000303043b000009350030009c000000f90000213d0000000003530019001400000003001d00000020033000690000096d0030009c000000f90000213d000000800030008c000000f90000413d0000010002000039000000400020043f0000001403100360000000000303043b000009350030009c000000f90000213d0000001402300029001900000002001d0000001f03200039000000200030006c000000f90000813d0000001903100360000000000303043b000009350030009c000000fe0000213d00000005043002100000003f054000390000096405500197000009830050009c000000fe0000213d0000010005500039000000400050043f000001000030043f0000001902000029000000200220003900000000050200190000000004240019001800000004001d000000200040006c000000f90000213d000000000003004b00000000030500190000130f0000c13d0000010002000039000000800020043f00000014020000290000002003200039000000000331034f000000000303043b000009350030009c000000f90000213d0000001402300029001b00000002001d0000001f022000390000002004000029000000000042004b0000000003000019000009700300804100000970022001970000097004400197000000000542013f000000000042004b00000000020000190000097002004041000009700050009c000000000203c019000000000002004b000000f90000c13d0000001b02100360000000000302043b000009350030009c000000fe0000213d00000005053002100000003f025000390000096402200197000000400700043d0000000006270019001900000007001d000000000076004b00000000070000390000000107004039000009350060009c000000fe0000213d0000000100700190000000fe0000c13d000000400060043f000000190200002900000000003204350000001b02000029001d00200020003d0000001d03500029001a00000003001d000000200030006c000000f90000213d0000001a030000290000001d0030006b000017d90000813d001c00190000002d00000aba0000013d0000000002000416000000000002004b000000f90000c13d0000000c02000039000000000202041a001e00000002001d000009350020009c000000fe0000213d0000001e0200002900000005042002100000003f024000390000096405200197000009650050009c000000fe0000213d000000000131034f0000008002500039000000400020043f0000001e02000029000000800020043f0000001f0240018f000000000004004b000006190000613d000000a003400039000000a006000039000000000701034f000000007807043c0000000006860436000000000036004b000006150000c13d000000000002004b000000400600043d0000000003560019001d00000006001d000000000063004b00000000050000390000000105004039000009350030009c000000fe0000213d0000000100500190000000fe0000c13d000000400030043f0000001d080000290000001e030000290000000003380436001c00000003001d000000000004004b000006310000613d0000001c034000290000001c04000029000000001501043c0000000004540436000000000034004b0000062d0000c13d000000000002004b00000080070000390000001e0000006b000007e40000c13d000000400100043d000000400200003900000000022104360000004003100039000000800400043d00000000004304350000006003100039000000000004004b000006460000613d000000000500001900000020077000390000000006070433000009340660019700000000036304360000000105500039000000000045004b0000063f0000413d0000000004130049000000000042043500000000040804330000000002430436000000000004004b000006540000613d000000000300001900000020088000390000000005080433000009340550019700000000025204360000000103300039000000000043004b0000064d0000413d0000000002120049000009300020009c00000930020080410000006002200210000009300010009c00000930010080410000004001100210000000000112019f000024be0001042e0000000001000416000000000001004b000000f90000c13d0000016001000039000000400010043f000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000001400000043f24bd1db20000040f0000000002000412003400000002001d003300200000003d002000000001001d000080050100003900000044030000390000000004000415000000340440008a0000000504400210000009750200004124bd24950000040f0000093402100197001e00000002001d00000020010000290000000001210436001f00000001001d0000000001000412003200000001001d003100600000003d0000000004000415000000320440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f00000935011001970000001f0200002900000000001204350000000001000412003000000001001d002f00400000003d0000000004000415000000300440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f000009350110019700000020020000290000004002200039001d00000002001d00000000001204350000000001000412002e00000001001d002d00800000003d00000000040004150000002e0440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f000009340110019700000020020000290000006002200039001c00000002001d00000000001204350000000001000412002c00000001001d002b00c00000003d00000000040004150000002c0440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f000009340110019700000020020000290000008002200039001b00000002001d00000000001204350000000001000412002a00000001001d002900e00000003d00000000040004150000002a0440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f00000934011001970000002002000029000000a002200039001a00000002001d00000000001204350000000001000412002800000001001d002701000000003d0000000004000415000000280440008a000000050440021000008005010000390000097502000041000000440300003924bd24950000040f0000002002000029000000c00220003900000934011001970000000000120435000000400100043d0000001e0300002900000000033104360000001f040000290000000004040433000009350440019700000000004304350000001d0300002900000000030304330000093503300197000000400410003900000000003404350000001c0300002900000000030304330000093403300197000000600410003900000000003404350000001b0300002900000000030304330000093403300197000000800410003900000000003404350000001a0300002900000000030304330000093403300197000000a004100039000000000034043500000000020204330000093402200197000000c0031000390000000000230435000009300010009c00000930010080410000004001100210000009cc011001c7000024be0001042e0000000001000416000000000001004b000000f90000c13d0000000201000039000000000101041a0000093401100197000000800010043f000009a201000041000024be0001042e0000001e020000290000002002200039001e00000002001d0000001f0400002900000000004204350000001d0200002900000020022000390000001b0020006c00000bd00000813d001d00000002001d000000000221034f000000000202043b000009350020009c000000f90000213d0000001c022000290000003f04200039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000060000190000097006004041000009700040009c000000000605c019000000000006004b000000f90000c13d002000200020003d0000002004100360000000000404043b000009350040009c000000fe0000213d00000005054002100000003f065000390000096406600197000000400700043d0000000006670019001f00000007001d000000000076004b00000000070000390000000107004039000009350060009c000000fe0000213d0000000100700190000000fe0000c13d000000400060043f0000001f060000290000000000460435000000400d2000390000000002d50019000000000032004b000000f90000213d00000000002d004b000006fe0000813d0000001f040000290000073e0000013d00000020044000390000000005ec001900000000000504350000000000f40435000000200dd0003900000000002d004b00000000090b0019000006fe0000813d0000000005d1034f000000000505043b000009350050009c000000f90000213d00000020065000290000003f05600039000000000035004b000000000700001900000970070080410000097005500197000000000005004b00000000080000190000097008004041000009700050009c000000000807c019000000000008004b000000f90000c13d0000002005600039000000000751034f000000000e07043b0000093500e0009c000000fe0000213d0000001f07e00039000000000797016f0000003f07700039000000000797016f000000400f00043d00000000087f00190000000000f8004b00000000070000390000000107004039000009350080009c000000fe0000213d0000000100700190000000fe0000c13d0000004006600039000000400080043f000000000cef043600000000066e0019000000000036004b000000f90000213d0000002005500039000000000751034f000000000b090019000000000a9e01700000000005ac0019000007730000613d000000000807034f00000000060c0019000000008908043c0000000006960436000000000056004b0000076f0000c13d0000001f06e00190000007360000613d0000000007a7034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000007360000013d0000094601000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000009b301000041000000c40010043f000009af01000041000024bf000104300000093803300197000000000313019f000000000032041b000000800010043f0000000001000414000009300010009c0000093001008041000000c001100210000009b7011001c70000800d020000390000000103000039000009b804000041000007df0000013d000001a00200043d000009370420019700000000023400a9000000000051004b000007a00000613d00000000033200d9000000000043004b000001400000c13d0000001f0020002a000001400000413d0000001f022000290000001e0020006b00000000030200190000001e03004029000001200030043f0000093001100197000001400010043f000000400100043d0000000002310436000001400300043d00000930033001970000000000320435000001600200043d000000000002004b0000000002000039000000010200c03900000040031000390000000000230435000001800200043d000009370220019700000060031000390000000000230435000001a00200043d000009370220019700000080031000390000000000230435000009300010009c00000930010080410000004001100210000009b5011001c7000024be0001042e0000094601000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000009ae01000041000000c40010043f000009af01000041000024bf00010430000000400100043d0000000000210435000009300010009c00000930010080410000004001100210000009ad011001c7000024be0001042e0000000101000039000000000201041a0000093802200197000000000262019f000000000021041b0000000001000414000009300010009c0000093001008041000000c001100210000009b0011001c70000800d020000390000000303000039000009b10400004124bd24b30000040f0000000100200190000000f90000613d0000000001000019000024be0001042e00000000040000190000000c01000039000000000101041a000000000041004b00001cda0000a13d002000000004001d000009660140009a000000000101041a001f00000001001d000000000010043f0000000e01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000800200043d0000002004000029000000000042004b0000001d0800002900001cda0000a13d000000000101043b000000000101041a00000934021001970000000501400210000000a00310003900000000002304350000000002080433000000000042004b00001cda0000a13d0000001c011000290000001f020000290000093402200197000000000021043500000001044000390000001e0040006c0000008007000039000007e50000413d000006350000013d000000800500003900000000062300490000096d0060009c000000f90000213d000000400060008c000000f90000413d000000400600043d000009710060009c000000fe0000213d0000004007600039000000400070043f000000000721034f000000000707043b000009340070009c000000f90000213d00000000077604360000002008200039000000000881034f000000000808043b000009340080009c000000f90000213d0000002005500039000000000087043500000000006504350000004002200039000000000042004b000008110000413d000002a10000013d000009ac0100004100000000001504350000000401500039000000200300002900000000003104350000000001000414000000040020008c0000083d0000c13d0000000103000031000000200030008c000000200400003900000000040340190000086b0000013d0000096801000041000000e00010043f0000096901000041000024bf00010430000009300050009c000009300300004100000000030540190000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000977011001c7002000000005001d24bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000200b0000290000002005700029000008590000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000008550000c13d000000000006004b000008660000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000008bf0000613d00000000050b00190000001f01400039000000600210018f00000000040500190000000001520019000000000021004b00000000020000390000000102004039000009350010009c000000fe0000213d0000000100200190000000fe0000c13d000000400010043f000000200030008c000000f90000413d0000000002040433000009350020009c000007cc0000a13d000000f90000013d0000000402000039000000000202041a000000800520027000000000034500a900000000044300d9000000000054004b000001400000c13d0000093704600197000000000043001a000001400000413d00000000034300190000093702200197000000000032004b000000000203801900000080011002100000093d01100197000000000112019f0000000304000039000000000204041a0000093802200197000000000121019f000000a00200043d00000937022001970000093703100197000000000032004b00000000030240190000096a01100197000000000113019f000000800300043d000000000003004b00000000030000190000093c0300c041000000000131019f000000000014041b000000c00100043d0000008001100210000000000121019f0000000402000039000000000012041b0000000001000039000000010100c039000000400200043d0000000001120436000000a00300043d00000937033001970000000000310435000000c00100043d000009370110019700000040032000390000000000130435000009300020009c000009300200804100000040012002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f0000096b011001c70000800d0200003900000001030000390000096c0400004124bd24b30000040f0000000100200190000007e20000c13d000000f90000013d0000001f0530018f0000093206300198000000400200043d0000000004620019000008ca0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000008c60000c13d000000000005004b000008d70000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009300020009c00000930020080410000004002200210000000000112019f000024bf00010430001c01200000003d0018002000300092000000200b00008a000008f20000013d0000001f0500002900000160025000390000001d0400002900000000004204350000001e02000029000001a002200039000000000221034f000000000202043b000001800450003900000000002404350000001c020000290000000002520436001c00000002001d0000001b020000290000002002200039000000190020006c000003760000813d001b00000002001d000000000221034f000000000202043b000009350020009c000000f90000213d0000001a04200029001e00000004001d00000018024000690000096d0020009c000000f90000213d000001a00020008c000000f90000413d000000400200043d001f00000002001d0000099a0020009c000000fe0000213d0000001f02000029000001a002200039000000400020043f0000001e020000290000002002200039000000000421034f000000000404043b000009350040009c000000f90000213d0000001f0500002900000000044504360000002002200039000000000521034f000000000505043b000009340050009c000000f90000213d00000000005404350000002002200039000000000421034f000000000404043b000009340040009c000000f90000213d0000001f05000029000000400550003900000000004504350000002002200039000000000421034f000000000404043b000009350040009c000000f90000213d0000001f06000029000000600560003900000000004504350000002004200039000000000441034f000000000404043b000000800560003900000000004504350000004002200039000000000421034f000000000404043b000000000004004b0000000005000039000000010500c039000000000054004b000000f90000c13d0000001f05000029000000a00550003900000000004504350000002002200039000000000421034f000000000404043b000009350040009c000000f90000213d0000001f05000029000000c00550003900000000004504350000002002200039000000000421034f000000000404043b000009340040009c000000f90000213d0000001f06000029000000e00560003900000000004504350000002004200039000000000441034f000000000404043b000001000560003900000000004504350000004002200039000000000421034f000000000404043b000009350040009c000000f90000213d0000001e064000290000003f04600039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000070000190000097007004041000009700040009c000000000705c019000000000007004b000000f90000c13d0000002008600039000000000481034f000000000404043b000009350040009c000000fe0000213d0000001f054000390000000005b5016f0000003f055000390000000007b5016f000000400500043d0000000007750019000000000057004b00000000090000390000000109004039000009350070009c000000fe0000213d0000000100900190000000fe0000c13d0000004009600039000000400070043f00000000064504360000000007940019000000000037004b000000f90000213d0000002007800039000000000971034f0000000007b4017000000000087600190000097d0000613d000000000a09034f000000000c06001900000000ad0a043c000000000cdc043600000000008c004b000009790000c13d0000001f0a4001900000098a0000613d000000000779034f0000000309a00210000000000a080433000000000a9a01cf000000000a9a022f000000000707043b0000010009900089000000000797022f00000000079701cf0000000007a7019f0000000000780435000000000446001900000000000404350000001f04000029000001200440003900000000005404350000002002200039000000000421034f000000000404043b000009350040009c000000f90000213d0000001e054000290000003f04500039000000000034004b000000000600001900000970060080410000097004400197000000000004004b00000000070000190000097007004041000009700040009c000000000706c019000000000007004b000000f90000c13d0000002004500039000000000441034f000000000604043b000009350060009c000000fe0000213d00000005046002100000003f044000390000096407400197000000400400043d0000000007740019000000000047004b00000000080000390000000108004039000009350070009c000000fe0000213d0000000100800190000000fe0000c13d0000004005500039000000400070043f000000000064043500000006066002100000000006560019000000000036004b000000f90000213d000000000056004b000009d40000a13d000000000804001900000000075300490000096d0070009c000000f90000213d000000400070008c000000f90000413d000000400700043d000009710070009c000000fe0000213d0000004009700039000000400090043f000000000951034f000000000909043b000009340090009c000000f90000213d00000020088000390000000009970436000000200a500039000000000aa1034f000000000a0a043b0000000000a9043500000000007804350000004005500039000000000065004b000009bc0000413d0000001f05000029000001400550003900000000004504350000002002200039000000000221034f000000000202043b000009350020009c000000f90000213d0000001e022000290000003f04200039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000060000190000097006004041000009700040009c000000000605c019000000000006004b000000f90000c13d002000200020003d0000002004100360000000000504043b000009350050009c000000fe0000213d00000005065002100000003f046000390000096404400197000000400800043d0000000007480019001d00000008001d000000000087004b00000000040000390000000104004039000009350070009c000000fe0000213d0000000100400190000000fe0000c13d000000400070043f0000001d04000029000000000054043500000040052000390000000002560019000000000032004b000000f90000213d000000000025004b000008e10000813d0000001d0f00002900000a0e0000013d000000200ff000390000000004640019000000000004043500000000008f04350000002005500039000000000025004b000000000b0e0019000008e10000813d000000000451034f000000000404043b000009350040009c000000f90000213d000000200a4000290000003f04a00039000000000034004b000000000600001900000970060080410000097004400197000000000004004b00000000070000190000097007004041000009700040009c000000000706c019000000000007004b000000f90000c13d0000002009a00039000000000491034f000000000604043b000009350060009c000000fe0000213d0000001f046000390000000004b4016f0000003f044000390000000004b4016f000000400800043d0000000007480019000000000087004b00000000040000390000000104004039000009350070009c000000fe0000213d0000000100400190000000fe0000c13d000000400aa00039000000400070043f00000000046804360000000007a60019000000000037004b000000f90000213d0000002007900039000000000d71034f000000000e0b0019000000000cb601700000000009c4001900000a430000613d00000000070d034f000000000a040019000000007b07043c000000000aba043600000000009a004b00000a3f0000c13d0000001f0760019000000a060000613d000000000acd034f0000000307700210000000000b090433000000000b7b01cf000000000b7b022f000000000a0a043b0000010007700089000000000a7a022f00000000077a01cf0000000007b7019f000000000079043500000a060000013d000000000200041a0000093802200197000000000112019f000000000010041b0000001701000029000009390010009c000000fe0000213d0000001702000029000000a001200039000000400010043f00000019010000290000000001120436001500000001001d0000093a0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000009300210019700000015030000290000000000230435000000170300002900000080023000390000001805000029000000000052043500000060023000390000001904000029000000000042043500000040023000390000001a030000290000000000320435000000000003004b00000000020000190000093c0200c04100000080011002100000093d01100197000000000112019f0000000302000039000000000302041a0000093e03300197000000000131019f000000000141019f000000000012041b0000008001500210000000000141019f0000000402000039000000000012041b0000093f0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000800010043f0000001e010000290000000001010433000009340010019800000aa00000613d00000016010000290000000001010433000009340210019800000aa00000613d0000001b01000029000000000101043300000934001001980000125e0000c13d000000400100043d000009c9020000410000000000210435000009300010009c0000093001008041000000400110021000000941011001c7000024bf000104300000096e010000410000001a020000290000000000120435000009300020009c0000093002008041000000400120021000000941011001c7000024bf000104300000001c020000290000002002200039001c00000002001d0000001e0300002900000000003204350000001d020000290000002002200039001d00000002001d0000001a0020006c000017d90000813d0000001d02100360000000000302043b000009350030009c000000f90000213d0000001b033000290000003f02300039000000200020006c000000000500001900000970050080410000097002200197000000000642013f000000000042004b00000000020000190000097002004041000009700060009c000000000205c019000000000002004b000000f90000c13d000000200b3000390000000002b1034f000000000502043b000009350050009c000000fe0000213d00000005065002100000003f026000390000096402200197000000400800043d0000000007280019001e00000008001d000000000087004b00000000080000390000000108004039000009350070009c000000fe0000213d0000000100800190000000fe0000c13d000000400070043f0000001e020000290000000000520435000000400d3000390000000003d60019000000200030006c000000f90000213d00000000003d004b00000ab00000813d0000001e0e00002900000af00000013d000000200ee000390000000002f90019000000000002043500000000006e0435000000200dd0003900000000003d004b00000ab00000813d0000000002d1034f000000000502043b000009350050009c000000f90000213d0000000005b500190000003f02500039000000200020006c000000000600001900000970060080410000097002200197000000000742013f000000000042004b00000000020000190000097002004041000009700070009c000000000206c019000000000002004b000000f90000c13d0000002008500039000000000281034f000000000f02043b0000093500f0009c000000fe0000213d0000001f02f00039000009cd022001970000003f02200039000009cd02200197000000400600043d0000000007260019000000000067004b00000000090000390000000109004039000009350070009c000000fe0000213d0000000100900190000000fe0000c13d0000004002500039000000400070043f0000000009f6043600000000022f0019000000200020006c000000f90000213d0000002002800039000000000c21034f000009cd07f00198000000000879001900000b250000613d000000000a0c034f000000000509001900000000a20a043c0000000005250436000000000085004b00000b210000c13d0000001f05f0019000000ae90000613d00000000027c034f0000000305500210000000000708043300000000075701cf000000000757022f000000000202043b0000010005500089000000000252022f00000000025201cf000000000272019f000000000028043500000ae90000013d0000001d0500002900000000062300490000096d0060009c000000f90000213d000000400060008c000000f90000413d000000400600043d000009710060009c000000fe0000213d0000004007600039000000400070043f000000000721034f000000000707043b000009340070009c000000f90000213d00000000077604360000002008200039000000000881034f000000000808043b000009340080009c000000f90000213d0000002005500039000000000087043500000000006504350000004002200039000000000042004b00000b340000413d000002ce0000013d000000000200001900000b560000013d0000001f020000290000000102200039000000800100043d000000000012004b000002d60000813d001f00000002001d0000000501200210000000a001100039001e00000001001d0000000001010433000000200110003900000000010104330000093401100197002000000001001d000000000010043f0000000e01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000001041b0000002001000029000000000010043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000301041a000000000003004b00000b510000613d0000000c01000039000000000201041a000000000002004b000001400000613d000000010130008a000000000032004b00000ba00000613d000000000012004b00001cda0000a13d000009a80130009a000009a80220009a000000000202041a000000000021041b000000000020043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c70000801002000039001c00000003001d24bd24b80000040f0000001c030000290000000100200190000000f90000613d000000000101043b000000000031041b0000000c01000039000000000301041a000000000003004b000012fd0000613d000000010130008a000009a80230009a000000000002041b0000000c02000039000000000012041b0000002001000029000000000010043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000001041b000000800100043d0000001f0010006c00001cda0000a13d0000001e010000290000000001010433000000002101043400000000020204330000093402200197000000400300043d0000002004300039000000000024043500000934011001970000000000130435000009300030009c000009300300804100000040013002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f00000967011001c70000800d020000390000000103000039000009aa0400004124bd24b30000040f000000010020019000000b510000c13d000000f90000013d0000001a02000029000000a00020043f00000017020000290000004402200039000000000421034f000000000404043b000009350040009c000000f90000213d00000016054000290000001f04500039000000000034004b000000000600001900000970060080410000097004400197000000000004004b00000000070000190000097007004041000009700040009c000000000706c019000000000007004b000000f90000c13d000000000451034f000000000604043b000009350060009c000000fe0000213d00000005076002100000003f047000390000096408400197000000400400043d0000000008840019000000000048004b00000000090000390000000109004039000009350080009c000000fe0000213d0000000100900190000000fe0000c13d000000400080043f000000000064043500000020055000390000000006570019000000000036004b000000f90000213d000000000065004b00000c050000813d0000000007040019000000000851034f000000000808043b000000200770003900000000008704350000002005500039000000000065004b00000bfe0000413d000000c00040043f0000002002200039000000000221034f000000000202043b000000e00020043f0000002402100370000000000202043b000009350020009c000000f90000213d0000002304200039000000000034004b000000000500001900000970050080410000097004400197000000000004004b00000000060000190000097006004041000009700040009c000000000605c019000000000006004b000000f90000c13d0000000404200039000000000441034f000000000604043b000009350060009c000000fe0000213d00000005056002100000003f045000390000096404400197000000400700043d0000000004470019001b00000007001d000000000074004b00000000070000390000000107004039000009350040009c000000fe0000213d0000000100700190000000fe0000c13d000000400040043f0000001b040000290000000004640436001a00000004001d00000024042000390000000005450019000000000035004b000000f90000213d000000000006004b000018bf0000c13d000009750100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000101043b002000000001001d0000093f0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000200010006b0000195b0000c13d000000800100043d00000000020104330000001b010000290000000001010433001900000002001d000000000012004b000019630000c13d000000190000006b00001ab90000c13d00000080010000390000001b0200002924bd1e080000040f0000000001000019000024be0001042e00000020050000290000002405500039000000000951034f000000000909043b000009340090009c000000f90000213d000000400b00043d000000200ab0003900000000009a0435000000200900003900000000009b043500080000000b001d0000097100b0009c000000fe0000213d00000008090000290000004009900039000000400090043f0000002009500039000000000591034f000000000505043b000009340050009c000000f90000213d0000012009900039000000000991034f000000000909043b000009700a900197000000000b8a013f00000000008a004b00000000080000190000097008004041000000000079004b000000000700001900000970070080410000097000b0009c000000000807c019000000000008004b000000f90000c13d000600030090002d0000000601100360000000000101043b000700000001001d000009350010009c000000f90000213d0000000701000029000000050110021000000000011400490000000604000029000000200940003900000970041001970000097007900197000000000847013f000000000047004b00000000040000190000097004004041000f00000009001d000000000019004b00000000010000190000097001002041000009700080009c000000000401c019000000000004004b000000f90000c13d0000000001000415000100000001001d000000090100002900000005011002100000003f011000390000096401100197000000400700043d0000000004170019001a00000007001d000000000074004b00000000010000390000000101004039000009350040009c000000fe0000213d0000000100100190000000fe0000c13d0000000001000031000000400040043f0000001a0400002900000009070000290000000004740436000500000004001d0000000004360019000000000014004b000000f90000213d000000000034004b00000cd50000a13d00000002060003670000001a0700002900000000083100490000096d0080009c000000f90000213d000000400080008c000000f90000413d000000400800043d000009710080009c000000fe0000213d0000004009800039000000400090043f000000000936034f000000000909043b000009340090009c000000f90000213d00000020077000390000000009980436000000200a300039000000000aa6034f000000000a0a043b0000000000a9043500000000008704350000004003300039000000000043004b00000cbd0000413d001209340050019b000400400020003d001b00000000001d000a00000000001d00000cdf0000013d0000001b020000290000000102200039001b00000002001d000000090020006c00001bc60000813d0000001b02000029000000070020006c00001cda0000813d0000001b010000290000000502100210001400000002001d0000000f022000290000000201000367000000000221034f000000000302043b0000000002000031000000060420006a0000003f0440008a00000970054001970000097006300197000000000756013f000000000056004b00000000050000190000097005004041000000000043004b00000000040000190000097004008041000009700070009c000000000504c019000000000005004b000000f90000c13d0000000f04300029000000000341034f000000000303043b000009350030009c000000f90000213d0000000006320049000000200540003900000970046001970000097007500197000000000847013f000000000047004b00000000040000190000097004004041000000000065004b00000000060000190000097006002041000009700080009c000000000406c019000000000004004b000000f90000c13d000000200030008c000000f90000413d000000000451034f000000000604043b000009350060009c000000f90000213d0000000004530019000000000556001900000000035400490000096d0030009c000000f90000213d000000800030008c000000f90000413d000000400300043d001900000003001d000009650030009c000000fe0000213d000000000651034f00000019030000290000008003300039000000400030043f000000000606043b000009350060009c000000f90000213d00000000085600190000001f06800039000000000046004b0000000007000019000009700700804100000970096001970000097006400197000000000a69013f000000000069004b000000000900001900000970090040410000097000a0009c000000000907c019000000000009004b000000f90000c13d000000000781034f000000000707043b000009350070009c000000fe0000213d0000001f09700039000009cd099001970000003f09900039000009cd099001970000000009390019000009350090009c000000fe0000213d0000002008800039000000400090043f00000000007304350000000009870019000000000049004b000000f90000213d000000000a81034f000009cd0b7001980000001908000029000000a0088000390000000009b8001900000d510000613d000000000c0a034f000000000d08001900000000ce0c043c000000000ded043600000000009d004b00000d4d0000c13d0000001f0c70019000000d5e0000613d000000000aba034f000000030bc00210000000000c090433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a904350000000007870019000000000007043500000019070000290000000003370436001c00000003001d0000002007500039000000000871034f000000000808043b000009350080009c000000f90000213d000000000a5800190000001f08a00039000000000048004b000000000900001900000970090080410000097008800197000000000b68013f000000000068004b000000000800001900000970080040410000097000b0009c000000000809c019000000000008004b000000f90000c13d0000000008a1034f000000000808043b000009350080009c000000fe0000213d0000001f09800039000009cd099001970000003f09900039000009cd0b900197000000400900043d000000000bb9001900000000009b004b000000000c000039000000010c0040390000093500b0009c000000fe0000213d0000000100c00190000000fe0000c13d000000200ca000390000004000b0043f000000000a890436000000000bc8001900000000004b004b000000f90000213d000000000cc1034f000009cd0d800198000000000bda001900000d970000613d000000000e0c034f000000000f0a001900000000e30e043c000000000f3f04360000000000bf004b00000d930000c13d0000001f0e80019000000da40000613d0000000003dc034f000000030ce00210000000000d0b0433000000000dcd01cf000000000dcd022f000000000303043b000001000cc000890000000003c3022f0000000003c301cf0000000003d3019f00000000003b043500000000038a001900000000000304350000001c0300002900000000009304350000002007700039000000000371034f000000000803043b000009350080009c000000f90000213d00000000085800190000001f03800039000000000043004b000000000500001900000970050080410000097003300197000000000963013f000000000063004b00000000030000190000097003004041000009700090009c000000000305c019000000000003004b000000f90000c13d000000000381034f000000000503043b000009350050009c000000fe0000213d0000001f03500039000009cd033001970000003f03300039000009cd03300197000000400600043d0000000009360019000000000069004b000000000a000039000000010a004039000009350090009c000000fe0000213d0000000100a00190000000fe0000c13d000000200a800039000000400090043f00000000085604360000000003a50019000000000043004b000000f90000213d0000000009a1034f000009cd0a5001980000000004a8001900000ddc0000613d000000000b09034f000000000c08001900000000b30b043c000000000c3c043600000000004c004b00000dd80000c13d0000001f0b50019000000de90000613d0000000003a9034f0000000309b00210000000000a040433000000000a9a01cf000000000a9a022f000000000303043b0000010009900089000000000393022f00000000039301cf0000000003a3019f00000000003404350000000003580019000000000003043500000019030000290000004003300039000e00000003001d00000000006304350000002003700039000000000331034f000000000403043b000009300040009c000000f90000213d00000019030000290000006003300039001700000003001d0000000000430435000000800400043d000000000004004b00000e040000613d0000001b0040006c00001cda0000a13d0000001403000029000000a0033000390000000003030433000009300430019800000e040000613d000000170300002900000000004304350000001b0500002900000006035002100000000403300029000000000331034f000000000303043b000d00000003001d0000001e0050006c00001cda0000813d0000001f0320006a00000014050000290000001d04500029000000000441034f000000000404043b000000430330008a00000970053001970000097006400197000000000756013f000000000056004b00000000050000190000097005004041000000000034004b00000000030000190000097003008041000009700070009c000000000503c019000000000005004b000000f90000c13d0000001d05400029000000000351034f000000000403043b000009350040009c000000f90000213d0000000003420049000000200650003900000970053001970000097007600197000000000857013f000000000057004b00000000050000190000097005004041000000000036004b00000000030000190000097003002041000009700080009c000000000503c019000000000005004b000000f90000c13d0000001f03400039000009cd033001970000003f03300039000009cd03300197000000400700043d0000000005370019001100000007001d000000000075004b00000000070000390000000107004039000009350050009c000000fe0000213d0000000100700190000000fe0000c13d000000400050043f000000110300002900000000054304360000000003640019000000000023004b000000f90000213d000000000261034f000009cd06400198000000000165001900000e510000613d000000000702034f0000000008050019000000007307043c0000000008380436000000000018004b00000e4d0000c13d0000001f0740019000000e5e0000613d000000000262034f0000000303700210000000000601043300000000063601cf000000000636022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000262019f0000000000210435000000000145001900000000000104350000000001000415000b00000001001d000000400100043d000009710010009c000000fe0000213d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000001c0100002900000000010104330000000023010434000000200030008c00001aa40000c13d0000000002020433001800000002001d000004000220008a000009720020009c00001aa40000213d000000400200043d00000974010000410000000000120435001c00000002001d0000000401200039000000180200002900000000002104350000097501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000201043b00000000010004140000093402200197000000040020008c00000e940000c13d0000000103000031000000200030008c0000002004000039000000000403401900000ebe0000013d0000001c03000029000009300030009c00000930030080410000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000977011001c724bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c0000002004000039000000000403401900000020064001900000001c0560002900000ead0000613d000000000701034f0000001c08000029000000007907043c0000000008980436000000000058004b00000ea90000c13d0000001f0740019000000eba0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001c060000613d0000001f01400039000000600210018f0000001c01200029000000000021004b00000000020000390000000102004039000009350010009c000000fe0000213d0000000100200190000000fe0000c13d000000400010043f000000200030008c000000f90000413d0000001c010000290000000001010433001c00000001001d000009340010009c000000f90000213d0000001c0000006b00001ab30000613d0000000001000415001500000001001d000000400100043d0000002002100039000009780400004100000000004204350000002403100039000000000043043500000024030000390000000000310435000009360010009c000000fe0000213d0000006003100039000000400030043f0000001c03000029000000040030008c00000ee70000c13d0000000001020433000000000010043f000000010300003100000f120000013d000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001c0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c00000020050000390000000005034019000000200450019000000f000000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000efc0000c13d0000001f0550019000000f0d0000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000010020019000001ab00000613d000000000100043d000000200030008c00001ab00000413d000000000001004b00001ab00000613d000000400100043d00000020021000390000097804000041000000000042043500000024041000390000097a05000041000000000054043500000024040000390000000000410435000009360010009c000000fe0000213d0000006004100039000000400040043f0000001c04000029000000040040008c00000f290000c13d0000000001020433000000000010043f00000f5b0000013d000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001c0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c00000020050000390000000005034019000000200450019000000f420000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000f3e0000c13d0000001f0550019000000f4f0000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350003000000010355000100000003001f0000001f0030008c00000000010000390000000101002039000000000112016f0000000002000415000000260220008a0016000500200218000000010010008c00000f600000c13d000000000100043d0000000002000415000000250220008a0016000500200218000000000001004b00001ab00000c13d000000400100043d00000020021000390000097804000041000000000042043500000024041000390000097b05000041000000000054043500000024040000390000000000410435000009360010009c000000fe0000213d0000006004100039000000400040043f0000001c04000029000000040040008c00000f730000c13d0000000001020433000000000010043f00000f9e0000013d000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001c0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c00000020050000390000000005034019000000200450019000000f8c0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000f880000c13d0000001f0550019000000f990000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000010020019000001aad0000613d000000000100043d000000200030008c00001aad0000413d000000000001004b00000016010000290000000501100270000000000100003f000000010100c03f00000000010004150000001501100069000000000100000200001ab30000613d00000017010000290000000001010433000000400400043d00000020034000390000097c02000041000c00000003001d000000000023043500000024024000390000001203000029000000000032043500000024020000390000000000240435001700000004001d000009360040009c000000fe0000213d00000017030000290000006002300039001600000002001d000000400020043f0000097d0030009c000000fe0000213d001509300010019b00000017040000290000012001400039000000400010043f000000840200003900000016030000290000000000230435000000800340003900000000020000310000000202200367001300000003001d000000002402043c0000000003430436000000000013004b00000fc90000c13d0000097e010000410000000000100443000000180100002900000004001004430000000001000414000009300010009c0000093001008041000000c0011002100000097f011001c7000080020200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000000001004b00001a8b0000613d0000000001000414000013880110008c00001a8f0000413d00000006021002700000000001210049000000150010006c00001a930000a13d0000000c01000029000009300010009c000009300100804100000040011002100000000002000414000c00000002001d00000017020000290000000002020433000009300020009c00000930020080410000006002200210000000000112019f0000001502000029000000c002200210000000000121019f000000180200002924bd24b30000040f000300000001035500000000030100190000006003300270000109300030019d0000093005300197000000840050008c0000008405008039000000000300041400000016040000290000000000540435000000e0065001900000001304600029000010080000613d000000000701034f0000001308000029000000007907043c0000000008980436000000000048004b000010040000c13d0000001f05500190000010150000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000010020019000001bd50000613d00000016010000290000000001010433000000200010008c00001a970000c13d0000000c013000690015001500100073000001400000413d000000400100043d001700000001001d000009830010009c000000fe0000213d0000000e010000290000000001010433000e00000001001d00000019010000290000000001010433001900000001001d00000013010000290000000001010433000c00000001001d00000017020000290000010001200039000000400010043f00000008010000290000000001120436001600000001001d0000097501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000601043b0000001709000029000000e00190003900000011020000290000000000210435000000c0029000390000000e030000290000000000320435000000a0039000390000001904000029000000000043043500000080049000390000001805000029000000000054043500000060059000390000000d070000290000000000750435000000400790003900000012080000290000000000870435000009350660019700000016080000290000000000680435000000400b00043d0000002008b000390000098406000041001300000008001d00000000006804350000002406b000390000002008000039000000000086043500000000060904330000004408b0003900000100090000390000000000980435000001440ab00039000000009806043400000000008a043500190000000b001d0000016406b00039000000000008004b000010720000613d000000000a000019000000000b6a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b0000106b0000413d00000000096800190000000000090435000000160900002900000000090904330000093509900197000000190b000029000000640ab0003900000000009a0435000000000707043300000934077001970000008409b0003900000000007904350000000005050433000000a407b00039000000000057043500000000040404330000093404400197000000c405b0003900000000004504350000001f04800039000009cd04400197000000e405b00039000000000303043300000120074000390000000000750435000000000664001900000000540304340000000003460436000000000004004b000010980000613d000000000600001900000000073600190000000008650019000000000808043300000000008704350000002006600039000000000046004b000010910000413d000000000534001900000000000504350000001f04400039000009cd04400197000000000534001900000019040000290000000003450049000000440330008a00000000020204330000010404400039000000000034043500000000430204340000000002350436000000000003004b000010af0000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000035004b000010a80000413d000000000423001900000000000404350000001f03300039000009cd03300197000000000223001900000019040000290000000003420049000000440330008a00000000010104330000012404400039000000000034043500000000310104340000000002120436000000000001004b000010c60000613d000000000400001900000000052400190000000006430019000000000606043300000000006504350000002004400039000000000014004b000010bf0000413d00000000032100190000000000030435000000190400002900000000024200490000001f01100039000009cd011001970000000001210019000000200210008a00000000002404350000001f01100039000009cd011001970000000002410019000000000012004b00000000010000390000000101004039001700000002001d000009350020009c000000fe0000213d0000000100100190000000fe0000c13d0000001701000029000000400010043f000009850010009c000000fe0000213d0000001703000029000000c001300039000000400010043f0000008402000039000000000323043600000000020000310000000202200367001600000003001d000000002402043c0000000003430436000000000013004b000010e60000c13d0000097e0100004100000000001004430000001c0100002900000004001004430000000001000414000009300010009c0000093001008041000000c0011002100000097f011001c7000080020200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000000001004b00001a8b0000613d0000000001000414000013880110008c00001a8f0000413d00000006021002700000000001210049000000150010006c00001a930000a13d0000000001000414001100000001001d0000001c01000029000000040010008c0000110a0000c13d000000030100036700000001040000310000000002000019000011210000013d0000001301000029000009300010009c0000093001008041000000400110021000000019020000290000000002020433000009300020009c00000930020080410000006002200210000000000112019f0000001502000029000009300020009c0000093002008041000000c002200210000000000121019f0000001c0200002924bd24b30000040f000000010220015f000300000001035500000000030100190000006003300270000109300030019d00000930043001970000000003000414000000840040008c000000840400803900000017050000290000000000450435000000e00640019000000016056000290000112f0000613d000000000701034f0000001608000029000000007907043c0000000008980436000000000058004b0000112b0000c13d0000001f044001900000113c0000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000010020019000001bdf0000c13d00000017010000290000000001010433000000200010008c00001a970000c13d00000016010000290000000001010433001900000001001d0000001c02000029000000120020006b000011c50000613d00000011013000690016001500100073000001400000413d000000400300043d00000020023000390000097c01000041001300000002001d000000000012043500000024013000390000001202000029000000000021043500000024010000390000000000130435001c00000003001d000009360030009c000000fe0000213d0000001c020000290000006001200039001700000001001d000000400010043f0000097d0020009c000000fe0000213d0000001c040000290000012001400039000000400010043f000000840200003900000017030000290000000000230435000000800340003900000000020000310000000202200367001500000003001d000000002402043c0000000003430436000000000013004b000011680000c13d0000097e010000410000000000100443000000180100002900000004001004430000000001000414000009300010009c0000093001008041000000c0011002100000097f011001c7000080020200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000000001004b00001a8b0000613d0000000001000414000013880110008c00001a8f0000413d00000006021002700000000001210049000000160010006c00001a930000a13d0000001301000029000009300010009c000009300100804100000040011002100000000002000414001300000002001d0000001c020000290000000002020433000009300020009c00000930020080410000006002200210000000000112019f0000001602000029000009300020009c0000093002008041000000c002200210000000000121019f000000180200002924bd24b30000040f000300000001035500000000030100190000006003300270000109300030019d0000093005300197000000840050008c0000008405008039000000000300041400000017040000290000000000540435000000e0065001900000001504600029000011a90000613d000000000701034f0000001508000029000000007907043c0000000008980436000000000048004b000011a50000c13d0000001f05500190000011b60000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000010020019000001c120000613d00000017010000290000000001010433000000200010008c00001a970000c13d0000001301300069000000160010006c000001400000213d000000150100002900000000010104330000000c0210006c00001c260000413d000000190020006c00001c260000c13d000000400100043d000009710010009c000000fe0000213d0000004002100039000000400020043f0000002002100039000000190300002900000000003204350000001802000029000000000021043500000000020004150000000b0220006900000000020000020000001a0200002900000000020204330000001b0020006c00001cda0000a13d00000014030000290000000502300029001c00000002001d00000000001204350000001a0200002900000000020204330000001b0020006c00001cda0000a13d00000000010104330000093401100197000000000010043f0000000d01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000101041a000000000001004b00000cda0000613d0000001a0100002900000000010104330000001b0010006c00001cda0000a13d0000000b01000039000000000201041a0000001c010000290000000001010433001700000001001d0000000031010434001800000003001d000000400400043d00000988030000410000000003340436001900000003001d0000093401100197001c00000004001d0000000403400039000000000013043500000000010004140000093402200197000000040020008c0000120c0000c13d0000000103000031000000400030008c00000040040000390000000004034019000012360000013d0000001c03000029000009300030009c00000930030080410000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000977011001c724bd24b80000040f000000000301001900000060033002700000093003300197000000400030008c0000004004000039000000000403401900000060064001900000001c05600029000012250000613d000000000701034f0000001c08000029000000007907043c0000000008980436000000000058004b000012210000c13d0000001f07400190000012320000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001c360000613d0000001f01400039000000e00210018f0000001c01200029000000000021004b00000000020000390000000102004039000009350010009c000000fe0000213d0000000100200190000000fe0000c13d000000400010043f000000400030008c000000f90000413d000009710010009c000000fe0000213d0000004002100039000000400020043f0000001c020000290000000002020433000009890020009c000000f90000213d000000000121043600000019030000290000000003030433000009300030009c000000f90000213d0000000000310435000000000002004b00001bf90000613d0000001801000029000000000301043300000000012300a900000000022100d9000000000032004b000001400000c13d0000098a0110012a0000000a0010002a000001400000413d000a000a0010002d00000cda0000013d000000400300043d0000094001000041001a00000003001d00000000001304350000000001000414000000040020008c0000126a0000c13d0000000103000031000000200030008c00000020040000390000000004034019000012950000013d0000001a03000029000009300030009c00000930030080410000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000941011001c724bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001a05700029000012840000613d000000000801034f0000001a09000029000000008a08043c0000000009a90436000000000059004b000012800000c13d000000000006004b000012910000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013030000613d0000001f01400039000000600110018f0000001a02100029000000000012004b00000000010000390000000101004039000009350020009c000000fe0000213d0000000100100190000000fe0000c13d000000400020043f000000200030008c000000f90000413d0000001a010000290000000001010433000009350010009c000000f90000213d000000010010008c000014a90000c13d000000160100002900000000010104330000093401100197000000a00010043f0000001f0100002900000000010104330000093501100197000000c00010043f000000200300002900000000030304330000093503300197000000e00030043f0000001e0400002900000000040404330000093404400197000001000040043f0000001d0500002900000000050504330000093405500197000001400050043f0000001c0500002900000000050504330000093405500197000001600050043f0000001b0500002900000000050504330000093405500197000001800050043f00000080052000390000000000450435000000600420003900000000003404350000004003200039000000000013043500000020012000390000094303000041000000000031043500000080030000390000000000320435000009390020009c000000fe0000213d000000a003200039000000400030043f000000000202043324bd24800000040f000001200010043f000000800200043d000001400000044300000160002004430000002002000039000000a00300043d0000018000200443000001a0003004430000004003000039000000c00400043d000001c000300443000001e0004004430000006003000039000000e00400043d00000200003004430000022000400443000001000300043d000000800400003900000240004004430000026000300443000000a0030000390000028000300443000002a000100443000000c001000039000001400300043d000002c000100443000002e000300443000000e001000039000001600300043d000003000010044300000320003004430000010001000039000001800300043d000003400010044300000360003004430000010000200443000000090100003900000120001004430000094401000041000024be0001042e000009a901000041000000000010043f0000003101000039000000040010043f0000097701000041000024bf000104300000001f0530018f0000093206300198000000400200043d0000000004620019000008ca0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000130a0000c13d000008ca0000013d001b01200000003d00000020020000290017002000200092000013240000013d0000001e0400002900000160024000390000001c0300002900000000003204350000001d02000029000001a002200039000000000221034f000000000202043b000001800340003900000000002304350000001b020000290000000002420436001b00000002001d0000001a030000290000002003300039000000180030006c000005c40000813d001a00000003001d000000000331034f000000000303043b000009350030009c000000f90000213d0000001903300029001d00000003001d00000017033000690000096d0030009c000000f90000213d000001a00030008c000000f90000413d000000400200043d001e00000002001d0000099a0020009c000000fe0000213d0000001e02000029000001a003200039000000400030043f0000001d020000290000002003200039000000000431034f000000000404043b000009350040009c000000f90000213d0000001e0200002900000000044204360000002003300039000000000531034f000000000505043b000009340050009c000000f90000213d00000000005404350000002003300039000000000431034f000000000404043b000009340040009c000000f90000213d0000001e02000029000000400520003900000000004504350000002003300039000000000431034f000000000404043b000009350040009c000000f90000213d0000001e02000029000000600520003900000000004504350000002004300039000000000441034f000000000404043b000000800520003900000000004504350000004003300039000000000431034f000000000404043b000000000004004b0000000005000039000000010500c039000000000054004b000000f90000c13d0000001e02000029000000a00520003900000000004504350000002003300039000000000431034f000000000404043b000009350040009c000000f90000213d0000001e02000029000000c00520003900000000004504350000002003300039000000000431034f000000000404043b000009340040009c000000f90000213d0000001e02000029000000e00520003900000000004504350000002004300039000000000441034f000000000404043b000001000520003900000000004504350000004003300039000000000431034f000000000404043b000009350040009c000000f90000213d0000001d074000290000003f047000390000002002000029000000000024004b000000000500001900000970050080410000097004400197000009700d2001970000000006d4013f0000000000d4004b00000000040000190000097004004041000009700060009c000000000405c019000000000004004b000000f90000c13d0000002006700039000000000461034f000000000404043b000009350040009c000000fe0000213d0000001f05400039000009cd055001970000003f05500039000009cd08500197000000400500043d0000000008850019000000000058004b00000000090000390000000109004039000009350080009c000000fe0000213d0000000100900190000000fe0000c13d0000004009700039000000400080043f00000000074504360000000008940019000000200080006c000000f90000213d0000002006600039000000000661034f000009cd094001980000000008970019000013b20000613d000000000b06034f000000000c07001900000000ba0b043c000000000cac043600000000008c004b000013ae0000c13d0000001f0a400190000013bf0000613d000000000696034f0000000309a00210000000000a080433000000000a9a01cf000000000a9a022f000000000606043b0000010009900089000000000696022f00000000069601cf0000000006a6019f0000000000680435000000000447001900000000000404350000001e02000029000001200420003900000000005404350000002003300039000000000431034f000000000404043b000009350040009c000000f90000213d0000001d054000290000003f04500039000000200040006c0000000006000019000009700600804100000970044001970000000007d4013f0000000000d4004b00000000040000190000097004004041000009700070009c000000000406c019000000000004004b000000f90000c13d0000002004500039000000000441034f000000000604043b000009350060009c000000fe0000213d00000005046002100000003f044000390000096407400197000000400400043d0000000007740019000000000047004b00000000080000390000000108004039000009350070009c000000fe0000213d0000000100800190000000fe0000c13d0000004005500039000000400070043f000000000064043500000006066002100000000007560019000000200070006c000000f90000213d000000000057004b0000140a0000a13d000000000804001900000020065000690000096d0060009c000000f90000213d000000400060008c000000f90000413d000000400600043d000009710060009c000000fe0000213d0000004009600039000000400090043f000000000951034f000000000909043b000009340090009c000000f90000213d00000020088000390000000009960436000000200a500039000000000aa1034f000000000a0a043b0000000000a9043500000000006804350000004005500039000000000075004b000013f20000413d0000001e02000029000001400520003900000000004504350000002003300039000000000331034f000000000303043b000009350030009c000000f90000213d0000001d033000290000003f04300039000000200040006c0000000005000019000009700500804100000970044001970000000006d4013f0000000000d4004b00000000040000190000097004004041000009700060009c000000000405c019000000000004004b000000f90000c13d000000200e3000390000000004e1034f000000000404043b000009350040009c000000fe0000213d00000005064002100000003f056000390000096405500197000000400200043d0000000005520019001c00000002001d000000000025004b00000000070000390000000107004039000009350050009c000000fe0000213d0000000100700190000000fe0000c13d000000400050043f0000001c02000029000000000042043500000040043000390000000003460019000000200030006c000000f90000213d000000000034004b000013130000813d0000001c0f000029000014440000013d000000200ff0003900000000027a0019000000000002043500000000009f04350000002004400039000000000034004b000013130000813d000000000541034f000000000505043b000009350050009c000000f90000213d0000000008e500190000003f05800039000000200050006c0000000006000019000009700600804100000970055001970000000007d5013f0000000000d5004b00000000050000190000097005004041000009700070009c000000000506c019000000000005004b000000f90000c13d0000002006800039000000000561034f000000000705043b000009350070009c000000fe0000213d0000001f05700039000009cd055001970000003f05500039000009cd05500197000000400900043d000000000b59001900000000009b004b000000000500003900000001050040390000093500b0009c000000fe0000213d0000000100500190000000fe0000c13d00000040058000390000004000b0043f000000000a7904360000000005570019000000200050006c000000f90000213d0000002005600039000000000551034f000009cd0c7001980000000006ca0019000014790000613d000000000b05034f00000000080a001900000000b20b043c0000000008280436000000000068004b000014750000c13d0000001f087001900000143d0000613d0000000002c5034f0000000305800210000000000806043300000000085801cf000000000858022f000000000202043b0000010005500089000000000252022f00000000025201cf000000000282019f00000000002604350000143d0000013d0000000002000415000000240220008a001e000500200218002400000000003d0000001f02000029001d00e0002000920000001d01100360000000000101043b000009340010009c000000f90000213d0000097e02000041000000000020044300000004001004430000000001000414000009300010009c0000093001008041000000c0011002100000097f011001c7000080020200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000000000001004b0000001e010000290000000501100270000000000100003f000000010100603f000014b70000c13d0000000001000415000000100110006900000000010000020000000001000019000024be0001042e000009420100004100000aaa0000013d0000001e0000006b000014d20000c13d000000400100043d000009c002000041000000000021043500000004021000390000000000020435000009300010009c0000093001008041000000400110021000000977011001c7000024bf000104300000001d010000290000000201100367000000000101043b001e00000001001d000009340010009c000000f90000213d0000000001000415001c00000001001d000000400100043d0000002002100039000009780300004100000000003204350000002404100039000000000034043500000024030000390000000000310435000009360010009c000000fe0000213d0000006003100039000000400030043f0000001e03000029000000040030008c0000187c0000c13d0000000001020433000000000010043f0000000103000031000018a80000013d000000000100041a00000934011001970000000002000411000000000012004b000017c80000c13d0000001d0100002900000000010104330000096d0010009c000000f90000213d000000a00010008c000000f90000413d000000400100043d001800000001001d000009390010009c000000fe0000213d0000001801000029000000a001100039000000400010043f0000001c010000290000000001010433000009300010009c000000f90000213d00000018020000290000000002120436001700000002001d0000001d0200002900000040022000390000000002020433000009300020009c000000f90000213d000000170300002900000000002304350000001d03000029000000600330003900000000040304330000ffff0040008c000000f90000213d00000018030000290000004003300039001600000003001d00000000004304350000001d0300002900000080033000390000000005030433000009340050009c000000f90000213d00000018030000290000006003300039001400000003001d00000000005304350000001d03000029000000a0033000390000000003030433000009340030009c000000f90000213d00000018060000290000008006600039001300000006001d0000000000360435000000000005004b00000aa00000613d0000004004400210000009ba044001970000002002200210000009bb02200197000000000242019f0000005004500210000009bc04400197000000000242019f0000000a04000039000000000504041a000009bd05500197000000000252019f000000000112019f000000000014041b0000000b01000039000000000201041a0000093802200197000000000232019f000000000021041b000000400100043d001200000001001d000009330010009c000000fe0000213d0000001201000029000000e001100039000000400010043f0000097501000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000101043b000009340110019700000012020000290000000001120436001100000001001d0000097501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000101043b0000093501100197000000110200002900000000001204350000097501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d00000012020000290000004002200039000000000101043b0000093501100197001000000002001d000000000012043500000975010000410000000000100443000000000100041200000004001004430000008001000039001500000001001d00000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d00000012020000290000006002200039000000000101043b0000093401100197000f00000002001d00000000001204350000097501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d00000012020000290000008002200039000000000101043b0000093401100197000e00000002001d00000000001204350000097501000041000000000010044300000000010004120000000400100443000000e00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d0000001202000029000000a002200039000000000101043b0000093401100197000d00000002001d00000000001204350000097501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000101043b00000934011001970000001203000029000000c002300039000000000012043500000000010304330000093403100197000000400100043d00000000033104360000001104000029000000000404043300000935044001970000000000430435000000100300002900000000030304330000093503300197000000400410003900000000003404350000000f0300002900000000030304330000093403300197000000600410003900000000003404350000000e0300002900000000030304330000093403300197000000800410003900000000003404350000000d0300002900000000030304330000093403300197000000a004100039000000000034043500000000020204330000093402200197000000c0031000390000000000230435000000180200002900000000020204330000093002200197000000e003100039000000000023043500000017020000290000000002020433000009300220019700000100031000390000000000230435000000160200002900000000020204330000ffff0220018f000001200310003900000000002304350000001402000029000000000202043300000934022001970000014003100039000000000023043500000013020000290000000002020433000009340220019700000160031000390000000000230435000009300010009c000009300100804100000040011002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009be011001c70000800d020000390000000103000039000009bf0400004124bd24b30000040f0000000100200190000000f90000613d0000000901000039000000000101041a001700000001001d000000000001004b000016220000613d001800000000001d0000000901000039000000000101041a000000180010006c00001cda0000a13d00000018010000290000099e0110009a000000000101041a0000093401100197000000000010043f0000000801000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000001041b00000018020000290000000102200039001800000002001d000000170020006c000016070000413d00000020010000290000000001010433001300000001001d000000000001004b00000000010000190000167e0000613d001800000000001d00000020010000290000000001010433000000180010006c00001cda0000a13d000000180100002900000005011002100000001f0110002900000000010104330000093401100197001600000001001d000000000010043f0000000801000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000101041a0000000801100270000000ff0110018f000000030010008c000018760000813d000000400200043d001700000002001d000000000001004b00001d020000c13d000000160000006b00001d0d0000613d0000001701000029000009710010009c000000fe0000213d00000017020000290000004001200039000000400010043f0000001801000029000000ff0110018f00000000021204360000000201000039001400000002001d00000000001204350000001601000029000000000010043f0000000801000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000000000201041a000009ce0220019700000017030000290000000003030433000000ff0330018f000000000232019f000000000021041b00000014030000290000000003030433000000020030008c000018760000213d000009cf0220019700000008033002100000ff000330018f000000000223019f000000000021041b00000018020000290000000102200039001800000002001d000000130020006c000016290000413d00000020010000290000000001010433000009350010009c000000fe0000213d0000000902000039000000000302041a000000000012041b000000000031004b0000168b0000813d0000099e0210009a0000099e0330009a000000000032004b0000168b0000813d000000000002041b0000000102200039000000000032004b000016870000413d0000000902000039000000000020043f000000000001004b000016990000613d000000000200001900000020030000290000002003300039000000000403043300000934044001970000099e0520009a000000000045041b0000000102200039000000000012004b000016910000413d0000000601000039000000000201041a000009c202200197000000130300002900000008033002100000ff000330018f000000000223019f0000001e022001af000000000021041b0000000701000039000000000101041a0000093002100197000009300020009c000001400000613d000009c301100197001f00010020003d0000001f011001af0000000702000039000000000012041b0000093f0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000301043b000000400100043d00000080021000390000012004000039000000000042043500000060021000390000001f0400002900000000004204350000000002000410000009340220019700000040041000390000000000240435000000200210003900000000003204350000014003100039000000800400043d00000000004304350000016003100039000000000004004b000016d50000613d000000000500001900000015060000290000002006600039001500000006001d0000000006060433000009340660019700000000036304360000000105500039000000000045004b000016cc0000413d0000000004130049000000200440008a000000a0051000390000000000450435000000200400002900000000040404330000000003430436000000000004004b000016e70000613d0000000005000019000000200600002900000020066000390000000007060433000009340770019700000000037304360000000105500039000000000045004b000016e00000413d000000c0041000390000001e0500002900000000005404350000000004130049000000200440008a000000e00510003900000000004504350000001d0400002900000000040404330000000003430436000000000004004b000016fb0000613d000000000500001900000000063500190000001c07500029000000000707043300000000007604350000002005500039000000000045004b000016f40000413d000000000534001900000000000504350000001f04400039000009cd0440019700000000043400190000000003140049000000200330008a000001200510003900000000003504350000001b0300002900000935053001970000010003100039001f00000005001d00000000005304350000001a0300002900000000030304330000000004340436000000000003004b000017160000613d000000000500001900000000064500190000001907500029000000000707043300000000007604350000002005500039000000000035004b0000170f0000413d0000000005430019000000000005043500000000041400490000001f03300039000009cd033001970000000003430019000000200430008a00000000004104350000001f03300039000009cd043001970000000003140019000000000043004b00000000040000390000000104004039000009350030009c000000fe0000213d0000000100400190000000fe0000c13d000000400030043f000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000000101043b000009c401100197000009c5011001c70000000502000039000000000012041b0000000701000039000000000101041a001b00000001001d000009c60100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000000101043b0000002001100210000009bb011001970000000704000039000000000204041a000009c703200197000000000113019f000000000014041b0000000501000039000000000301041a000000400100043d000000600410003900000120050000390000000000540435000009300220019700000040041000390000000000240435000000200210003900000000003204350000001b020000290000002002200270000009300220019700000000002104350000012002100039000000800300043d00000000003204350000014002100039000000000003004b000017740000613d0000008004000039000000000500001900000020044000390000000006040433000009340660019700000000026204360000000105500039000000000035004b0000176d0000413d000000000312004900000080041000390000000000340435000000200300002900000000030304330000000002320436000000000003004b000017860000613d000000000400001900000020050000290000002005500039002000000005001d0000000005050433000009340550019700000000025204360000000104400039000000000034004b0000177d0000413d0000000003120049000000c0041000390000000000340435000000a0031000390000001e0400002900000000004304350000001d0300002900000000030304330000000002320436000000000003004b000017990000613d000000000400001900000000052400190000001c06400029000000000606043300000000006504350000002004400039000000000034004b000017920000413d00000000042300190000000000040435000000e0041000390000001f0500002900000000005404350000001f03300039000009cd0330019700000000022300190000000003120049000001000410003900000000003404350000001a0300002900000000030304330000000002320436000000000003004b000017b10000613d000000000400001900000000052400190000001906400029000000000606043300000000006504350000002004400039000000000034004b000017aa0000413d000000000423001900000000000404350000001f03300039000009cd0330019700000000021200490000000002320019000009300020009c00000930020080410000006002200210000009300010009c00000930010080410000004001100210000000000112019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c70000800d020000390000000103000039000009c804000041000007970000013d000000400100043d0000004402100039000009ae03000041000000000032043500000024021000390000001603000039000000000032043500000946020000410000000000210435000000040210003900000020030000390000000000320435000009300010009c0000093001008041000000400110021000000947011001c7000024bf000104300000001902000029000000a00020043f00000014020000290000004003200039000000000231034f000000000502043b000009350050009c000000f90000213d00000014055000290000001f02500039000000200020006c000000000600001900000970060080410000097002200197000000000742013f000000000042004b00000000020000190000097002004041000009700070009c000000000206c019000000000002004b000000f90000c13d000000000251034f000000000602043b000009350060009c000000fe0000213d00000005076002100000003f027000390000096402200197000000400400043d0000000008240019000000000048004b00000000090000390000000109004039000009350080009c000000fe0000213d0000000100900190000000fe0000c13d000000400080043f000000000064043500000020055000390000000006570019000000200060006c000000f90000213d000000000065004b0000180f0000813d0000000002040019000000000751034f000000000707043b000000200220003900000000007204350000002005500039000000000065004b000018080000413d000000c00040043f0000002002300039000000000121034f000000000101043b000000e00010043f000000400200043d0000096f0020009c000000fe0000213d0000002001200039000000400010043f0000000000020435000000800100003924bd1e080000040f0000000501000039000000000101041a00000004020000390000000202200367000000000202043b002000000002001d000000000021004b00001bf00000c13d000009750100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f000000010020019000001c600000613d000000000101043b001e00000001001d0000093f0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d000000400200043d000000000101043b0000001e0010006b00001c610000c13d00000024010000390000000201100367000000000101043b000000080110027000000930011001970000002003200039000000000013043500000020010000290000000000120435000009300020009c000009300200804100000040012002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f00000967011001c70000800d0200003900000001030000390000099d0400004124bd24b30000040f0000000100200190000000f90000613d00000000010004110000093401100197000000000010043f0000000801000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000000f90000613d000000400200043d000009710020009c000000fe0000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f00000000021204360000000803300270000000ff0330018f000000020030008c00001cba0000a13d000009a901000041000000000010043f0000002101000039000000040010043f0000097701000041000024bf00010430000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001e0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002004400190000018960000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000018920000c13d000000000005004b000018a30000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000010020019000001a870000613d000000000100043d000000200030008c00001a870000413d000000000001004b00001a870000613d000000400100043d00000020021000390000097804000041000000000042043500000024041000390000097a05000041000000000054043500000024040000390000000000410435000009360010009c000000fe0000213d0000006004100039000000400040043f0000001e04000029000000040040008c000019100000c13d0000000001020433000000000010043f000019430000013d000000240630008a0000001a07000029000018c70000013d0000000000a9043500000000078704360000002004400039000000000054004b00000c360000813d000000000841034f000000000808043b000009350080009c000000f90000213d000000000a2800190000000008a600490000096d0080009c000000f90000213d000000400080008c000000f90000413d000000400800043d000009710080009c000000fe0000213d0000004009800039000000400090043f0000002409a00039000000000991034f000000000909043b0000000009980436000000440ba00039000000000bb1034f000000000b0b043b0000093500b0009c000000f90000213d000000000bab0019000000430ab0003900000000003a004b000000000c000019000009700c008041000009700aa0019700000000000a004b000000000d000019000009700d0040410000097000a0009c000000000d0cc01900000000000d004b000000f90000c13d000000240ab00039000000000aa1034f000000000c0a043b0000093500c0009c000000fe0000213d000000050dc002100000003f0ad00039000009640ea00197000000400a00043d000000000eea00190000000000ae004b000000000f000039000000010f0040390000093500e0009c000000fe0000213d0000000100f00190000000fe0000c13d0000004000e0043f0000000000ca0435000000440bb00039000000000cbd001900000000003c004b000000f90000213d0000000000cb004b000018c20000813d000000000d0a0019000000000eb1034f000000000e0e043b0000093000e0009c000000f90000213d000000200dd000390000000000ed0435000000200bb000390000000000cb004b000019060000413d000018c20000013d000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001e0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0540018f00000020044001900000192a0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000019260000c13d000000000005004b000019370000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350003000000010355000100000003001f0000001f0030008c00000000010000390000000101002039000000000112016f0000000002000415000000220220008a001b000500200218000000010010008c000019480000c13d000000000100043d0000000002000415000000210220008a001b000500200218000000000001004b00001a870000c13d000000400100043d00000020021000390000097804000041000000000042043500000024041000390000099705000041000000000054043500000024040000390000000000410435000009360010009c000000fe0000213d0000006004100039000000400040043f0000001e04000029000000040040008c000019660000c13d0000000001020433000000000010043f000019920000013d000000400200043d000000240320003900000000001304350000099c0100004100000000001204350000000401200039000000200300002900001a9e0000013d000000400100043d000009a30200004100000aa20000013d000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f00000979011001c70000001e0200002924bd24b80000040f000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002004400190000019800000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b0000197c0000c13d000000000005004b0000198d0000613d000000000641034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f0000000000540435000100000003001f0003000000010355000000010020019000001a840000613d000000000100043d000000200030008c00001a840000413d000000000001004b0000001b010000290000000501100270000000000100003f000000010100c03f00000000010004150000001c011000690000000001000002000014a40000613d0000001d01000029000000400310008a0000000202000367000000000432034f0000000a01000039000000000101041a000000000704043b000009350070009c000000f90000213d0000002003300039000000000332034f000000000303043b000009340030009c000000f90000213d000000400400043d0000002005400039000000000035043500000020030000390000000000340435000009710040009c000000fe0000213d0000004003400039000000400030043f0000001f052003600000000009000031000000200690006a000000230660008a000000000505043b0000097008500197000009700a600197000000000ba8013f0000000000a8004b00000000080000190000097008004041000000000065004b000000000600001900000970060080410000097000b0009c000000000806c019000000000008004b000000f90000c13d0000000306500029000000000562034f000000000505043b000009350050009c000000f90000213d0000000008590049000000200c6000390000097006800197000009700ac00197000000000b6a013f00000000006a004b0000000006000019000009700600404100000000008c004b000000000800001900000970080020410000097000b0009c000000000608c019000000000006004b000000f90000c13d000009390030009c000000fe0000213d000000e006400039000000400060043f0000001f06000029000000600a6000390000000006a2034f000000000606043b000000000063043500000080064000390000000000460435000000600840003900000000007804350000001f07500039000009cd077001970000003f07700039000009cd07700197000000400b00043d00000000077b00190000000000b7004b000000000d000039000000010d004039000009350070009c000000fe0000213d0000000100d00190000000fe0000c13d000000400070043f000000000d5b04360000000007c50019000000000097004b000000f90000213d0020000000c20353001f09cd0050019c0000001f0e50018f0000001f09d0002900001a040000613d000000200f00035f00000000070d001900000000fc0f043c0000000007c70436000000000097004b00001a000000c13d00000000000e004b00001a120000613d0000001f0c0000290000002007c0035f000000030ce00210000000000e090433000000000ece01cf000000000ece022f000000000707043b000001000cc000890000000007c7022f0000000007c701cf0000000007e7019f000000000079043500000000055d00190000000000050435000000c0074000390000001a050000290000000000570435000000a0094000390000000000b904350000014005a0008a000000000452034f000000000404043b000009340040009c000000f90000213d000000400b00043d000009980a000041000000000aab0436001f0000000a001d0000004005500039000000000252034f000000000502043b0000000402b00039000000800a0000390000000000a2043500000000020304330000008403b00039000000000023043500000000020804330000093502200197000000a403b0003900000000002304350000000002060433000000c403b00039000000a00600003900000000006304350000012408b000390000000063020434000000000038043500200000000b001d0000014402b00039000000000003004b00001a420000613d0000000008000019000000000a280019000000000b860019000000000b0b04330000000000ba04350000002008800039000000000038004b00001a3b0000413d0000005001100270000000000623001900000000000604350000001f03300039000009cd0330019700000000060904330000002008000029000000e408800039000000c0093000390000000000980435000000000323001900000000260604340000000003630436000000000006004b00001a590000613d00000000080000190000000009380019000000000a820019000000000a0a04330000000000a904350000002008800039000000000068004b00001a520000413d0000093402100197000000000136001900000000000104350000001f01600039000009cd01100197000000000131001900000020080000290000000003810049000000840630008a00000000030704330000010407800039000000000067043500000000060304330000000001610436000000000006004b00001a750000613d0000000007000019000000200330003900000000080304330000000098080434000009340880019700000000088104360000000009090433000000000098043500000040011000390000000107700039000000000067004b00001a6a0000413d0000093403400197000000200600002900000064046000390000000000340435000000440360003900000000005304350000002403600039000013880400003900000000004304350000000003000414000000040020008c00001d100000c13d0000000301000367000000010300003100001d250000013d0000001b010000290000000501100270000000000100003f00000000010004150000001c011000690000000001000002000014a40000013d0000099501000041000000000010043f0000094101000041000024bf000104300000099401000041000000000010043f0000094101000041000024bf000104300000098601000041000000000010043f0000094101000041000024bf00010430000000400200043d0000002403200039000000000013043500000981010000410000000000120435000000040120003900000020030000390000000000310435000009300020009c0000093002008041000000400120021000000982011001c7000024bf00010430000000400400043d002000000004001d00000973020000410000000000240435000000040240003900000020030000390000000000320435000000240240003900001c1b0000013d00000016010000290000000501100270000000000100003f000000000100041500000015011000690000000001000002000000400100043d0000099602000041000000000021043500000004021000390000001c03000029000005270000013d000000000300001900001abe0000013d0000000103300039000000190030006c00000c5d0000813d000000800400043d0000000001040433000000000031004b00001cda0000a13d0000001b010000290000000001010433000000000031004b00001cda0000a13d0000000505300210000000200150003900000000044100190000000004040433001c00000004001d0000001a0450002900000000040404330000000054040434002000000005001d000000000004004b00001ad60000613d0000001c0500002900000080055000390000000005050433000000000054004b00001cf50000413d0000001c040000290000014004400039001f00000004001d00000000040404330000000004040433000000200500002900000000050504330000000005050433000000000054004b00001ce00000c13d000000000004004b00001abb0000613d0000001c0400002900000160044000390000000004040433001e00000004001d001d00000014001d000000000700001900001aef0000013d00000001077000390000001f0100002900000000010104330000000001010433000000000017004b00001abb0000813d0000001e010000290000000001010433000000000031004b00001cda0000a13d0000001d01000029000000000101043300000000140104340000096d0040009c000000f90000213d000000200040008c000000f90000413d0000000005010433000009350050009c000000f90000213d000000000c410019000000000a1500190000000001ac00490000096d0010009c000000f90000213d000000800010008c000000f90000413d000000400b00043d0000096500b0009c000000fe0000213d000000800eb000390000004000e0043f00000000f10a0434000009350010009c000000f90000213d0000000001a100190000001f041000390000000000c4004b000000000500001900000970050080410000097004400197000009700dc001970000000009d4013f0000000000d4004b00000000040000190000097004004041000009700090009c000000000405c019000000000004004b000000f90000c13d0000000041010434000009350010009c000000fe0000213d0000001f05100039000009cd055001970000003f05500039000009cd055001970000000005e50019000009350050009c000000fe0000213d000000400050043f00000000001e043500000000054100190000000000c5004b000000f90000213d000000a005b00039000000000001004b00001b350000613d000000000900001900000000085900190000000006490019000000000606043300000000006804350000002009900039000000000019004b00001b2e0000413d00000000015100190000000000010435000000000eeb043600000000010f0433000009350010009c000000f90000213d0000000001a100190000001f041000390000000000c4004b0000000005000019000009700500804100000970044001970000000006d4013f0000000000d4004b00000000040000190000097004004041000009700060009c000000000405c019000000000004004b000000f90000c13d000000001f0104340000093500f0009c000000fe0000213d0000001f04f00039000009cd044001970000003f04400039000009cd05400197000000400400043d0000000005540019000000000045004b00000000090000390000000109004039000009350050009c000000fe0000213d0000000100900190000000fe0000c13d000000400050043f0000000005f4043600000000061f00190000000000c6004b000000f90000213d00000000000f004b00001b680000613d0000000009000019000000000659001900000000081900190000000008080433000000000086043500000020099000390000000000f9004b00001b610000413d0000000001f50019000000000001043500000000004e04350000004001a000390000000001010433000009350010009c000000f90000213d0000000001a100190000001f041000390000000000c4004b0000000005000019000009700500804100000970044001970000000006d4013f0000000000d4004b00000000040000190000097004004041000009700060009c000000000405c019000000000004004b000000f90000c13d000000001d0104340000093500d0009c000000fe0000213d0000001f04d00039000009cd044001970000003f04400039000009cd04400197000000400e00043d00000000044e00190000000000e4004b00000000050000390000000105004039000009350040009c000000fe0000213d0000000100500190000000fe0000c13d000000400040043f0000000004de043600000000051d00190000000000c5004b000000f90000213d00000000000d004b00001b9c0000613d0000000005000019000000000645001900000000081500190000000008080433000000000086043500000020055000390000000000d5004b00001b950000413d0000000001d4001900000000000104350000004001b000390000000000e104350000006001a000390000000001010433000009300010009c000000f90000213d0000006004b000390000000000140435000000200400002900000000040404330000000005040433000000000075004b00001cda0000a13d0000000505700210000000000445001900000020044000390000000004040433000009300440019800001ae90000613d000000000014004b00001ae90000813d0000001c0200002900000180022000390000000002020433000000400300043d000000640530003900000000004504350000004404300039000000000014043500000024013000390000000000710435000009a601000041000000000013043500000004013000390000000000210435000009300030009c00000930030080410000004001300210000009a7011001c7000024bf000104300000000a0000006b00001bcd0000613d0000000301000039000000000101041a001f00000001001d0000098c0010019800001c420000c13d0000000001000415000000010110006900000000010000020000000004000031000000200240006a0000000201000367000000230720008a000000a50000013d000000400300043d002000000003001d000009800100004100000000001304350000000401300039000000200200003900000000002104350000002402300039000000160100002900001c1b0000013d000000400200043d002000000002001d000009800100004100000000001204350000000401200039000000170200002924bd1df30000040f00000020020000290000000001210049000009300010009c00000930010080410000006001100210000009300020009c00000930020080410000004002200210000000000121019f000024bf00010430000000400200043d0000002403200039000000200400002900000000004304350000099b0300004100000000003204350000000403200039000000000013043500001a9f0000013d00000017010000290000000001010433000000400200043d0000098b030000410000000000320435000009340110019700000004032000390000000000130435000009300020009c0000093002008041000000400120021000000977011001c7000024bf000104300000001f0530018f0000093206300198000000400200043d0000000004620019000008ca0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c0d0000c13d000008ca0000013d000000400300043d002000000003001d000009800100004100000000001304350000000401300039000000200200003900000000002104350000002402300039000000170100002924bd1dbe0000040f00000020020000290000000001210049000009300010009c0000093001008041000009300020009c000009300200804100000060011002100000004002200210000000000121019f000024bf00010430000000400200043d0000004403200039000000000013043500000024012000390000000c03000029000000000031043500000987010000410000000000120435000000040120003900000019030000290000000000310435000009300020009c0000093002008041000000400120021000000947011001c7000024bf000104300000001f0530018f0000093206300198000000400200043d0000000004620019000008ca0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c3d0000c13d000008ca0000013d0000000401000039000000000101041a001e00000001001d0000093a0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f000000010020019000001c600000613d0000001f0200002900000080022002700000093002200197000000000301043b000000000423004b000001400000413d0000001f0100002900000937011001970000001e02000029000009370220019700001c7a0000613d000000000021004b00001c680000a13d000000400100043d0000098e0200004100000aa20000013d000000000001042f000000240320003900000000001304350000099c01000041000000000012043500000004012000390000001e0300002900001a9e0000013d0000001e05000029000000800650027000000000056400a900000000044500d9000000000064004b000001400000c13d000000000015001a000001400000413d000000000115001900000080033002100000093d033001970000000305000039000000000405041a0000098d04400197000000000334019f000000000035041b000000000012004b00000000010240190000000a0020006c00001c890000813d000000400100043d00000024031000390000000a0400002900000000004304350000099303000041000000000031043500000004031000390000000000230435000009300010009c0000093001008041000000400110021000000982011001c7000024bf000104300000000a0210006c00001ca10000813d0000000402000039000000000202041a0000008002200272000001400000613d0000000a041000690000000003240019000000010330008a000000000043004b000001400000413d000000400400043d000000240540003900000000001504350000099201000041000000000014043500000000012300d900000004024000390000000000120435000009300040009c0000093004008041000000400140021000000982011001c7000024bf0001043000000937012001970000000303000039000000000203041a0000098f02200197000000000112019f000000000013041b000000400100043d0000000a020000290000000000210435000009300010009c000009300100804100000040011002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f00000990011001c70000800d020000390000000103000039000009910400004124bd24b30000040f000000010020019000001bcd0000c13d000000f90000013d000000000032043500001cf20000c13d0000000902000039000000000302041a000000000013004b00001cda0000a13d000000000020043f0000099e0110009a000000000101041a00000934011001970000000002000411000000000012004b00001cf20000c13d000001450100008a0000001f0010006b000001400000213d0000001f010000290000014401100039000000160010002a000001400000413d0000001601100029000000150010002a000001400000413d00000015011000290000000002000031000000000012004b000007e20000613d000000400300043d00000024043000390000000000240435000009a00200004100001cea0000013d000009a901000041000000000010043f0000003201000039000000040010043f0000097701000041000024bf000104300000001c0200002900000180012000390000000001010433000000600220003900000000020204330000093502200197000000400300043d00000024043000390000000000240435000009a502000041000000000023043500000004023000390000000000120435000009300030009c0000093003008041000000400130021000000982011001c7000024bf00010430000000400100043d0000099f0200004100000aa20000013d0000001c0100002900000180011000390000000001010433000000400200043d0000004403200039000000000043043500000024032000390000000000530435000009a40300004100000000003204350000000403200039000000000013043500001c310000013d000009c00100004100000017030000290000000000130435000000040130003900000002020000390000000000210435000009300030009c0000093003008041000000400130021000000977011001c7000024bf00010430000009c101000041000000170200002900000aaa0000013d00000020040000290000000001410049000009300010009c00000930010080410000006001100210000009300040009c00000930040080410000004004400210000000000141019f000009300030009c0000093003008041000000c003300210000000000113019f24bd24b30000040f00000000030100190000006003300270000109300030019d00000930033001970003000000010355000000010020019000001d890000613d000009cd043001980000001f0530018f000000200240002900001d2f0000613d000000000601034f0000002007000029000000006806043c0000000007870436000000000027004b00001d2b0000c13d000000000005004b00001d3c0000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f01300039000009cd011001970000002002100029000000000012004b00000000010000390000000101004039000009350020009c000000fe0000213d0000000100100190000000fe0000c13d000000400020043f0000096d0030009c000000f90000213d000000600030008c000000f90000413d00000020010000290000000001010433000000000001004b0000000004000039000000010400c039000000000041004b000000f90000c13d0000001f040000290000000004040433000009350040009c000000f90000213d000000200530002900000020034000290000001f04300039000000000054004b0000000006000019000009700600804100000970044001970000097007500197000000000874013f000000000074004b00000000040000190000097004004041000009700080009c000000000406c019000000000004004b000000f90000c13d0000000043030434000009350030009c000000fe0000213d0000001f06300039000009cd066001970000003f06600039000009cd066001970000000006260019000009350060009c000000fe0000213d000000400060043f00000000063204360000000007430019000000000057004b000000f90000213d000000000003004b00001d7f0000613d000000000500001900000000076500190000000008450019000000000808043300000000008704350000002005500039000000000035004b00001d780000413d00000000036300190000000000030435000000000001004b000014a40000c13d000000400300043d002000000003001d00000999010000410000000000130435000000040130003900001be50000013d0000001f0530018f0000093206300198000000400200043d0000000004620019000008ca0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d900000c13d000008ca0000013d000009d00010009c00001d9a0000813d000000a001100039000000400010043f000000000001042d000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf000104300000001f02200039000009cd022001970000000001120019000000000021004b00000000020000390000000102004039000009350010009c00001dac0000213d000000010020019000001dac0000c13d000000400010043f000000000001042d000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf00010430000000400100043d000009d10010009c00001db80000813d000000e002100039000000400020043f000000000001042d000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf0001043000000000430104340000000001320436000000000003004b00001dca0000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001dc30000413d000000000213001900000000000204350000001f02300039000009cd022001970000000001210019000000000001042d000000000301001900000000040304330000000001420436000000000004004b00001ddd0000613d000000000200001900000020033000390000000005030433000009340550019700000000015104360000000102200039000000000042004b00001dd60000413d000000000001042d000000400100043d000009d00010009c00001ded0000813d000000a002100039000000400020043f000000800210003900000000000204350000006002100039000000000002043500000040021000390000000000020435000000200210003900000000000204350000000000010435000000000001042d000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf0001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b00001e020000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000024004b00001dfb0000413d000000000312001900000000000304350000001f02200039000009cd022001970000000001120019000000000001042d0015000000000002000b00000002001d001200000001001d000000400200043d000009d201000041001500000002001d00000000001204350000097501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d00000015020000290000000402200039000000000101043b0000008001100210000009d30110019700000000001204350000097501000041000000000010044300000000010004120000000400100443000000e00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d000000150b000029000000000201043b00000000010004140000093402200197000000040020008c00001e3e0000c13d0000000103000031000000200030008c0000002004000039000000000403401900001e6a0000013d0000093000b0009c000009300300004100000000030b40190000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000977011001c724bd24b80000040f000000150b000029000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001e590000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001e550000c13d000000000006004b00001e660000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000024550000613d0000001f01400039000000600110018f0000000002b10019000000000012004b00000000010000390000000101004039000d00000002001d000009350020009c000023f30000213d0000000100100190000023f30000c13d0000000d01000029000000400010043f0000001f0030008c000023eb0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000023eb0000c13d000000000001004b000024470000c13d000000120100002900000000210104340000000003010433000000000003004b000024490000613d000300000002001d00000000010204330000000001010433000000000013004b0000244b0000c13d001100000003001d000009350030009c000023f30000213d000000110100002900000005021002100000003f0120003900000964011001970000000d01100029000009350010009c000023f30000213d000000400010043f00000011010000290000000d030000290000000001130436000c00000001001d0000001f0120018f000000000002004b00001ea50000613d0000000c04000029000000000224001900000000030000310000000203300367000000003503043c0000000004540436000000000024004b00001ea10000c13d000000000001004b0000097501000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d000000000101043b000a00000001001d0000000003000019000000120100002900000000010104330000000002010433000000000032004b000023ed0000a13d001400000003001d0010000500300218000000100110002900000020011000390000000009010433000000200190003900000000010104330000004002900039000000000302043300000060029000390000000004020433000000a0029000390000000005020433000000c0029000390000000006020433000000e002900039000000000702043300000080029000390000000008020433001500000009001d00000100029000390000000009020433000000400200043d000001000a20003900000000009a0435000000800920003900000000008904350000093407700197000000e00820003900000000007804350000093506600197000000c0072000390000000000670435000000000005004b0000000005000039000000010500c039000000a006200039000000000056043500000935044001970000006005200039000000000045043500000934033001970000004004200039000000000034043500000100030000390000000003320436000009340110019700000000001304350000097d0020009c000023f30000213d0000012001200039000000400010043f000009300030009c000009300300804100000040013002100000000002020433000009300020009c00000930020080410000006002200210000000000112019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d0000001502000029000001200220003900000000020204330000002003200039000009300030009c000009300300804100000040033002100000000002020433000009300020009c00000930020080410000006002200210000000000232019f000000000101043b001300000001001d0000000001000414000009300010009c0000093001008041000000c001100210000000000121019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000601043b000000150100002900000140011000390000000003010433000000400100043d0000002002100039000000200400003900000000004204350000004004100039000000000503043300000000005404350000006004100039000000000005004b000f00000006001d00001f380000613d0000000006000019000000200900008a000000200330003900000000070304330000000087070434000009340770019700000000077404360000000008080433000000000087043500000040044000390000000106600039000000000056004b00001f2c0000413d00001f390000013d000000200900008a0000000003140049000000200430008a00000000004104350000001f03300039000000000493016f0000000003140019000000000043004b00000000040000390000000104004039000009350030009c000023f30000213d0000000100400190000023f30000c13d000000400030043f000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000101043b000e00000001001d000000150100002900000160011000390000000003010433000000400100043d000000200210003900000020040000390000000000420435000000000403043300000005054002100000000006510019000000400510003900000000004504350000006007600039000000000004004b00001f880000613d0000000006000019000000200d00008a00001f750000013d000000000978001900000000000904350000001f088000390000000008d8016f00000000077800190000000106600039000000000046004b00001f890000813d0000000008170049000000600880008a000000200550003900000000008504350000002003300039000000000803043300000000980804340000000007870436000000000008004b00001f6d0000613d000000000a000019000000000b7a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b00001f800000413d00001f6d0000013d000000200d00008a0000000003170049000000200430008a00000000004104350000001f033000390000000004d3016f0000000003140019000000000043004b00000000040000390000000104004039000009350030009c000023f30000213d0000000100400190000023f30000c13d000000400030043f000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000201043b000000400100043d000000c0031000390000000000230435000000a0021000390000000e03000029000000000032043500000080021000390000000f03000029000000000032043500000060021000390000001303000029000000000032043500000040021000390000000a030000290000000000320435000000c00200003900000000022104360000000000020435000009330010009c000023f30000213d000000e003100039000000400030043f000009300020009c000009300200804100000040022002100000000001010433000009300010009c00000930010080410000006001100210000000000121019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000101043b0000000d0800002900000000020804330000001403000029000000000032004b000023ed0000a13d00000010040000290000000c0240002900000000001204350000000002080433000000000032004b000023ed0000a13d000000150200002900000180022000390000000002020433000000000021004b0000001101000029000024000000c13d0000000103300039000000000013004b00001eb80000413d000000120200002900000060012000390000000001010433000000400220003900000000020204330000000b030000290000000006030433000000400900043d000009d70300004100000000003904350000000403900039000000600400003900000000004304350000000005080433000000640490003900000000005404350000008404900039000000000006004b0000000006000039000000010600c039000400000006001d000000000005004b000020050000613d00000000060000190000002008800039000000000708043300000000047404360000000106600039000000000056004b00001fff0000413d00000000033400490000002405900039000000000035043500000000030204330000000006340436000000000003004b000020130000613d00000000040000190000002002200039000000000502043300000000065604360000000104400039000000000034004b0000200d0000413d001400000006001d001500000009001d000000440290003900000000001204350000097501000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d000000000201043b00000000010004140000093402200197000000040020008c0000001403000029000020320000c13d0000000103000031000000200030008c00000020040000390000000004034019000000150b000029000020620000013d00000015040000290000000003430049000009300030009c00000930030080410000006003300210000009300040009c00000930040080410000004004400210000000000343019f000009300010009c0000093001008041000000c001100210000000000131019f24bd24b80000040f000000150b000029000000000301001900000060033002700000093003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000020510000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000204d0000c13d000000000006004b0000205e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000024610000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009350010009c000023f30000213d0000000100200190000023f30000c13d000000400010043f000000200030008c000023eb0000413d00000000020b0433000100000002001d000000000002004b000024530000613d000a00040000002d0000000003000019000020930000013d0000001f04200039000000000494016f000000000232001900000000000204350000006002400039000009300020009c00000930020080410000006002200210000009300010009c00000930010080410000004001100210000000000112019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c70000800d020000390000000303000039000009e10400004124bd24b30000040f0000000100200190000a00040000002d000023eb0000613d00000013030000290000000103300039000000110030006c000023ea0000813d000000120100002900000000010104330000000002010433000000000032004b000023ed0000a13d001300000003001d0000000502300210000e00200020003d0000000e011000290000000001010433001400000001001d0000006001100039001500000001001d0000000001010433001000000001001d0000093501100197000f00000001001d0000000701100270000000000010043f0000001001000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d0000000f020000290000000102200210000000000101043b000000000101041a00000010030000290000007f03300190000020bc0000613d000000ff0420018f00000000033400d9000000020030008c000023f90000c13d000000fe0220018f000000000121022f0000000301100190000020dc0000613d000000030010008c000022dc0000c13d000f00000001001d0000000a0000006b0000001303000029000020e10000c13d000000150100002900000000010104330000093501100197000000400200043d0000000000120435000009300020009c000009300200804100000040012002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f00000990011001c70000800d020000390000000103000039000009e50400004124bd24b30000040f0000000100200190000a00000000001d0000208f0000c13d000023eb0000013d000f00000001001d0000000a0000006b000c00600000003d00000013030000290000210f0000613d0000000b010000290000000001010433000000000031004b000023ed0000a13d0000000e020000290000000b01200029001000000001001d000000000101043300000020011000390000000001010433000c00000001001d0000093a0100004100000000001004430000000001000414000009300010009c0000093001008041000000c0011002100000093b011001c70000800b0200003924bd24b80000040f0000000100200190000023ff0000613d000000000101043b000000010110006c000023f90000413d0000000f02000029000000030020008c000021020000613d0000000a02000039000000000202041a0000093002200197000000000021004b000024230000a13d0000000b0100002900000000010104330000001303000029000000000031004b000023ed0000a13d000000100100002900000000010104330000000001010433000000000001004b0000210f0000613d0000001402000029000000800220003900000000001204350000001402000029000000c001200039000d00000001001d00000000010104330000093500100198001000200020003d000021350000613d000000100100002900000000010104330000093401100197000000000010043f0000000f01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000101043b000000000101041a0000093504100198000023290000613d0000000f0000006b0000001303000029000021350000c13d000009350040009c000023f90000613d0000000d01000029000000000101043300000935051001970000000101400039000000000051004b0000001303000029000023790000c13d000000030100002900000000010104330000000002010433000000000032004b000023ed0000a13d0000000e01100029000000000301043300000015010000290000000001010433000200000001001d00000014020000290000012001200039000500000001001d00000000010104330000000001010433000a00000001001d0000000001020433000e00000001001d0000014001200039000600000001001d00000000010104330000000001010433000900000001001d000700000003001d0000000001030433000800000001001d0000097501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d000000000101043b0000000e03000029000000000131013f0000093500100198000024030000c13d0000000a01000039000000000101041a00000040021002700000ffff0220018f000000090020006c00000009020000290000000a04000029000024080000413d000000080020006c0000240b0000c13d00000020011002700000093001100197000000000041004b000024170000413d00000015010000290000000002010433000009350120019700000001041002100000007f022001900000217b0000613d000000ff0340018f00000000022300d9000000020020008c000023f90000c13d000e00000004001d0000000701100270000000000010043f0000001001000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d0000000e02000029000000fe0220018f000000030320020f000009e803300167000000000101043b000000000401041a000000000334016f000000010220020f000000000223019f000000000021041b0000097e010000410000000000100443000000000100041000000004001004430000000001000414000009300010009c0000093001008041000000c0011002100000097f011001c7000080020200003924bd24b80000040f0000000100200190000023ff0000613d000000000101043b000000000001004b000023eb0000613d000000400e00043d000009df01000041000000000d1e04360000000401e00039000000600200003900000000002104350000001403000029000000000103043300000935011001970000006402e0003900000000001204350000001001000029000000000101043300000934011001970000008402e000390000000000120435000000400130003900000000010104330000093401100197000000a402e000390000000000120435000000150100002900000000010104330000093501100197000000c402e00039000000000012043500000080013000390000000001010433000000e402e000390000000000120435000000a0013000390000000001010433000000000001004b0000000001000039000000010100c0390000010402e0003900000000001204350000000d01000029000000000101043300000935011001970000012402e000390000000000120435000000e001300039000000000101043300000934011001970000014402e000390000000000120435000001000130003900000000010104330000016402e000390000000000120435000000050100002900000000010104330000018402e00039000001a00300003900000000003204350000020402e00039000000003101043400000000001204350000022402e00039000000000001004b000021e90000613d000000000400001900000000052400190000000006430019000000000606043300000000006504350000002004400039000000000014004b000021e20000413d000000000321001900000000000304350000001f01100039000009cd0310019700000006010000290000000001010433000001a404e00039000001c0053000390000000000540435000000000223001900000000030104330000000002320436000000000003004b000022030000613d0000000004000019000000200110003900000000050104330000000065050434000009340550019700000000055204360000000006060433000000000065043500000040022000390000000104400039000000000034004b000021f80000413d0000000001e20049000000640110008a000000140300002900000160033000390000000003030433000001c404e00039000000000014043500000000040304330000000000420435000000050140021000000000011200190000002001100039000000000004004b0000222f0000613d000000000500001900000000060200190000221c0000013d000000000817001900000000000804350000001f07700039000009cd0770019700000000011700190000000105500039000000000045004b0000222f0000813d0000000007210049000000200770008a000000200660003900000000007604350000002003300039000000000703043300000000870704340000000001710436000000000007004b000022140000613d0000000009000019000000000a190019000000000b980019000000000b0b04330000000000ba04350000002009900039000000000079004b000022270000413d000022140000013d0000000002e10049000000040220008a00000014030000290000018003300039000900000003001d00000000030304330000002404e000390000000000240435000001e402e000390000000000320435000000070b00002900000000020b04330000000000210435000000050320021000000000033100190000002005300039000000000002004b0000225f0000613d000000000300001900000000040100190000224c0000013d000000000756001900000000000704350000001f06600039000009cd0660019700000000055600190000000103300039000000000023004b0000225f0000813d0000000006150049000000200660008a00000020044000390000000000640435000000200bb0003900000000060b043300000000760604340000000005650436000000000006004b000022440000613d00000000080000190000000009580019000000000a870019000000000a0a04330000000000a904350000002008800039000000000068004b000022570000413d000022440000013d0000000001e50049000000040110008a0000004402e0003900000000001204350000000c0100002900000000020104330000000001250436000000000002004b000022710000613d00000000030000190000000c0500002900000020055000390000000004050433000009300440019700000000014104360000000103300039000000000023004b0000226a0000413d00000000020004140000000003000410000000040030008c0000228e0000613d0000000001e10049000009300010009c000009300100804100000060011002100000093000e0009c000009300300004100000000030e40190000004003300210000000000131019f000009300020009c0000093002008041000000c002200210000000000121019f000000000200041000140000000d001d000e0000000e001d24bd24b30000040f0000000e0e000029000000140d00002900000000030100190000006003300270000109300030019d000300000001035500000001002001900000234b0000613d0000093500e0009c000023f30000213d0000004000e0043f0000096f00e0009c000023f30000213d0000004000d0043f00000000000e0435000000000500001900000002010000390000000004010019000800000005001d000c00000004001d000e0000000e001d00140000000d001d00000015010000290000000002010433000009350120019700000001041002100000007f02200190000022a60000613d000000ff0340018f00000000022300d9000000020020008c000023f90000c13d000700000004001d0000000701100270000a00000001001d000000000010043f0000001001000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000101043b000000000101041a000600000001001d0000000a01000029000000000010043f0000001001000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d0000000702000029000000fe0220018f0000000c0700002900000000032701cf000000030220020f000009e802200167000000060220017f000000000232019f000000000101043b000000000021041b00000008010000290000000100100190000022eb0000613d0000000f0000006b000000200900008a000000140a0000290000000e020000290000242b0000c13d0000000d0100002900000000010104330000093500100198000022f40000c13d000023100000013d0000001501000029000000000101043300000000020004140000093505100197000009300020009c0000093002008041000000c001200210000009b0011001c70000800d020000390000000203000039000009d80400004124bd24b30000040f00000001002001900000208f0000c13d000023eb0000013d0000000d0100002900000000010104330000093500100198000000200900008a000000140a0000290000000e02000029000023100000613d0000000f0000006b000023100000c13d000000100100002900000000010104330000093401100197000000000010043f0000000f01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c7000080100200003924bd24b80000040f0000000100200190000023eb0000613d000000000101043b000000000201041a0000093503200197000009350030009c000023f90000613d000009db022001970000000103300039000000000223019f000000000021041b000000200900008a000000140a0000290000000e020000290000000c070000290000000901000029000000000601043300000015010000290000000004010433000000400100043d000000200510003900000040030000390000000000350435000000000071043500000000020204330000004003100039000000000023043500000060031000390000093505400197000000000002004b000020760000613d0000000004000019000000000734001900000000084a0019000000000808043300000000008704350000002004400039000000000024004b000023210000413d000020760000013d0000097501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009300010009c0000093001008041000000c00110021000000976011001c7000080050200003924bd24b80000040f0000000100200190000023ff0000613d000000000101043b0000093402100198000023850000613d00000010010000290000000001010433000000400a00043d000009ac0300004100000000003a043500000934011001970000000403a0003900000000001304350000000001000414000000040020008c000023870000c13d0000000103000031000000200030008c00000020040000390000000004034019000023b30000013d00000930023001980000000405000029000000800d0000390000000304000039000000600e000039000022980000613d0000001f0320003900000931033001970000003f03300039000009e003300197000000400e00043d00000000033e00190000000000e3004b00000000040000390000000104004039000009350030009c000023f30000213d0000000100400190000023f30000c13d000000400030043f000000000d2e0436000009320420019800000000034d0019000023690000613d000000000501034f00000000060d0019000000005705043c0000000006760436000000000036004b000023650000c13d0000001f02200190000023760000613d000000000141034f0000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f000000000013043500000004050000290000000301000039000022970000013d000000100100002900000000010104330000000002000414000009300020009c00000930020080410000093406100197000000c001200210000009b0011001c70000800d020000390000000303000039000009dc04000041000022e70000013d0000000004000019000021290000013d0000093000a0009c000009300300004100000000030a40190000004003300210000009300010009c0000093001008041000000c001100210000000000131019f00000977011001c700090000000a001d24bd24b80000040f000000090a000029000000000301001900000060033002700000093003300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000023a20000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000239e0000c13d0000001f07400190000023af0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000243b0000613d0000001f01400039000000600210018f0000000001a20019000000000021004b00000000020000390000000102004039000009350010009c000023f30000213d0000000100200190000023f30000c13d000000400010043f000000200030008c000023eb0000413d00000000030a0433000009350030009c000023eb0000213d000023f90000613d0000001001000029000000000101043300000934061001970000000d01000029000000000101043300000935051001970000000101300039000000000051004b000023e10000c13d000000000060043f0000000f01000039000000200010043f0000000001000414000009300010009c0000093001008041000000c00110021000000967011001c70000801002000039000900000003001d24bd24b80000040f00000009040000290000000100200190000023eb0000613d000000000101043b000000000201041a000009db02200197000000000242019f000000000021041b000021290000013d0000000001000414000009300010009c0000093001008041000000c001100210000009b0011001c70000800d020000390000000303000039000009da04000041000022e70000013d000000000001042d0000000001000019000024bf00010430000009a901000041000000000010043f0000003201000039000000040010043f0000097701000041000024bf00010430000009a901000041000000000010043f0000004101000039000000040010043f0000097701000041000024bf00010430000009a901000041000000000010043f0000001101000039000000040010043f0000097701000041000024bf00010430000000000001042f000000400100043d000009d602000041000024250000013d000000400100043d000009dd0200004100000000002104350000093502300197000024100000013d000000400100043d000009e4020000410000240d0000013d000000400100043d000009de0200004100000000002104350000000202000029000009350220019700000004031000390000000000230435000009300010009c0000093001008041000000400110021000000977011001c7000024bf00010430000000400200043d00000024032000390000000000430435000009e303000041000000000032043500000004032000390000000000130435000009300020009c0000093002008041000000400120021000000982011001c7000024bf00010430000000400100043d000009d9020000410000000000210435000009300010009c0000093001008041000000400110021000000941011001c7000024bf00010430000000400300043d001500000003001d000009e2010000410000000000130435000000040130003924bd1df30000040f00000015020000290000000001210049000009300010009c00000930010080410000006001100210000009300020009c00000930020080410000004002200210000000000121019f000024bf000104300000001f0530018f0000093206300198000000400200043d00000000046200190000246c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024420000c13d0000246c0000013d000009d4010000410000244c0000013d000009e7010000410000244c0000013d000009d5010000410000000d020000290000000000120435000009300020009c0000093002008041000000400120021000000941011001c7000024bf00010430000009e602000041000024250000013d0000001f0530018f0000093206300198000000400200043d00000000046200190000246c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000245c0000c13d0000246c0000013d0000001f0530018f0000093206300198000000400200043d00000000046200190000246c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024680000c13d000000000005004b000024790000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009300020009c00000930020080410000004002200210000000000112019f000024bf00010430000000000001042f000009300010009c00000930010080410000004001100210000009300020009c00000930020080410000006002200210000000000112019f0000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009b0011001c7000080100200003924bd24b80000040f0000000100200190000024930000613d000000000101043b000000000001042d0000000001000019000024bf0001043000000000050100190000000000200443000000050030008c000024a30000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b0000249b0000413d000009300030009c000009300300804100000060013002100000000002000414000009300020009c0000093002008041000000c002200210000000000112019f000009e9011001c7000000000205001924bd24b80000040f0000000100200190000024b20000613d000000000101043b000000000001042d000000000001042f000024b6002104210000000102000039000000000001042d0000000002000019000000000001042d000024bb002104230000000102000039000000000001042d0000000002000019000000000001042d000024bd00000432000024be0001042e000024bf0001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000ffffffffffffffffffffff0000000000000000000000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b4120fccd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000df85440e000000000000000000000000000000000000000000000000000000008acd72527118c8324937b1a42e02cd246697c3b633f1742f3cae11de233722b3000000020000000000000000000000000000028000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000081ff704700000000000000000000000000000000000000000000000000000000afcb95d600000000000000000000000000000000000000000000000000000000c92b283100000000000000000000000000000000000000000000000000000000c92b283200000000000000000000000000000000000000000000000000000000f077b59200000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000afcb95d700000000000000000000000000000000000000000000000000000000b1dc65a400000000000000000000000000000000000000000000000000000000b6113fce00000000000000000000000000000000000000000000000000000000873504d600000000000000000000000000000000000000000000000000000000873504d7000000000000000000000000000000000000000000000000000000008926c4ee000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000081ff704800000000000000000000000000000000000000000000000000000000856c824700000000000000000000000000000000000000000000000000000000599f643000000000000000000000000000000000000000000000000000000000704b6c0100000000000000000000000000000000000000000000000000000000704b6c02000000000000000000000000000000000000000000000000000000007437ff9f0000000000000000000000000000000000000000000000000000000079ba509700000000000000000000000000000000000000000000000000000000599f643100000000000000000000000000000000000000000000000000000000666cab8d00000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000001ef3817400000000000000000000000000000000000000000000000000000000546719cd0000000000000000000000000000000000000000000000000000000006285c6900000000000000000000000000000000000000000000000000000000142a98fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f209699368efae3c2ab13a6e9d9f9aceb6c5aebfb5ffd7bd0a9ff6281a30b57390200000000000000000000000000000000000040000000000000000000000000f6cd5620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000e00000000000000000ffffffffffffffffffffff00ffffffff0000000000000000000000000000000002000000000000000000000000000000000000600000000000000000000000009ea3374b67bf275e6bb9c8ae68f9cae023e1c528b4b27e092f0bb209d3531c197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff371a732800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf000000000000000000000000fffffffffffffffffffffffffffffffffffffbff8d666f6000000000000000000000000000000000000000000000000000000000bbe4f6db00000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000002400000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000000000000007530000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000aff2afbf0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffedf1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000e1cd55090000000000000000000000000000000000000000000000000000000078ef8024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffeff3907753700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f37c3be2900000000000000000000000000000000000000000000000000000000a966e21f00000000000000000000000000000000000000000000000000000000d02641a00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000de0b6b3a76400009a655f7b000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000ffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff9725942a00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000001871cdf8010e63f2eb8384381a68dfa7416dc571a5517e66e88b2d2d0c0a690a15279c0800000000000000000000000000000000000000000000000000000000f94ebcd100000000000000000000000000000000000000000000000000000000afa32a2c000000000000000000000000000000000000000000000000000000000c3b563c00000000000000000000000000000000000000000000000000000000ae9b4ce90000000000000000000000000000000000000000000000000000000085572ffb000000000000000000000000000000000000000000000000000000003cf97983000000000000000000000000000000000000000000000000000000000a8d6e8c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffe5f93df584c000000000000000000000000000000000000000000000000000000000f01ce8500000000000000000000000000000000000000000000000000000000b04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a6291eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a3851da0f08e8000000000000000000000000000000000000000000000000000000008e1192e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000800000000000000000000000000000000000000000000000000000002000000080000000000000000083e3f564000000000000000000000000000000000000000000000000000000009c6db58d0000000000000000000000000000000000000000000000000000000085d2e5bf00000000000000000000000000000000000000000000000000000000ef0c6352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000209699368efae3c2ab13a6e9d9f9aceb6c5aebfb5ffd7bd0a9ff6281a30b573a4e487b7100000000000000000000000000000000000000000000000000000000cbf3cbeaed4ac1d605ed30f4af06c35acaeff2379db7f6146c9cceee83d58782fc23abf7ddbd3c02b1420dafa2355c56c1a06fbb8723862ac14d6bd74177361a856c82470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000004f6e6c792063616c6c61626c65206279206f776e65720000000000000000000000000000000000000000000000000000000000640000008000000000000000000200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c660000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000400000080000000000000000002000000000000000000000000000000000000200000008000000000000000008fe72c3e0020beb3234e76ae6676fa576fbfcae600af1c4fea44784cf0db329c6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af00000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000ffff00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000001800000000000000000000000007879e20bb60a503429de4a2c912b5904f08a39f2af054c10fb46434b5d611260367f56a200000000000000000000000000000000000000000000000000000000d6c62c9b00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd1ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e058579befe0000000000000000000000000000000000000000000000000000000045564d3245564d4f666652616d7020312e352e300000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000e0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff202cbc26bb000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000053ad11d80000000000000000000000000000000000000000000000000000000057e0e083000000000000000000000000000000000000000000000000000000007185cf6b000000000000000000000000000000000000000000000000000000003204887500000000000000000000000000000000000000000000000000000000e3dd0bec917c965a133ddb2c84874725ee1e2fd8d763c19efa36d6a11cd82b1f6358b0d000000000000000000000000000000000000000000000000000000000e44a20935573a783dd0d5991c92d7b6a0eb3173566530364db3ec10e9a990b5dffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000d32ddb11d71e3d63411d37b09f9a8b28664f1cb1338bfd1413c173b0ebf412371279ec8a000000000000000000000000000000000000000000000000000000008808f8e700000000000000000000000000000000000000000000000000000000b6113fce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffe0d4f851956a5d67c3997d1c9205045fef79bae2947fdee7e9e2641abc7391ef65cf19edfd000000000000000000000000000000000000000000000000000000008693378900000000000000000000000000000000000000000000000000000000099d3f720000000000000000000000000000000000000000000000000000000067d9ba0f63d427c482c2736300e6d5a34c6691dbcdea8ad35828a1f1ba47e872ea7568010000000000000000000000000000000000000000000000000000000000bf199700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/evm_2_evm_onramp/evm_2_evm_onramp.go b/core/gethwrappers/ccip/generated/evm_2_evm_onramp/evm_2_evm_onramp.go index 38a4152c71..b818a79919 100644 --- a/core/gethwrappers/ccip/generated/evm_2_evm_onramp/evm_2_evm_onramp.go +++ b/core/gethwrappers/ccip/generated/evm_2_evm_onramp/evm_2_evm_onramp.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package evm_2_evm_onramp import ( @@ -149,7 +146,7 @@ var EVM2EVMOnRampABI = EVM2EVMOnRampMetaData.ABI var EVM2EVMOnRampBin = EVM2EVMOnRampMetaData.Bin -func DeployEVM2EVMOnRamp(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig EVM2EVMOnRampStaticConfig, dynamicConfig EVM2EVMOnRampDynamicConfig, rateLimiterConfig RateLimiterConfig, feeTokenConfigs []EVM2EVMOnRampFeeTokenConfigArgs, tokenTransferFeeConfigArgs []EVM2EVMOnRampTokenTransferFeeConfigArgs, nopsAndWeights []EVM2EVMOnRampNopAndWeight) (common.Address, *types.Transaction, *EVM2EVMOnRamp, error) { +func DeployEVM2EVMOnRamp(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig EVM2EVMOnRampStaticConfig, dynamicConfig EVM2EVMOnRampDynamicConfig, rateLimiterConfig RateLimiterConfig, feeTokenConfigs []EVM2EVMOnRampFeeTokenConfigArgs, tokenTransferFeeConfigArgs []EVM2EVMOnRampTokenTransferFeeConfigArgs, nopsAndWeights []EVM2EVMOnRampNopAndWeight) (common.Address, *generated.Transaction, *EVM2EVMOnRamp, error) { parsed, err := EVM2EVMOnRampMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -157,12 +154,16 @@ func DeployEVM2EVMOnRamp(auth *bind.TransactOpts, backend bind.ContractBackend, if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(EVM2EVMOnRampZKBin), backend, staticConfig, dynamicConfig, rateLimiterConfig, feeTokenConfigs, tokenTransferFeeConfigArgs, nopsAndWeights) + contractReturn := &EVM2EVMOnRamp{address: address, abi: *parsed, EVM2EVMOnRampCaller: EVM2EVMOnRampCaller{contract: contractBind}, EVM2EVMOnRampTransactor: EVM2EVMOnRampTransactor{contract: contractBind}, EVM2EVMOnRampFilterer: EVM2EVMOnRampFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(EVM2EVMOnRampBin), backend, staticConfig, dynamicConfig, rateLimiterConfig, feeTokenConfigs, tokenTransferFeeConfigArgs, nopsAndWeights) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &EVM2EVMOnRamp{address: address, abi: *parsed, EVM2EVMOnRampCaller: EVM2EVMOnRampCaller{contract: contract}, EVM2EVMOnRampTransactor: EVM2EVMOnRampTransactor{contract: contract}, EVM2EVMOnRampFilterer: EVM2EVMOnRampFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &EVM2EVMOnRamp{address: address, abi: *parsed, EVM2EVMOnRampCaller: EVM2EVMOnRampCaller{contract: contract}, EVM2EVMOnRampTransactor: EVM2EVMOnRampTransactor{contract: contract}, EVM2EVMOnRampFilterer: EVM2EVMOnRampFilterer{contract: contract}}, nil } type EVM2EVMOnRamp struct { @@ -2450,3 +2451,5 @@ type EVM2EVMOnRampInterface interface { Address() common.Address } + +var EVM2EVMOnRampZKBin = ("0x0004000000000002003300000000000200000000030100190000006004300270000009b90340019700030000003103550002000000010355000009b90040019d0000000100200190000000210000c13d0000008002000039000000400020043f000000040030008c000000420000413d000000000201043b000000e00220027000000a080020009c0000004d0000a13d00000a090020009c000000600000213d00000a130020009c000003d30000a13d00000a140020009c0000044b0000213d00000a170020009c000006430000613d00000a180020009c000000420000c13d0000000001000416000000000001004b000000420000c13d000000000100041a0000063f0000013d000001a004000039000000400040043f0000000002000416000000000002004b000000420000c13d0000001f02300039000009ba02200197000001a002200039000000400020043f0000001f0530018f000009bb06300198000001a002600039000000330000613d000000000701034f000000007807043c0000000004840436000000000024004b0000002f0000c13d000000000005004b000000400000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000003600030008c000000440000813d0000000001000019000026e000010430000000400a00043d000009bc00a0009c0000011a0000a13d00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e00001043000000a1c0020009c000002660000a13d00000a1d0020009c000003710000a13d00000a1e0020009c000004300000213d00000a210020009c0000061a0000613d00000a220020009c000000420000c13d0000000001000416000000000001004b000000420000c13d0000000e01000039000000000101041a000009bf01100197000000800010043f00000a6201000041000026df0001042e00000a0a0020009c000003f20000a13d00000a0b0020009c0000047c0000213d00000a0e0020009c000006810000613d00000a0f0020009c000000420000c13d000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b000009be0020009c000000420000213d0000002304200039000000000034004b000000420000813d0000000404200039000000000441034f000000000504043b000009be0050009c000000470000213d00000005045002100000003f04400039000009c304400197000009dc0040009c000000470000213d0000008004400039000000400040043f000000800050043f000000a0045000c900000024022000390000000004420019000000000034004b000000420000213d000000000005004b000009600000c13d000000000100041a000009bd021001970000000001000411000000000021004b000000920000613d0000000202000039000000000202041a000009bd02200197000000000021004b00000a800000c13d000000800100043d000000000001004b000000e20000613d0000000002000019000000400700043d000009dc0070009c000000470000213d0000000501200210000000a0011000390000000001010433001d00000002001d000000400210003900000000020204330000002003100039000000000303043300000060041000390000000004040433000000800510003900000000050504330000008006700039000000400060043f000000000005004b0000000005000039000000010500c0390000006006700039001b00000006001d0000000000560435000009be044001970000004005700039001a00000005001d0000000000450435000009b903300197001c00000007001d0000000003370436000009be02200197001900000003001d00000000002304350000000001010433000009bd01100197000000000010043f0000000b01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001c020000290000000002020433000009b902200197000000000101043b000000000301041a000009ce03300197000000000223019f000000190300002900000000030304330000002003300210000009de03300197000000000232019f0000001a0300002900000000030304330000006003300210000009df03300197000000000232019f0000001b030000290000000003030433000000000003004b000009cc030000410000000003006019000000000232019f000000000021041b0000001d020000290000000102200039000000800100043d000000000012004b000000960000413d000000400100043d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b000001080000613d000000a004000039000000000500001900000000460404340000000087060434000009bd0770019700000000077204360000000008080433000009b908800197000000000087043500000040076000390000000007070433000009be077001970000004008200039000000000078043500000060076000390000000007070433000009be077001970000006008200039000000000078043500000080066000390000000006060433000000000006004b0000000006000039000000010600c03900000080072000390000000000670435000000a0022000390000000105500039000000000035004b000000ec0000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009e0040000410000080f0000013d0000010001a00039000000400010043f000001a00100043d000009bd0010009c000000420000213d00000000011a0436001d00000001001d000001c00100043d000009be0010009c000000420000213d0000001d020000290000000000120435000001e00100043d000009be0010009c000000420000213d0000004002a00039001c00000002001d0000000000120435000002000100043d000009be0010009c000000420000213d0000006002a00039001b00000002001d0000000000120435000002200100043d000009bf0010009c000000420000213d0000008002a00039001a00000002001d0000000000120435000002400100043d000009bd0010009c000000420000213d000000a002a00039001900000002001d0000000000120435000002600100043d000009bd0010009c000000420000213d000000c002a00039001800000002001d0000000000120435000002800100043d000009bd0010009c000000420000213d000000e002a00039001600000002001d0000000000120435000000400100043d001700000001001d000009c00010009c000000470000213d0000001701000029000001a001100039000000400010043f000002a00100043d000009bd0010009c000000420000213d00000017020000290000000001120436001500000001001d000002c00100043d0000ffff0010008c000000420000213d00000015020000290000000000120435000002e00100043d000009b90010009c000000420000213d00000017020000290000004002200039001400000002001d0000000000120435000003000100043d0000ffff0010008c000000420000213d00000017020000290000006002200039001300000002001d0000000000120435000003200100043d000009b90010009c000000420000213d00000017020000290000008002200039001200000002001d0000000000120435000003400100043d0000ffff0010008c000000420000213d0000001702000029000000a002200039001100000002001d0000000000120435000003600100043d0000ffff0010008c000000420000213d0000001702000029000000c002200039001000000002001d0000000000120435000003800100043d000009bd0010009c000000420000213d0000001702000029000000e002200039000f00000002001d0000000000120435000003a00100043d000009b90010009c000000420000213d00000017020000290000010002200039000e00000002001d0000000000120435000003c00100043d000009b90010009c000000420000213d00000017020000290000012002200039000d00000002001d0000000000120435000003e00100043d0000ffff0010008c000000420000213d00000017020000290000014002200039000c00000002001d0000000000120435000004000100043d000009b90010009c000000420000213d00000017020000290000016002200039000b00000002001d0000000000120435000004200100043d000000000001004b0000000002000039000000010200c039000000000021004b000000420000c13d00000017020000290000018002200039000a00000002001d0000000000120435000000400100043d000009c10010009c000000470000213d0000006002100039000000400020043f000004400200043d000000000002004b0000000004000039000000010400c039000000000042004b000000420000c13d0000000002210436000004600400043d000009c20040009c000000420000213d0000000000420435000004800500043d000009c20050009c000000420000213d00000040041000390000000000540435000004a00600043d000009be0060009c000000420000213d000001a005300039000001bf07600039000000000057004b000000420000813d000001a0076000390000000008070433000009be0080009c000000470000213d00000005078002100000003f07700039000009c307700197000000400900043d0000000007790019000900000009001d000000000097004b00000000090000390000000109004039000009be0070009c000000470000213d0000000100900190000000470000c13d000000400070043f00000009090000290000000007890436000800000007001d000001c006600039000000a0078000c90000000007670019003300200090003d000000000057004b000000420000213d00070000000a001d000000000008004b000011080000c13d000004c00700043d000009be0070009c000000420000213d0000001f06700039000000000036004b0000000008000019000009c608004041000009c606600197000000000006004b0000000009000019000009c609002041000009c60060009c000000000908c019000000000009004b000000420000613d000001a0067000390000000009060433000009be0090009c000000470000213d0000000506900210000000400a00043d00320000000a001d0000003f06600039000009c30660019700000000066a00190000000000a6004b00000000080000390000000108004039000009be0060009c000000470000213d0000000100800190000000470000c13d000000400060043f00000000069a0436000001c007700039000000e0089000c900000000087800190031002000a0003d000000000058004b000000420000213d000000000009004b00000e5b0000c13d000004e00600043d000009be0060009c000000420000213d0000001f07600039000000000037004b0000000003000019000009c603004041000009c607700197000000000007004b0000000008000019000009c608002041000009c60070009c000000000803c019000000000008004b000000420000613d000001a0036000390000000008030433000009be0080009c000000470000213d0000000503800210000000400900043d003000000009001d0000003f03300039000009c3033001970000000003390019000000000093004b00000000070000390000000107004039000009be0030009c000000470000213d0000000100700190000000470000c13d000000400030043f0000000003890436000001c00660003900000006078002100000000007670019002f00200090003d000000000057004b000000420000213d000000000008004b000002500000613d0000000008650049000009c40080009c000000420000213d000000400080008c000000420000413d000000400800043d000009c80080009c000000470000213d0000004009800039000000400090043f000000009a060434000009bd00a0009c000000420000213d000000000aa8043600000000090904330000ffff0090008c000000420000213d00000000009a043500000000038304360000004006600039000000000076004b0000023a0000413d000000400300043d000600000003001d0000000003000411000000000003004b00001b110000c13d0000000603000029000000440130003900000a07020000410000000000210435000000240130003900000018020000390000000000210435000009f8010000410000000000130435000000040130003900000020020000390000000000210435000009b90030009c000009b9030080410000004001300210000009fd011001c7000026e00001043000000a260020009c000002820000213d00000a2a0020009c000004f10000613d00000a2b0020009c0000048d0000613d00000a2c0020009c000000420000c13d0000000001000416000000000001004b000000420000c13d000000c001000039000000400010043f0000001301000039000000800010043f00000a7b01000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003926de21d40000040f000000c00110008a000009b90010009c000009b901008041000000600110021000000a7c011001c7000026df0001042e00000a270020009c000005630000613d00000a280020009c000004e20000613d00000a290020009c000000420000c13d000000440030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b000009be0020009c000000420000213d0000002304200039000000000034004b000000420000813d0000000404200039000000000441034f000000000504043b000009be0050009c000000470000213d00000005045002100000003f04400039000009c304400197000009dc0040009c000000470000213d0000008004400039000000400040043f000000800050043f0000002402200039000000e0045000c90000000004240019000000000034004b000000420000213d000000000005004b000008a80000c13d0000002402100370000000000202043b000009be0020009c000000420000213d0000002304200039000000000034004b0000000005000019000009c605004041000009c604400197000000000004004b0000000006000019000009c606002041000009c60040009c000000000605c019000000000006004b000000420000613d0000000404200039000000000441034f000000000404043b000009be0040009c000000470000213d00000005054002100000003f06500039000009c306600197000000400700043d0000000006670019001500000007001d000000000076004b00000000070000390000000107004039000009be0060009c000000470000213d0000000100700190000000470000c13d000000400060043f00000015060000290000000006460436001400000006001d00000024022000390000000005250019000000000035004b000000420000213d000000000004004b000002dd0000613d0000001403000029000000000421034f000000000404043b000009bd0040009c000000420000213d00000000034304360000002002200039000000000052004b000002d50000413d000000000100041a000009bd021001970000000001000411000000000021004b000002e70000613d0000000202000039000000000202041a000009bd02200197000000000021004b00000a800000c13d000000800100043d000000000001004b00000c4a0000c13d000000400100043d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b0000031a0000613d000000a004000039000000000500001900000000460404340000000087060434000009bd0770019700000000077204360000000008080433000009b908800197000000000087043500000040076000390000000007070433000009b90770019700000040082000390000000000780435000000600760003900000000070704330000ffff0770018f0000006008200039000000000078043500000080076000390000000007070433000009b90770019700000080082000390000000000780435000000a0076000390000000007070433000009b907700197000000a0082000390000000000780435000000c0066000390000000006060433000000000006004b0000000006000039000000010600c039000000c0072000390000000000670435000000e0022000390000000105500039000000000035004b000002f40000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009ea0400004126de26d40000040f0000000100200190000000420000613d00000015010000290000000001010433000000000001004b0000083b0000613d0000000002000019001d00000002001d000000050120021000000014011000290000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b0000001d02000029000000010220003900000015010000290000000001010433000000000012004b000003330000413d000000000001004b0000083b0000613d000000400100043d000000200200003900000000022104360000001503000029000000000303043300000000003204350000004002100039000000000003004b0000035f0000613d000000000400001900000014060000290000000065060434000009bd0550019700000000025204360000000104400039000000000034004b000003590000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009eb040000410000080f0000013d00000a230020009c0000076c0000613d00000a240020009c000006db0000613d00000a250020009c000000420000c13d0000000001000416000000000001004b000000420000c13d000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f0000000301000039000000000101041a000009c202100197000001200020043f0000008002100270000009b902200197001d00000002001d000001400020043f00000a41001001980000000001000039000000010100c039000001600010043f0000000401000039000000000101041a000009c202100197001c00000002001d000001800020043f0000008001100270000001a00010043f0000026001000039000000400010043f000001c00000043f000001e00000043f000002000000043f000002200000043f000002400000043f000009ca0100004100000000001004430000000001000414000009b90010009c000009b901008041000000c001100210000009cb011001c70000800b0200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000001d06000029000000000361004b000004eb0000413d000001a00200043d000009c20520019700000000023500a9000001200400043d000000000061004b000003b10000613d00000000033200d9000000000053004b000004eb0000c13d000009c203400197000000000032001a000004eb0000413d00000000023200190000001c0020006b00000000030200190000001c03004029000001200030043f000009b901100197000001400010043f000000400100043d0000000002310436000001400300043d000009b9033001970000000000320435000001600200043d000000000002004b0000000002000039000000010200c03900000040031000390000000000230435000001800200043d000009c20220019700000060031000390000000000230435000001a00200043d000009c20220019700000080031000390000000000230435000009b90010009c000009b901008041000000400110021000000a6d011001c7000026df0001042e00000a190020009c0000077b0000613d00000a1a0020009c000007310000613d00000a1b0020009c000000420000c13d0000000001000416000000000001004b000000420000c13d0000000101000039000000000201041a000009bd032001970000000006000411000000000036004b000007f90000c13d000000000300041a000009c904300197000000000464019f000000000040041b000009c902200197000000000021041b0000000001000414000009bd05300197000009b90010009c000009b901008041000000c001100210000009d0011001c70000800d02000039000000030300003900000a6404000041000008380000013d00000a100020009c000007ba0000613d00000a110020009c000007610000613d00000a120020009c000000420000c13d000000840030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b001d00000002001d000009be0020009c000000420000213d0000002402100370000000000202043b000009be0020009c000000420000213d0000000002230049000009c40020009c000000420000213d000000a40020008c000000420000413d0000006401100370000000000101043b001e00000001001d001c00000001001d000009bd0010009c000000420000213d00000a3301000041000000800010043f0000001d01000029000000800110021000000a3401100197000000840010043f00000a3501000041000000000010044300000000010004120000000400100443000000e00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000201043b0000000001000414000009bd02200197000000040020008c000008e90000c13d0000000103000031000000200030008c000000200400003900000000040340190000090f0000013d00000a1f0020009c0000063a0000613d00000a200020009c000000420000c13d000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000101043b000009bd0010009c000000420000213d0000000202000039000000000302041a000000000400041a000009bd054001970000000004000411000000000054004b000008030000613d000009bd05300197000000000054004b000008030000613d00000a5c01000041000000800010043f00000a2e01000041000026e00001043000000a150020009c000006870000613d00000a160020009c000000420000c13d0000000001000416000000000001004b000000420000c13d0000000801000039000000000101041a001b00000001001d000009be0010009c000000470000213d0000001b0100002900000005011002100000003f02100039000009c302200197000009dc0020009c000000470000213d0000008004200039000000400040043f0000001b03000029000000800030043f000000000003004b0000081a0000c13d001b00000004001d0000000e01000039000000000101041a001d00000001001d00000040010000390000000001140436001c00000001001d0000004002400039000000800100003926de22260000040f0000001d020000290000006002200270000009b9022001970000001c0300002900000000002304350000001b020000290000000001210049000009b90010009c000009b901008041000009b90020009c000009b90200804100000060011002100000004002200210000000000121019f000026df0001042e00000a0c0020009c000006c10000613d00000a0d0020009c000000420000c13d000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000101043b000009be0010009c000000420000213d00000a2d01000041000000800010043f00000a2e01000041000026e000010430000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000101043b000009bd0010009c000000420000213d0000016002000039000000400020043f000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000001400000043f000000000010043f0000000c01000039000000200010043f0000004002000039000000000100001926de26a10000040f001d00000001001d000001600100003926de21be0000040f0000001d01000029000000000101041a000009b902100197000001600020043f0000002003100270000009b903300197000001800030043f00000040031002700000ffff0330018f000001a00030043f0000005003100270000009b903300197000001c00030043f0000007003100270000009b903300197000001e00030043f00000a3c001001980000000003000039000000010300c039000002000030043f00000a53001001980000000001000039000000010100c039000002200010043f000000400100043d0000000002210436000001800300043d000009b9033001970000000000320435000001a00200043d0000ffff0220018f00000040031000390000000000230435000001c00200043d000009b90220019700000060031000390000000000230435000001e00200043d000009b90220019700000080031000390000000000230435000002000200043d000000000002004b0000000002000039000000010200c039000000a0031000390000000000230435000002200200043d000000000002004b0000000002000039000000010200c039000000c0031000390000000000230435000009b90010009c000009b901008041000000400110021000000a7d011001c7000026df0001042e0000000001000416000000000001004b000000420000c13d0000000e01000039000000000101041a0000008001100270000009be01100197000009be0010009c000007f50000c13d00000a6501000041000000000010043f0000001101000039000000040010043f000009ef01000041000026e0000104300000000001000416000000000001004b000000420000c13d000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000001400000043f000001600000043f0000028001000039000000400010043f0000000001000412002e00000001001d002d00600000003d0000800501000039000000440300003900000000040004150000002e0440008a000000050440021000000a350200004126de26b60000040f000009bd01100197000001800010043f0000000001000412002c00000001001d002b00800000003d00000000040004150000002c0440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009be01100197000001a00010043f0000000001000412002a00000001001d002900a00000003d00000000040004150000002a0440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009be01100197000001c00010043f0000000001000412002800000001001d002700200000003d0000000004000415000000280440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009be01100197000001e00010043f0000000001000412002600000001001d002500400000003d0000000004000415000000260440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009bf01100197000002000010043f0000000001000412002400000001001d002300c00000003d0000000004000415000000240440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009bd01100197000002200010043f0000000001000412002200000001001d002100e00000003d0000000004000415000000220440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009bd01100197000002400010043f0000000001000412002000000001001d001f01000000003d0000000004000415000000200440008a0000000504400210000080050100003900000a3502000041000000440300003926de26b60000040f000009bd01100197000002600010043f0000018001000039000002800200003926de21990000040f00000a7e01000041000026df0001042e000000440030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b001d00000002001d000009be0020009c000000420000213d0000002401100370000000000101043b001c00000001001d000009be0010009c000000420000213d0000001c0130006a000009c40010009c000000420000213d000000a40010008c000000420000413d00000a3501000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000001d03000029000000000131013f000009be001001980000084c0000c13d0000001c04000029001b00840040003d00000002020003670000001b01200360000000000301043b00000000010000310000000004410049000000230440008a000009c605400197000009c606300197000000000756013f000000000056004b0000000005000019000009c605004041000000000043004b0000000004000019000009c604008041000009c60070009c000000000504c019000000000005004b000000420000c13d0000001c04000029001a00040040003d0000001a03300029000000000232034f000000000202043b000009be0020009c000000420000213d00000000042100490000002001300039000009c603400197000009c605100197000000000635013f000000000035004b0000000003000019000009c603004041000000000041004b0000000004000019000009c604002041000009c60060009c000000000304c019000000000003004b000000420000c13d26de255e0000040f0000001b02000029001b00600020009200000002020003670000001b03200360000000000603043b00000000030000310000001a0430006a0000001f0440008a000009c605400197000009c607600197000000000857013f000000000057004b0000000007000019000009c607004041000000000046004b0000000009000019000009c609008041000009c60080009c000000000709c019001900000001001d000000000007004b000000420000c13d0000001a06600029000000000162034f000000000101043b000009be0010009c000000420000213d00000000071300490000002006600039000000000076004b0000000008000019000009c608002041000009c607700197000009c606600197000000000976013f000000000076004b0000000006000019000009c606004041000009c60090009c000000000608c019000000000006004b000000420000c13d0000001b06000029001800200060003d0000001806200360000000000606043b000009c607600197000000000857013f000000000057004b0000000005000019000009c605004041000000000046004b0000000004000019000009c604008041000009c60080009c000000000504c019000000000005004b000000420000c13d000000190400002900000000050404330000001a06600029000000000462034f000000000404043b000009be0040009c000000420000213d000000060740021000000000037300490000002006600039000000000036004b0000000007000019000009c607002041000009c603300197000009c606600197000000000836013f000000000036004b0000000003000019000009c603004041000009c60080009c000000000307c019000000000003004b000000420000c13d0000000603000039000000000603041a000000c003600270000009b903300197000000000013004b00000cd30000813d000000400200043d0000002404200039000000000014043500000a5a01000041000000000012043500000004012000390000000000310435000009b90020009c000009b9020080410000004001200210000009e9011001c7000026e000010430000000440030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b001d00000002001d000009bd0020009c000000420000213d0000002401100370000000000101043b001c00000001001d000009bd0010009c000000420000213d000000000100041a000009bd021001970000000001000411000000000021004b000006330000613d0000000202000039000000000202041a000009bd02200197000000000021004b000008480000c13d0000001c01000029000009bd001001980000083d0000c13d00000a6c01000041000000800010043f00000a2e01000041000026e0000104300000000001000416000000000001004b000000420000c13d0000000201000039000000000101041a000009bd01100197000000800010043f00000a6201000041000026df0001042e000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000101043b001d00000001001d000009bd0010009c000000420000213d0000001d01000029000000000010043f0000000d01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a001c00000001001d00000a3501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000400b00043d0000001c02000029000009be03200197000000000101043b000009bd02100198000008560000613d000000000003004b000008560000c13d00000a4a0100004100000000001b04350000000401b000390000001d0300002900000000003104350000000001000414000000040020008c000009210000c13d0000000103000031000000200030008c000000200400003900000000040340190000094e0000013d0000000001000416000000000001004b000000420000c13d26de235a0000040f0000000001000019000026df0001042e000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000101043b000009bd0010009c000000420000213d0000010002000039000000400020043f000000800000043f000000a00000043f000000c00000043f000000e00000043f000000000010043f0000000b01000039000000200010043f0000004002000039000000000100001926de26a10000040f001d00000001001d000001000100003926de21c90000040f0000001d01000029000000000101041a000009b902100197000001000020043f0000002003100270000009be03300197000001200030043f0000006003100270000009be03300197000001400030043f00000a41001001980000000001000039000000010100c039000001600010043f000000400100043d0000000002210436000001200300043d000009be033001970000000000320435000001400200043d000009be0220019700000040031000390000000000230435000001600200043d000000000002004b0000000002000039000000010200c03900000060031000390000000000230435000009b90010009c000009b901008041000000400110021000000a61011001c7000026df0001042e000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000401100370000000000601043b000009bd0060009c000000420000213d000000000100041a000009bd011001970000000005000411000000000015004b000008100000c13d000000000056004b0000082b0000c13d000009f801000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f00000a3201000041000000c40010043f00000a3001000041000026e000010430000001a40030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000022002000039000000400020043f0000000402100370000000000202043b000009bd0020009c000000420000213d000000800020043f0000002403100370000000000303043b0000ffff0030008c000000420000213d000000a00030043f0000004404100370000000000404043b000009b90040009c000000420000213d000000c00040043f0000006405100370000000000605043b0000ffff0060008c000000420000213d000000e00060043f0000008405100370000000000705043b000009b90070009c000000420000213d000001000070043f000000a405100370000000000505043b0000ffff0050008c000000420000213d000001200050043f000000c408100370000000000808043b0000ffff0080008c000000420000213d000001400080043f000000e409100370000000000909043b000009bd0090009c000000420000213d000001600090043f000001040a100370000000000b0a043b000009b900b0009c000000420000213d0000018000b0043f000001240a100370000000000c0a043b000009b900c0009c000000420000213d000001a000c0043f000001440a100370000000000a0a043b0000ffff00a0008c000000420000213d000001c000a0043f000001640d100370000000000d0d043b000009b900d0009c000000420000213d000001e000d0043f0000018401100370000000000101043b000000000001004b000000000e000039000000010e00c0390000000000e1004b000000420000c13d000002000010043f000000000e00041a000009bd0ee00197000000000f0004110000000000ef004b00000cd90000c13d000000000009004b00000ce30000c13d00000a0601000041000002200010043f00000a6f01000041000026e000010430000000240030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000402043b000009be0040009c000000420000213d0000002302400039000000000032004b000000420000813d0000000402400039000000000221034f000000000202043b0000000008020019000009be0020009c000000420000213d000000060280021000000024052001bf0000000002450019000000000032004b000000420000213d000000000600041a000009bd076001970000000006000411000000000076004b000007520000613d0000000207000039000000000707041a000009bd07700197000000000076004b000008480000c13d00000005068002100000003f06600039000009c306600197000009dc0060009c000000470000213d0000008006600039000000400060043f000000800080043f000000240050008c000009970000c13d000000400080008c000009b50000a13d000000400100043d00000a6602000041000008420000013d0000000001000416000000000001004b000000420000c13d26de22bf0000040f000000400200043d0000000000120435000009b90020009c000009b902008041000000400120021000000a58011001c7000026df0001042e000000440030008c000000420000413d0000000002000416000000000002004b000000420000c13d0000000402100370000000000202043b000009be0020009c000000420000213d0000002401100370000000000101043b000009bd0010009c000000420000213d26de22390000040f000007650000013d0000000001000416000000000001004b000000420000c13d000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000001400000043f000001600000043f000001800000043f000001a00000043f000001c00000043f000001e00000043f000002000000043f000003c002000039000000400020043f0000000501000039000000000101041a000009bd03100197000002200030043f000000a0031002700000ffff0330018f000002400030043f000000b003100270000009b903300197000002600030043f000000d0031002700000ffff0330018f000002800030043f000000e001100270000002a00010043f0000000601000039000000000101041a0000ffff0310018f000002c00030043f00000010031002700000ffff0330018f000002e00030043f0000002003100270000009bd03300197000003000030043f000000c003100270000009b903300197000003200030043f000000e001100270000003400010043f0000000701000039000000000101041a0000ffff0310018f000003600030043f0000001003100270000009b903300197000003800030043f00000a3b001001980000000001000039000000010100c039000003a00010043f000002200100003926de21e60000040f00000a6701000041000026df0001042e000000640030008c000000420000413d0000000002000416000000000002004b000000420000c13d000000e002000039000000400020043f0000000402100370000000000202043b000000000002004b0000000003000039000000010300c039000000000032004b000000420000c13d000000800020043f0000002402100370000000000202043b000009c20020009c000000420000213d000000a00020043f0000004401100370000000000101043b000009c20010009c000000420000213d000000c00010043f000000000100041a000009bd021001970000000001000411000000000021004b000007dd0000613d0000000202000039000000000202041a000009bd02200197000000000021004b000009930000c13d0000000301000039000000000101041a001d00000001001d000009ca0100004100000000001004430000000001000414000009b90010009c000009b901008041000000c001100210000009cb011001c70000800b0200003926de26d90000040f0000000100200190000021370000613d0000001d060000290000008002600270000009b902200197000000000101043b000000000421004b000004eb0000413d00000a410000c13d0000000304000039000000000104041a00000a560000013d0000000101100039000000800010043f00000a6201000041000026df0001042e000009f801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f00000a6301000041000000c40010043f00000a3001000041000026e000010430000009c903300197000000000313019f000000000032041b000000800010043f0000000001000414000009b90010009c000009b901008041000000c00110021000000a68011001c70000800d02000039000000010300003900000a6904000041000008380000013d000009f801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f00000a2f01000041000000c40010043f00000a3001000041000026e000010430000009f20020009c000000470000213d00000000020000190000004003400039000000400030043f000000200340003900000000000304350000000000040435000000a00320003900000000004304350000002002200039000000000012004b000008770000813d000000400400043d000009c80040009c0000081d0000a13d000000470000013d0000000101000039000000000201041a000009c902200197000000000262019f000000000021041b0000000001000414000009b90010009c000009b901008041000000c001100210000009d0011001c70000800d02000039000000030300003900000a310400004126de26d40000040f0000000100200190000000420000613d0000000001000019000026df0001042e26de22bf0000040f000009c60010009c0000085d0000413d000000400100043d00000a6b020000410000000000210435000009b90010009c000009b9010080410000004001100210000009ed011001c7000026e00001043000000a6a01000041000000800010043f00000a2e01000041000026e000010430000000400100043d00000a3a02000041000000000021043500000004021000390000000000320435000009b90010009c000009b9010080410000004001100210000009ef011001c7000026e00001043000000000010b00190000000000310435000009b90010009c000009b901008041000000400110021000000a58011001c7000026df0001042e001b00000001001d00000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd021001970000001d01000029000000000021004b00000a320000c13d0000001c020000290000001b0300002926de25c60000040f0000000001000019000026df0001042e00000000030000190000000801000039000000000101041a000000000031004b000021380000a13d001d00000003001d000009f00130009a000000000101041a001c00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000400200043d000009c80020009c000000470000213d000000000101043b000000000101041a0000004003200039000000400030043f0000ffff0110018f000000200320003900000000001304350000001c01000029000009bd011001970000000000120435000000800100043d0000001d03000029000000000031004b000021380000a13d0000000501300210000000a0011000390000000000210435000000800100043d000000000031004b000021380000a13d00000001033000390000001b0030006c000008780000413d000000400400043d000004630000013d000000a0050000390000000006230049000009c40060009c000000420000213d000000e00060008c000000420000413d000000400600043d000009c70060009c000000470000213d000000e007600039000000400070043f000000000721034f000000000707043b000009bd0070009c000000420000213d00000000087604360000002007200039000000000971034f000000000909043b000009b90090009c000000420000213d00000000009804350000002007700039000000000871034f000000000808043b000009b90080009c000000420000213d000000400960003900000000008904350000002007700039000000000871034f000000000808043b0000ffff0080008c000000420000213d000000600960003900000000008904350000002007700039000000000871034f000000000808043b000009b90080009c000000420000213d000000800960003900000000008904350000002007700039000000000871034f000000000808043b000009b90080009c000000420000213d000000a00960003900000000008904350000002007700039000000000771034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b000000420000c13d000000c00860003900000000007804350000000005650436000000e002200039000000000042004b000008a90000413d000002a80000013d000009b90010009c000009b901008041000000c00110021000000a37011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a000039000008fe0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000008fa0000c13d000000000006004b0000090b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000a080000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000420000413d000000800200043d000000000002004b0000000003000039000000010300c039000000000032004b000000420000c13d000000000002004b00000af30000c13d0000001c0000006b00000b370000c13d00000a5b0200004100000af40000013d000009b900b0009c000009b90300004100000000030b40190000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c7001d0000000b001d26de26d90000040f0000001d0b00002900000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000093d0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000009390000c13d000000000006004b0000094a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000a140000613d0000001f01400039000000600210018f00000000040b00190000000001b20019000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000000003040433000009be0030009c000008570000a13d000000420000013d000000a0050000390000000006230049000009c40060009c000000420000213d000000a00060008c000000420000413d000000400600043d000009c50060009c000000470000213d000000a007600039000000400070043f000000000721034f000000000707043b000009bd0070009c000000420000213d00000000087604360000002007200039000000000971034f000000000909043b000009b90090009c000000420000213d00000000009804350000002007700039000000000871034f000000000808043b000009be0080009c000000420000213d000000400960003900000000008904350000002007700039000000000871034f000000000808043b000009be0080009c000000420000213d000000600960003900000000008904350000002007700039000000000771034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b000000420000c13d000000800860003900000000007804350000000005650436000000a002200039000000000042004b000009610000413d000000880000013d00000a5c01000041000000e00010043f00000a5d01000041000026e000010430000000a00500003900000024044000390000000006430049000009c40060009c000000420000213d000000400060008c000000420000413d000000400600043d000009c80060009c000000470000213d0000004007600039000000400070043f000000000741034f000000000707043b000009bd0070009c000000420000213d00000000077604360000002008400039000000000881034f000000000808043b0000ffff0080008c000000420000213d000000000087043500000000056504360000004004400039000000000024004b000009990000413d000000800800043d000000400080008c0000075e0000213d001900000008001d0000000e01000039000000000101041a000009bf021001970000006001100270000009b901100197000000010110008a000000000021004b000009bf0000813d26de235a0000040f0000000803000039000000000103041a000000000001004b00000a830000c13d00000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000000190000006b000000000400001900000bec0000c13d0000000e03000039000000000103041a00000a0101100197000000600240021000000a0202200197000000000112019f000000000013041b000000400100043d00000020021000390000004003000039000000000032043500000000004104350000004002100039000000800300043d00000000003204350000006002100039000000000003004b000009f60000613d00000080040000390000000005000019000000200440003900000000060404330000000076060434000009bd06600197000000000662043600000000070704330000ffff0770018f000000000076043500000040022000390000000105500039000000000035004b000009ea0000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d02000039000000010300003900000a03040000410000080f0000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a0f0000c13d00000a1f0000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a1b0000c13d000000000005004b00000a2c0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009b90020009c000009b9020080410000004002200210000000000112019f000026e000010430000000400300043d000009ee020000410000000000230435001b00000003001d0000000403300039000000000200041000000000002304350000000003000414000000040010008c00000af80000c13d0000000103000031000000200030008c0000002004000039000000000403401900000b250000013d0000000402000039000000000202041a000000800520027000000000034500a900000000044300d9000000000054004b000004eb0000c13d000009c204600197000000000043001a000004eb0000413d000009c2022001970000000003430019000000000032004b00000000020380190000008001100210000009cd01100197000000000112019f0000000304000039000000000204041a000009c902200197000000000121019f000000a00200043d000009c202200197000009c203100197000000000032004b000000000302401900000a5e01100197000000000113019f000000800300043d000000000003004b0000000003000019000009cc0300c041000000000131019f000000000014041b000000c00100043d0000008001100210000000000121019f0000000402000039000000000012041b0000000001000039000000010100c039000000400200043d0000000001120436000000a00300043d000009c2033001970000000000310435000000c00100043d000009c20110019700000040032000390000000000130435000009b90020009c000009b90200804100000040012002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f00000a5f011001c70000800d02000039000000010300003900000a60040000410000080f0000013d000000400100043d00000a6a02000041000008420000013d000080100200003900000a8a0000013d0000001c01000029000000000001004b00000008030000390000801002000039000009c30000613d001c000100100092000000000303041a0000001c0030006c000021380000a13d000009ff0110009a000000000101041a001d00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c726de26d90000040f0000000100200190000000420000613d0000001d01000029000009bd01100197001d00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b0000001d01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000501041a000000000005004b00000a850000613d0000000803000039000000000403041a000000000004004b0000801002000039000004eb0000613d000000010150008a000000000045004b00000ae10000613d000000000014004b000021380000a13d000009ff0150009a000009ff0340009a000000000303041a000000000031041b000000000030043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7001b00000005001d26de26d90000040f0000000100200190000000420000613d000000000101043b0000001b02000029000000000021041b0000000803000039000000000503041a000000000005004b0000213e0000613d000000010150008a0000801002000039000009ff0450009a000000000004041b000000000013041b0000001d01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c726de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b00000a850000013d00000a380200004100000000002104350000004001100210000009ed011001c7000026e0000104300000001b01000029000009b90010009c000009b90200004100000000020140190000004002200210000009b90030009c000009b903008041000000c001300210000000000121019f000009ef011001c70000001d0200002926de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001b0570002900000b140000613d000000000801034f0000001b09000029000000008a08043c0000000009a90436000000000059004b00000b100000c13d000000000006004b00000b210000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000be00000613d0000001f01400039000000600210018f0000001b01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000001b010000290000000001010433001b00000001001d0000001d01000029000008720000013d0000000502000039000000000202041a000009bd022001970000000003000411000000000023004b00000c480000c13d00000a3501000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000001d0110014f000009be0010019800000cba0000c13d00000002010003670000002402100370000000000202043b0000008403200039000000000331034f000000000403043b00000000030000310000000005230049000000230550008a000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605008041000009c60080009c000000000605c019000000000006004b000000420000c13d00000000024200190000000404200039000000000141034f000000000201043b000009be0020009c000000420000213d00000000032300490000002001400039000009c604300197000009c605100197000000000645013f000000000045004b0000000004000019000009c604004041000000000031004b0000000003000019000009c603002041000009c60060009c000000000403c019000000000004004b000000420000c13d26de255e0000040f00000002020003670000002403200370000000000703043b0000004405700039000000000352034f000000000803043b00000000030000310000000004730049000000230440008a000009c606400197000009c609800197000000000a69013f000000000069004b0000000009000019000009c609004041000000000048004b000000000b000019000009c60b008041000009c600a0009c00000000090bc019001500000001001d000000000009004b000000420000c13d00000004017000390000000007180019000000000872034f000000000808043b001600000008001d000009be0080009c000000420000213d0000001608000029000000060880021000000000088300490000002007700039000000000087004b0000000009000019000009c609002041000009c608800197000009c607700197000000000a87013f000000000087004b0000000007000019000009c607004041000009c600a0009c000000000709c019000000000007004b000000420000c13d000000200550008a000000000552034f000000000505043b000009c607500197000000000867013f000000000067004b0000000006000019000009c606004041000000000045004b0000000004000019000009c604008041000009c60080009c000000000604c019000000000006004b000000420000c13d0000000004150019000000000142034f000000000101043b000009be0010009c000000420000213d00000000021300490000002003400039000000000023004b0000000004000019000009c604002041000009c602200197000009c603300197000000000523013f000000000023004b0000000002000019000009c602004041000009c60050009c000000000204c019000000000002004b000000420000c13d0000000602000039000000000302041a000000c002300270000009b902200197000000000012004b00000ea10000813d000000400300043d0000002404300039000000000014043500000a5a01000041000000000013043500000004013000390000000000210435000009b90030009c000009b9030080410000004001300210000009e9011001c7000026e0000104300000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000be70000c13d00000a1f0000013d001809bd0010019b000080100300003900000000020000190000000004000019000000800100043d000000000021004b000021380000a13d001b00000004001d001a00000002001d0000000501200210000000a00110003900000000010104330000000012010434000009bd04200197000000180040006c00000cc00000613d000000000004004b00000cc00000613d0000000001010433001c00000001001d000000000040043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c70000000002030019001d00000004001d26de26d90000040f0000000100200190000000420000613d0000001c020000290000ffff0220018f000000000101043b001c00000002001d000000000021041b0000001d01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001d04000029000000000101043b000000000101041a000000000001004b00000c3d0000c13d0000000803000039000000000103041a000009be0010009c000000470000213d0000000102100039000000000023041b000009f00110009a000000000041041b000000000103041a001700000001001d000000000040043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b0000001702000029000000000021041b0000001b01000029000009b9011001970000001c04100029000009b90040009c000004eb0000213d0000001a020000290000000102200039000000190020006c000080100300003900000bf00000413d000009d60000013d00000a390200004100000af40000013d0000000002000019000000400900043d001d00000002001d0000000501200210000000a0011000390000000001010433000000a0021000390000000002020433000009b9022001970000001f0020008c00000cc60000a13d000009c70090009c000000470000213d00000040031000390000000003030433000000200410003900000000040404330000006005100039000000000505043300000080061000390000000006060433000000c0071000390000000007070433000000e008900039000000400080043f000000c00a9000390000000108000039001b0000000a001d00000000008a0435000000000007004b0000000007000039000000010700c039000000a008900039001a00000008001d00000000007804350000008007900039001900000007001d0000000000270435000009b9026001970000006006900039001800000006001d00000000002604350000ffff0250018f0000004005900039001700000005001d0000000000250435000009b902400197001c00000009001d0000000004290436000009b902300197001600000004001d00000000002404350000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001c020000290000000002020433000009b902200197000000000101043b000000000301041a000009c903300197000000000223019f000000160300002900000000030304330000002003300210000009e203300197000000000232019f000000170300002900000000030304330000004003300210000009e303300197000000000232019f000000180300002900000000030304330000005003300210000009e403300197000000000232019f000000190300002900000000030304330000007003300210000009e503300197000000000232019f0000001a030000290000000003030433000000000003004b000009e6030000410000000003006019000000000232019f0000001b030000290000000003030433000000000003004b000009e7030000410000000003006019000000000232019f000000000021041b0000001d020000290000000102200039000000800100043d000000000012004b00000c4b0000413d000002ea0000013d000000400100043d00000a3a02000041000000000021043500000004021000390000001d03000029000008500000013d000000400100043d00000a0002000041000000000021043500000004021000390000000000420435000008510000013d000000000101043300000024039000390000000000230435000009e8020000410000000000290435000009bd0110019700000004029000390000000000120435000009b90090009c000009b9090080410000004001900210000009e9011001c7000026e000010430000000e001600270000000000051004b00000dfd0000813d000000400100043d00000a7a02000041000008420000013d000009f801000041000002200010043f0000002001000039000002240010043f0000001601000039000002440010043f00000a2f01000041000002640010043f00000a6e01000041000026e000010430000000a003300210000009d103300197000000b004400210000009d204400197000000000334019f000000d004600210000009d304400197000000000343019f000000e004700210000000000343019f000000000223019f0000000503000039000000000023041b0000001002800210000009d5022001970000002003900210000009d403300197000000000223019f000000c003b00210000009d603300197000000000232019f000000e003c00210000000000232019f000000000252019f0000000603000039000000000023041b000000000001004b0000000001000019000009d90100c0410000001002d00210000009d802200197000000000112019f0000000702000039000000000302041a000009d703300197000000000131019f0000000001a1019f000000000012041b0000032001000039000000400010043f00000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd01100197000002200010043f00000a3501000041000000000010044300000000010004120000000400100443000000800100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009be01100197000002400010043f00000a3501000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009be01100197000002600010043f00000a3501000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009be01100197000002800010043f00000a3501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bf01100197000002a00010043f00000a3501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd01100197000002c00010043f00000a3501000041000000000010044300000000010004120000000400100443000000e00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd01100197000002e00010043f00000a3501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd01100197000003000010043f000002200100043d000009bd02100197000000400100043d0000000002210436000002400300043d000009be033001970000000000320435000002600200043d000009be0220019700000040031000390000000000230435000002800200043d000009be0220019700000060031000390000000000230435000002a00200043d000009bf0220019700000080031000390000000000230435000002c00200043d000009bd02200197000000a0031000390000000000230435000002e00200043d000009bd02200197000000c0031000390000000000230435000003000200043d000009bd02200197000000e0031000390000000000230435000000800200043d000009bd0220019700000100031000390000000000230435000000a00200043d0000ffff0220018f00000120031000390000000000230435000000c00200043d000009b90220019700000140031000390000000000230435000000e00200043d0000ffff0220018f00000160031000390000000000230435000001000200043d000009b90220019700000180031000390000000000230435000001200200043d0000ffff0220018f000001a0031000390000000000230435000001400200043d0000ffff0220018f000001c0031000390000000000230435000001600200043d000009bd02200197000001e0031000390000000000230435000001800200043d000009b90220019700000200031000390000000000230435000001a00200043d000009b90220019700000220031000390000000000230435000001c00200043d0000ffff0220018f00000240031000390000000000230435000001e00200043d000009b90220019700000260031000390000000000230435000002000200043d000000000002004b0000000002000039000000010200c03900000280031000390000000000230435000009b90010009c000009b90100804100000040011002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009da011001c70000800d020000390000000103000039000009db040000410000080f0000013d0000000501000039000000000101041a000000a0011002700000ffff0110018f000000000041004b00000e060000813d000000400100043d00000a7902000041000008420000013d000000190100002900000020011000390000000001010433000000000001004b00000e0f0000c13d0000000701000039000000000101041a00000a3b0010019800000ef90000c13d0000001801000029001700200010003d0000001701200360000000000101043b000009bd0010009c000000420000213d000000000010043f0000000b01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000400200043d001600000002001d000009dc0020009c000000470000213d0000001c02000029001500640020003d000000000101043b00000016050000290000008002500039000000400020043f000000000101041a000000600250003900000a41001001980000000003000039000000010300c0390000000000320435000009b90210019700000000042504360000006002100270000009be022001970000004003500039000800000003001d00000000002304350000002001100270000009be01100197000700000004001d0000000000140435000000020100036700000e930000613d00000017011003600000000602000039000000000202041a000600000002001d000000000101043b000009bd0010009c000000420000213d000000400400043d00000024024000390000001d03000029000000000032043500000a72020000410000000002240436001d00000002001d001700000004001d00000004024000390000000000120435000000000100041400000006020000290000002002200270000009bd02200197000900000002001d000000040020008c00000efc0000c13d0000000103000031000000400030008c0000004004000039000000000403401900000f280000013d0000000009750049000009c40090009c000000420000213d000000e00090008c000000420000413d000000400900043d000009c70090009c000000470000213d000000e00a9000390000004000a0043f00000000ab070434000009bd00b0009c000000420000213d000000000bb90436000000000a0a0433000009b900a0009c000000420000213d0000000000ab0435000000400a700039000000000a0a0433000009b900a0009c000000420000213d000000400b9000390000000000ab0435000000600a700039000000000a0a04330000ffff00a0008c000000420000213d000000600b9000390000000000ab0435000000800a700039000000000a0a0433000009b900a0009c000000420000213d000000800b9000390000000000ab0435000000a00a700039000000000a0a0433000009b900a0009c000000420000213d000000a00b9000390000000000ab0435000000c00a700039000000000a0a043300000000000a004b000000000b000039000000010b00c0390000000000ba004b000000420000c13d000000c00b9000390000000000ab04350000000006960436000000e007700039000000000087004b00000e5b0000413d000002100000013d0000001501100360000000000101043b000009bd0010009c000000420000213d000000400200043d00000a7103000041000000000032043500000004032000390000000000130435000009b90020009c000009b9020080410000004001200210000009ef011001c7000026e00001043000000015010000290000000001010433000000e002300270000000000012004b00000cd60000413d0000000501000039000000000101041a000000a0011002700000ffff0110018f000000160010006c00000e030000413d00000015010000290000002001100039001400000001001d0000000001010433000000000001004b00000eb60000c13d0000000701000039000000000101041a00000a3b0010019800000ef90000c13d000000160000006b00000fec0000c13d00000002010003670000002402100370000000000202043b0000006402200039000000000121034f000000000101043b001d00000001001d000009bd0010009c000000420000213d00000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d0000000203000367000000000101043b000009bd011001970000001d0010006b000010e90000c13d0000004401300370000000000101043b000009bf021001970000000e01000039000000000101041a000009bf031001970000000002320019001d00000002001d000009bf0020009c000004eb0000213d000009fe011001970000001d011001af0000000e02000039000000000012041b00000a3501000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bf011001970000001d0010006b000013150000a13d000000400100043d00000a5902000041000008420000013d000000400100043d00000a7002000041000008420000013d0000001702000029000009b90020009c000009b9020080410000004002200210000009b90010009c000009b901008041000000c001100210000000000121019f000009e9011001c7000000090200002926de26d90000040f00000000030100190000006003300270000009b903300197000000400030008c000000400400003900000000040340190000001f0640018f0000006007400190000000170570002900000f170000613d000000000801034f0000001709000029000000008a08043c0000000009a90436000000000059004b00000f130000c13d000000000006004b00000f240000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000fe00000613d0000001f01400039000000e00210018f0000001701200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000400030008c000000420000413d00000017010000290000000001010433000b00000001001d00000a3e0010009c000000420000213d0000001d010000290000000001010433000500000001001d00000a3e0010009c000000420000213d00000002010003670000001802100360000000000302043b00000000020000310000001c0420006a000000230440008a000009c605400197000009c606300197000000000756013f000000000056004b0000000005000019000009c605004041000000000043004b0000000004000019000009c604008041000009c60070009c000000000504c019000000000005004b000000420000c13d0000001a03300029000000000431034f000000000404043b000d00000004001d000009be0040009c000000420000213d0000000d04000029000000060440021000000000024200490000002006300039000009c603200197000009c604600197000000000534013f000000000034004b0000000003000019000009c603004041000c00000006001d000000000026004b0000000002000019000009c602002041000009c60050009c000000000302c019000000000003004b000000420000c13d0000000d0000006b000011a70000c13d00000016010000290000000001010433000009b90110019700160a73001000d5001400000000001d001300000000001d000000060100002900000010011002700000ffff011001900000199f0000c13d0000000501000039000000000201041a000000000100001900000019030000290000000003030433000000b004200270000009b904400197000000000034001a000004eb0000413d00000002050003670000001b06500360000000000706043b00000000060000310000001c0860006a000000230880008a000009c609800197000009c60a700197000000000b9a013f00000000009a004b0000000009000019000009c609004041000000000087004b0000000008000019000009c608008041000009c600b0009c000000000908c019000000000009004b000000420000c13d0000001a07700029000000000575034f000000000505043b000009be0050009c000000420000213d00000000065600490000002007700039000000000067004b0000000008000019000009c608002041000009c606600197000009c607700197000000000967013f000000000067004b0000000006000019000009c606004041000009c60090009c000000000608c019000000000006004b000000420000c13d000000d0022002700000ffff0620018f00000000026500a9000000000005004b00000fb00000613d000009c205500197000009c20720019700000000055700d9000000000056004b000004eb0000c13d0000000003340019000000000032001a000004eb0000413d0000000003320019000000140030002a000004eb0000413d000000050200002900000a7704200198000000000200001900000fc90000613d000000140230002900000000034200a900000000044300d9000000000024004b000004eb0000c13d000000000003004b000000000200001900000fc90000613d00000007020000290000000002020433000009be0420019700000000023400a900000000033200d9000000000043004b000004eb0000c13d00000008030000290000000003030433000009be0430019700000016034000b9000000160000006b00000fd20000613d00000016053000fa000000000045004b000004eb0000c13d000000000023001a000004eb0000413d0000000002230019000000000012001a000004eb0000413d0000000b0300002900000a3e0330019800001a9f0000c13d00000a6501000041000000000010043f0000001201000039000000040010043f000009ef01000041000026e0000104300000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000fe70000c13d00000a1f0000013d001d00000000001d001a00000000001d00000ff40000013d0000001d020000290000000102200039001d00000002001d000000160020006c000011350000813d00000002010003670000002402100370000000000302043b0000004402300039000000000221034f000000000402043b00000000020000310000000005320049000000230550008a000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605008041000009c60080009c000000000605c019000000000006004b000000420000c13d00000000034300190000000404300039000000000341034f000000000303043b000009be0030009c000000420000213d000000060530021000000000055200490000002002400039000009c604500197000009c606200197000000000746013f000000000046004b0000000004000019000009c604004041000000000052004b0000000005000019000009c605002041000009c60070009c000000000405c019000000000004004b000000420000c13d0000001d0030006b000021380000813d0000001d03000029001b0006003002180000001b022000290000002003200039000000000331034f000000000303043b000000000003004b0000115a0000613d000000000121034f000000000101043b000009bd0010009c000000420000213d000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a00000a3c0010019800000fef0000613d00000002010003670000002402100370000000000302043b0000004402300039000000000221034f000000000402043b00000000020000310000000005320049000000230550008a000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605008041000009c60080009c000000000605c019000000000006004b000000420000c13d00000000034300190000000404300039000000000341034f000000000303043b000009be0030009c000000420000213d000000060530021000000000055200490000002004400039000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605002041000009c60080009c000000000605c019000000000006004b000000420000c13d0000001d0030006b000021380000813d0000001b034000290000000002320049000009c40020009c000000420000213d000000400020008c000000420000413d000000400200043d001900000002001d000009c80020009c000000470000213d0000000602000039000000000202041a00000019040000290000004004400039000000400040043f000000000431034f000000000404043b000009bd0040009c000000420000213d0000002002200270000009bd022001970000002003300039000000000131034f00000019030000290000000003430436000000000101043b001700000003001d0000000000130435000000400300043d00000a3d010000410000000001130436001800000001001d001b00000003001d000000040130003900000000004104350000000001000414000000040020008c000010970000c13d0000000103000031000000400030008c00000040040000390000000004034019000010c10000013d0000001b03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000400030008c0000004004000039000000000403401900000060064001900000001b05600029000010b00000613d000000000701034f0000001b08000029000000007907043c0000000008980436000000000058004b000010ac0000c13d0000001f07400190000010bd0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013090000613d0000001f01400039000000e00210018f0000001b01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000400030008c000000420000413d000009c80010009c000000470000213d0000004002100039000000400020043f0000001b02000029000000000202043300000a3e0020009c000000420000213d000000000121043600000018030000290000000003030433000009b90030009c000000420000213d0000000000310435000000000002004b0000115d0000613d0000001701000029000000000301043300000000012300a900000000022100d9000000000032004b000004eb0000c13d00000a3f0110012a0000001a0010002a000004eb0000413d001a001a0010002d00000fef0000013d0000002402300370000000000202043b0000006402200039000000000423034f0000000602000039000000000202041a000000000404043b000009bd0040009c000000420000213d0000002002200270000009bd02200197000000400600043d00000a49050000410000000000560435000000040560003900000000004504350000004403300370000000000303043b00000044046000390000000000140435001d00000006001d000000240160003900000000003104350000000001000414000000040020008c000011640000c13d0000000103000031000000200030008c000000200400003900000000040340190000118f0000013d00000008080000290000000009650049000009c40090009c000000420000213d000000a00090008c000000420000413d000000400900043d000009c50090009c000000470000213d000000a00a9000390000004000a0043f00000000ab060434000009bd00b0009c000000420000213d000000000bb90436000000000a0a0433000009b900a0009c000000420000213d0000000000ab0435000000400a600039000000000a0a0433000009be00a0009c000000420000213d000000400b9000390000000000ab0435000000600a600039000000000a0a0433000009be00a0009c000000420000213d000000600b9000390000000000ab0435000000800a600039000000000a0a043300000000000a004b000000000b000039000000010b00c0390000000000ba004b000000420000c13d000000800b9000390000000000ab04350000000008980436000000a006600039000000000076004b000011090000413d000001e60000013d0000001a0000006b00000eb80000613d0000000301000039000000000101041a001d00000001001d00000a410010019800000eb80000613d0000000401000039000000000101041a001b00000001001d000009ca0100004100000000001004430000000001000414000009b90010009c000009b901008041000000c001100210000009cb011001c70000800b0200003926de26d90000040f0000000100200190000021370000613d0000001d020000290000008002200270000009b902200197000000000301043b000000000423004b000004eb0000413d0000001d01000029000009c2011001970000001b02000029000009c20220019700001a540000613d000000000021004b00001a420000a13d000000400100043d00000a4302000041000008420000013d000000400100043d00000a4802000041000008420000013d00000019010000290000000001010433000000400200043d00000a40030000410000000000320435000009bd0110019700000e9a0000013d0000001d03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009fd011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001d057000290000117e0000613d000000000801034f0000001d09000029000000008a08043c0000000009a90436000000000059004b0000117a0000c13d000000000006004b0000118b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000019930000613d0000001f01400039000000600210018f0000001d01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000001d010000290000000001010433000009bf021001970000000e01000039000000000101041a000009bf031001970000000002230019001d00000002001d000009bf0020009c000004eb0000213d00000edf0000013d0000001501100360000000000101043b000a00000001001d000009bd0010009c000000420000213d001500000000001d001600000000001d001400000000001d001300000000001d000011b80000013d001600160010002d001300200020003d00000015020000290000000102200039001500000002001d0000000d0020006c00000f720000813d000000150100002900000006011002100000000c011000290000000002100079000009c40020009c000000420000213d000000400020008c000000420000413d000000400200043d001d00000002001d000009c80020009c000000470000213d0000001d020000290000004002200039000000400020043f0000000203000367000000000213034f000000000202043b000009bd0020009c000000420000213d0000002001100039000000000113034f0000001d030000290000000003230436000000000101043b000f00000003001d0000000000130435000000400300043d00000a4f010000410000000000130435001700000003001d0000000401300039000000000021043500000a3501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000201043b0000000001000414000009bd02200197000000040020008c000011f20000c13d0000000103000031000000200030008c000000200400003900000000040340190000121c0000013d0000001703000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c00000020040000390000000004034019000000200640019000000017056000290000120b0000613d000000000701034f0000001708000029000000007907043c0000000008980436000000000058004b000012070000c13d0000001f07400190000012180000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001a930000613d0000001f01400039000000600210018f0000001701200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d00000017020000290000000003020433000009bd0030009c000000420000213d0000001d020000290000000002020433000009bd02200197000000000003004b00001a3d0000613d000000000020043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000400200043d001700000002001d000009c70020009c000000470000213d000000000101043b0000001705000029000000e002500039000000400020043f000000000101041a000000c00250003900000a53031001980000000004000039000000010400c039000000000042043500000a3c001001980000000002000039000000010200c039000000a0045000390000000000240435000009b90210019700000000042504360000007002100270000009b9022001970000008006500039001200000006001d00000000002604350000002002100270000009b902200197001000000004001d00000000002404350000005002100270000009b9022001970000006004500039001100000004001d0000000000240435000000400450003900000040011002700000ffff0110018f000e00000004001d0000000000140435000000000003004b0000127f0000613d000000000001004b000012920000613d0000001d010000290000000001010433000009bd021001970000000a0020006c0000000b01000029000012d00000613d000000400300043d00000a75010000410000000000130435001d00000003001d0000000401300039000000000021043500000000010004140000000902000029000000040020008c000012940000c13d0000000103000031000000200030008c00000020040000390000000004034019000012bf0000013d0000000701000039000000000201041a0000ffff0120018f00000a73011000d1000000160010002a000004eb0000413d0000001403000029000009b9033001970000001002200270000009b9022001970000000002320019001400000002001d000009b90020009c000004eb0000213d0000001302000029000009b90220019700000a740020009c000011b10000a13d000004eb0000013d0000000001000019000012e50000013d0000001d02000029000009b90020009c000009b9020080410000004002200210000009b90010009c000009b901008041000000c001100210000000000121019f000009ef011001c7000000090200002926de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c0000002004000039000000000403401900000020064001900000001d05600029000012ae0000613d000000000701034f0000001d08000029000000007907043c0000000008980436000000000058004b000012aa0000c13d0000001f07400190000012bb0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001ab50000613d0000001f01400039000000600210018f0000001d01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000001d01000029000000000101043300000a3e0010009c000000420000213d00000a3e02100198000012e10000613d0000000f01000029000000000301043300000000012300a900000000022100d9000000000032004b000004eb0000c13d00000a3f0010009c0000000003000019000012e20000413d00000a3f0110012a0000000e0200002900000000020204330000ffff0220018f00000000031200a9000012e20000013d00000000030000190000001101000029000000000201043300000a760130012a0000001403000029000009b903300197000009b9022001970000000002320019001400000002001d000009b90020009c000004eb0000213d0000001302000029000009b90220019700000012030000290000000003030433000009b9033001970000000002230019001300000002001d000009b90020009c000004eb0000213d00000017020000290000000002020433000009b90220019700000a73022000d1000000000021004b000013010000413d00000010020000290000000002020433000009b90220019700000a73022000d1000000000021004b000013050000a13d000000160020002a000004eb0000413d001600160020002d000011b30000013d000000160010002a000004eb0000413d001600160010002d000011b30000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013100000c13d00000a1f0000013d00000014010000290000000001010433000000000001004b0000132b0000c13d00000a3501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b000009bd0010019800001a0c0000c13d00000002020003670000002401200370000000000301043b0000000401300039000000000412034f000000000404043b00000000050000310000000006350049000000230660008a000009c607600197000009c608400197000000000978013f000000000078004b0000000007000019000009c607004041000000000064004b0000000006000019000009c606008041000009c60090009c000000000706c019000000000007004b000000420000c13d0000000001140019000000000412034f000000000404043b000009be0040009c000000420000213d00000000064500490000002007100039000009c601600197000009c608700197000000000918013f000000000018004b0000000001000019000009c601004041000000000067004b0000000006000019000009c606002041000009c60090009c000000000106c019000000000001004b000000420000c13d0000001f0140003900000a7f011001970000003f0110003900000a7f06100197000000400100043d0000000006610019000000000016004b00000000080000390000000108004039000009be0060009c000000470000213d0000000100800190000000470000c13d000000400060043f00000000064104360000000008740019000000000058004b000000420000213d000000000772034f00000a7f084001980000001f0940018f0000000005860019000013720000613d000000000a07034f000000000b06001900000000ac0a043c000000000bcb043600000000005b004b0000136e0000c13d000000000009004b0000137f0000613d000000000787034f0000000308900210000000000905043300000000098901cf000000000989022f000000000707043b0000010008800089000000000787022f00000000078701cf000000000797019f0000000000750435000000000446001900000000000404350000000004010433000000200040008c00001aa20000c13d0000000004060433001900000004001d000004000440008a00000a4c0040009c00001aa20000213d0000000e01000039000000000101041a0000008004100270000009be04400197000009be0040009c000004eb0000613d00000a4e011001970000000104400039001100000004001d000000800440021000000a3404400197000000000114019f0000000e04000039000000000014041b00000015010000290000000001010433001000000001001d00000014010000290000000001010433000000000001004b001500000000001d000013b80000c13d0000001c01000029000000000010043f0000000d01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000201041a000009be03200197000009be0030009c000004eb0000613d00000a4b02200197001500010030003d00000015022001af000000000021041b00000002020003670000002401200370000000000301043b0000006401300039000000000412034f000000000404043b001400000004001d000009bd0040009c000000420000213d000000400510008a000000000152034f000000000701043b00000000010000310000000004310049000000230440008a000009c606400197000009c608700197000000000968013f000000000068004b0000000008000019000009c608004041000000000047004b000000000a000019000009c60a008041000009c60090009c00000000080ac019000000000008004b000000420000c13d00000004033000390000000007370019000000000872034f000000000808043b001a00000008001d000009be0080009c000000420000213d0000001a0810006a000000200b700039000009c607800197000009c609b00197000000000a79013f000000000079004b0000000007000019000009c607004041000c0000000b001d00000000008b004b0000000008000019000009c608002041000009c600a0009c000000000708c019000000000007004b000000420000c13d0000002005500039000000000552034f000000000505043b000009c607500197000000000867013f000000000067004b0000000006000019000009c606004041000000000045004b0000000004000019000009c604008041000009c60080009c000000000604c019000000000006004b000000420000c13d0000000003350019000000000232034f000000000202043b001700000002001d000009be0020009c000000420000213d0000001702000029000b0006002002180000000b0110006a0000002005300039000009c602100197000009c603500197000000000423013f000000000023004b0000000002000019000009c602004041001b00000005001d000000000015004b0000000001000019000009c601002041000009c60040009c000000000201c019000000000002004b000000420000c13d000000160100002900000005011002100000003f02100039000009c302200197000000400300043d0000000002230019001d00000003001d000000000032004b00000000030000390000000103004039000009be0020009c000000470000213d0000000100300190000000470000c13d000000400020043f00000016020000290000001d030000290000000000230435000000000002004b0000142a0000613d0000000002000019000000600400003900000020022000390000001d032000290000000000430435000000000012004b000014250000413d000000400100043d001800000001001d000009c00010009c000000470000213d0000001801000029000001a001100039000000400010043f00000a3501000041000000000010044300000000010004120000000400100443000000800100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000001402000029000009bd022001970000001803000029000000e004300039001400000004001d00000000002404350000001502000029000009be02200197000000c004300039001300000004001d00000000002404350000008002300039001200000002001d000000100400002900000000004204350000001102000029000009be022001970000006004300039001000000004001d00000000002404350000001902000029000009bd022001970000004004300039000e00000004001d000000000024043500000020043000390000001c02000029000d00000004001d0000000000240435000009be011001970000000000130435000000a001300039000f00000001001d000000000001043500000002010003670000004402100370000000000202043b0000010003300039001100000003001d00000000002304350000001a020000290000001f0220003900000a7f022001970000003f0220003900000a7f02200197000000400300043d0000000004230019000000000034004b00000000020000390000000102004039000009be0040009c000000470000213d0000000100200190000000470000c13d0000000002000031000000400040043f0000001a0500002900000000045304360000000c05500029000000000025004b000000420000213d0000000c061003600000001a0800002900000a7f078001980000001f0880018f00000000057400190000148a0000613d000000000906034f000000000a040019000000009b09043c000000000aba043600000000005a004b000014860000c13d000000000008004b000014970000613d000000000676034f0000000307800210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f00000000006504350000001a04400029000000000004043500000018040000290000012004400039000c00000004001d0000000000340435000000170300002900000005033002100000003f03300039000009c304300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000009be0040009c000000470000213d0000000100500190000000470000c13d000000400040043f000000170400002900000000004304350000000b050000290000001b04500029000000000024004b000000420000213d0000001b0040006b000014cd0000813d00000000050300190000001b0620006a000009c40060009c000000420000213d000000400060008c000000420000413d000000400600043d000009c80060009c000000470000213d0000004007600039000000400070043f0000001b07100360000000000707043b000009bd0070009c000000420000213d000000200550003900000000077604360000001b090000290000002008900039000000000881034f000000000808043b00000000008704350000000000650435001b00400090003d0000001b0040006b000014b40000413d00000018010000290000016002100039001500000002001d0000001d0400002900000000004204350000014002100039000b00000002001d00000000003204350000018001100039001700000001001d0000000000010435000000160000006b000018070000613d001a00000000001d00000002010003670000002402100370000000000302043b0000004402300039000000000221034f000000000402043b00000000020000310000000005320049000000230550008a000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605008041000009c60080009c000000000605c019000000000006004b000000420000c13d00000000034300190000000404300039000000000341034f000000000303043b000009be0030009c000000420000213d000000060530021000000000055200490000002004400039000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605002041000009c60080009c000000000605c019000000000006004b000000420000c13d0000001a0030006b000021380000813d0000001a03000029000000060330021000000000033400190000000002320049000009c40020009c000000420000213d000000400020008c000000420000413d000000400200043d001c00000002001d000009c80020009c000000470000213d0000001c020000290000004002200039000000400020043f000000000231034f000000000202043b000009bd0020009c000000420000213d0000002003300039000000000131034f0000001c030000290000000003230436000000000101043b000a00000003001d0000000000130435000000400300043d00000a4f010000410000000000130435001b00000003001d0000000401300039000000000021043500000a3501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000201043b0000000001000414000009bd02200197000000040020008c000015420000c13d0000000103000031000000200030008c000000200400003900000000040340190000156c0000013d0000001b03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c0000002004000039000000000403401900000020064001900000001b056000290000155b0000613d000000000701034f0000001b08000029000000007907043c0000000008980436000000000058004b000015570000c13d0000001f07400190000015680000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001bb60000613d0000001f01400039000000600110018f0000001b02100029000000000012004b00000000010000390000000101004039001d00000002001d000009be0020009c000000470000213d0000000100100190000000470000c13d0000001d01000029000000400010043f000000200030008c000000420000413d0000001b010000290000000001010433001900000001001d000009bd0010009c000000420000213d000000190000006b00001bcf0000613d00000a50010000410000001d020000290000000000120435000000040120003900000a5102000041000000000021043500000000010004140000001902000029000000040020008c0000002004000039000015b80000613d0000001d02000029000009b90020009c000009b9020080410000004002200210000009b90010009c000009b901008041000000c001100210000000000121019f000009ef011001c7000000190200002926de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c0000002004000039000000000403401900000020064001900000001d05600029000015a70000613d000000000701034f0000001d08000029000000007907043c0000000008980436000000000058004b000015a30000c13d0000001f07400190000015b40000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001bc20000613d0000001f01400039000000600110018f0000001d01100029001b00000001001d000009be0010009c000000470000213d0000001b01000029000000400010043f000000200030008c000000420000413d0000001d010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000420000c13d000000000001004b00001bce0000613d00000002020003670000002401200370000000000501043b0000000401500039000000000312034f000000000403043b00000000030000310000000005530049000000230550008a000009c606500197000009c607400197000000000867013f000000000067004b0000000006000019000009c606004041000000000054004b0000000005000019000009c605008041000009c60080009c000000000605c019000000000006004b000000420000c13d0000000004140019000000000142034f000000000101043b000009be0010009c000000420000213d00000000061300490000002005400039000009c604600197000009c607500197000000000847013f000000000047004b0000000004000019000009c604004041000000000065004b0000000006000019000009c606002041000009c60080009c000000000406c019000000000004004b000000420000c13d0000001b04000029000009c50040009c000000470000213d0000000a040000290000000004040433001d00000004001d0000001c040000290000000004040433000900000004001d0000001f0410003900000a7f044001970000003f0440003900000a7f064001970000001b04000029000000a004400039000000400040043f0000000006460019000009be0060009c000000470000213d000000400060043f00000000001404350000000006510019000000000036004b000000420000213d000000000552034f00000a7f061001980000001b02000029000000c0022000390000000003620019000016190000613d000000000705034f0000000008020019000000007907043c0000000008980436000000000038004b000016150000c13d0000001f07100190000016260000613d000000000565034f0000000306700210000000000703043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000530435000000000121001900000000000104350000001b010000290000000001410436000a00000001001d00000a3501000041000000000010044300000000010004120000000400100443000000a00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d0000000902000029000009bd02200197000000000101043b000009be011001970000000a030000290000000000130435000009bd010000410000001e0310017f0000001b060000290000008001600039000000000021043500000060026000390000001d04000029000000000042043500000040046000390000000000340435000000400700043d00000a5203000041000000000037043500000004037000390000002005000039000000000053043500000000030604330000002405700039000000a0060000390000000000650435000000c40670003900000000530304340000000000360435001d00000007001d000000e406700039000000000003004b000016630000613d000000000700001900000000086700190000000009750019000000000909043300000000009804350000002007700039000000000037004b0000165c0000413d000000000563001900000000000504350000000a050000290000000005050433000009be055001970000001d07000029000000440670003900000000005604350000000004040433000009bd0440019700000064057000390000000000450435000000000202043300000084047000390000000000240435000000a4027000390000000001010433000009bd01100197000000000012043500000000010004140000001902000029000000040020008c0000167d0000c13d00000003010003670000000103000031000016950000013d0000001f0230003900000a7f02200197000000e402200039000009b90020009c000009b90200804100000060022002100000001d03000029000009b90030009c000009b9030080410000004003300210000000000232019f000009b90010009c000009b901008041000000c001100210000000000121019f000000190200002926de26d40000040f00000000030100190000006003300270000109b90030019d000009b9033001970003000000010355000000010020019000001bdc0000613d00000a7f043001980000001d024000290000169e0000613d000000000501034f0000001d06000029000000005705043c0000000006760436000000000026004b0000169a0000c13d0000001f05300190000016ab0000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f0130003900000a7f011001970000001d02100029000000000012004b00000000010000390000000101004039001b00000002001d000009be0020009c000000470000213d0000000100100190000000470000c13d0000001b01000029000000400010043f000009c40030009c000000420000213d000000200030008c000000420000413d0000001d010000290000000001010433000009be0010009c000000420000213d0000000002130049000009c40020009c000000420000213d000000400020008c000000420000413d0000001b02000029000009c80020009c000000470000213d0000001d021000290000001b010000290000004004100039000000400040043f0000000051020434000009be0010009c000000420000213d00000000062100190000001d01300029000009c6031001970000001f07600039000009c608700197000000000938013f000000000038004b0000000008000019000009c608004041000000000017004b0000000007000019000009c607008041000009c60090009c000000000807c019000000000008004b000000420000c13d0000000076060434000009be0060009c000000470000213d0000001f0860003900000a7f088001970000003f0880003900000a7f088001970000000008480019000009be0080009c000000470000213d000000400080043f00000000006404350000000008760019000000000018004b000000420000213d0000001b080000290000006008800039000000000006004b000016fa0000613d0000000009000019000000000a890019000000000b790019000000000b0b04330000000000ba04350000002009900039000000000069004b000016f30000413d000000000686001900000000000604350000001b060000290000000004460436001d00000004001d0000000004050433000009be0040009c000000420000213d00000000022400190000001f04200039000000000014004b0000000005000019000009c605008041000009c604400197000000000634013f000000000034004b0000000003000019000009c603004041000009c60060009c000000000305c019000000000003004b000000420000c13d0000000032020434000009be0020009c000000470000213d0000001f0420003900000a7f044001970000003f0440003900000a7f05400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000009be0050009c000000470000213d0000000100600190000000470000c13d000000400050043f00000000052404360000000006320019000000000016004b000000420000213d000000000002004b0000172f0000613d000000000100001900000000065100190000000007310019000000000707043300000000007604350000002001100039000000000021004b000017280000413d000000000125001900000000000104350000001d0100002900000000004104350000000001040433000a00000001001d000000200010008c0000174c0000a13d0000001c010000290000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a0000007001100270000009b9011001970000000a0010006b00001be80000213d0000001b0100002900000000010104330000000023010434000000200030008c00001aa20000c13d0000000002020433000004000220008a00000a4c0020009c00001aa20000213d000000400300043d00000020013000390000001902000029000000000021043500000020010000390000000000130435001900000003001d000009c80030009c000000470000213d00000019010000290000004001100039000000400010043f0000001d010000290000000001010433000a00000001001d0000001b010000290000000001010433001d00000001001d0000001c010000290000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a00000a5300100198000000070200003900000010010000390000178b0000613d0000001c010000290000000001010433000009bd01100197000000000010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000201043b0000005001000039000000400500043d000009dc0050009c000000470000213d000000000202041a0000008003500039000000400030043f00000040035000390000000a04000029000000000043043500000020045000390000001d06000029000000000064043500000019060000290000000000650435000000000112022f000009b90110019700000060025000390000000000120435000000400100043d0000002006100039000000200700003900000000007604350000000005050433000000400610003900000080070000390000000000760435000000c00810003900000000760504340000000000680435000000e005100039000000000006004b000017b30000613d00000000080000190000000009580019000000000a870019000000000a0a04330000000000a904350000002008800039000000000068004b000017ac0000413d000000000756001900000000000704350000001f0660003900000a7f0660019700000000040404330000006007100039000000a0086000390000000000870435000000000756001900000000650404340000000004570436000000000005004b000017c80000613d000000000700001900000000084700190000000009760019000000000909043300000000009804350000002007700039000000000057004b000017c10000413d000000000645001900000000000604350000001f0550003900000a7f0550019700000000044500190000000005140049000000400550008a00000000030304330000008006100039000000000056043500000000530304340000000004340436000000000003004b000017de0000613d000000000600001900000000074600190000000008650019000000000808043300000000008704350000002006600039000000000036004b000017d70000413d000000000543001900000000000504350000000002020433000009b902200197000000a005100039000000000025043500000000021400490000001f0330003900000a7f033001970000000002320019000000200320008a00000000003104350000001f0220003900000a7f032001970000000002130019000000000032004b00000000030000390000000103004039000009be0020009c000000470000213d0000000100300190000000470000c13d000000400020043f0000001502000029000000000202043300000000030204330000001a0030006c000021380000a13d0000001a0400002900000005034002100000000003230019000000200330003900000000001304350000000001020433000000000041004b000021380000a13d0000001a020000290000000102200039001a00000002001d000000160020006c000014db0000413d0000000d0100002900000000010104330000000e020000290000000002020433000000100300002900000000030304330000000f04000029000000000404043300000013050000290000000005050433000000140600002900000000060604330000001207000029000000000707043300000011080000290000000008080433000000400a00043d0000010009a0003900000000008904350000008008a000390000000000780435000009bd06600197000000e007a000390000000000670435000009be05500197000000c006a000390000000000560435000000000004004b0000000004000039000000010400c039000000a005a000390000000000450435000009be033001970000006004a000390000000000340435000009bd022001970000004003a000390000000000230435000001000200003900000000022a0436000009bd011001970000000000120435001d0000000a001d00000a5600a0009c000000470000213d0000001d030000290000012001300039001c00000001001d000000400010043f000009b90020009c000009b90200804100000040012002100000000002030433000009b90020009c000009b9020080410000006002200210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000000c0200002900000000020204330000002003200039000009b90030009c000009b90300804100000040033002100000000002020433000009b90020009c000009b9020080410000006002200210000000000232019f000000000101043b001b00000001001d0000000001000414000009b90010009c000009b901008041000000c001100210000000000121019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b001a00000001001d0000000b0100002900000000020104330000001d050000290000014001500039000000200300003900000000003104350000016003500039000000000402043300000000004304350000018003500039000000000004004b0000187b0000613d0000000005000019000000200220003900000000060204330000000076060434000009bd0660019700000000066304360000000007070433000000000076043500000040033000390000000105500039000000000045004b000018700000413d0000001d0230006a000001400320008a0000001c040000290000000000340435000001010220008a00000a7f032001970000000002430019000000000032004b00000000030000390000000103004039000009be0020009c000000470000213d0000000100300190000000470000c13d000000400020043f000009b90010009c000009b90100804100000040011002100000001c020000290000000002020433000009b90020009c000009b9020080410000006002200210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b001c00000001001d00000015010000290000000003010433000000400100043d000000200210003900000020040000390000000000420435000000000403043300000005054002100000000006510019000000400510003900000000004504350000006007600039000000000004004b00001bed0000c13d0000000003170049000000200430008a00000000004104350000001f0330003900000a7f043001970000000003140019000000000043004b00000000040000390000000104004039000009be0030009c000000470000213d0000000100400190000000470000c13d000000400030043f000009b90020009c000009b90200804100000040022002100000000001010433000009b90010009c000009b9010080410000006001100210000000000121019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b001600000001001d000000400100043d001d00000001001d0000002001100039001900000001001d000000000001043500000a350100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000001d04000029000000c00240003900000016030000290000000000320435000000a0024000390000001c03000029000000000032043500000080024000390000001a03000029000000000032043500000060024000390000001b03000029000000000032043500000040024000390000000000120435000000c0010000390000000000140435000009c70040009c000000470000213d0000001d02000029000000e001200039000000400010043f0000001901000029000009b90010009c000009b90100804100000040011002100000000002020433000009b90020009c000009b9020080410000006002200210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b00000017020000290000000000120435000000400100043d0000002002000039000000000221043600000018030000290000000003030433000009be0330019700000000003204350000000d020000290000000002020433000009bd02200197000000400310003900000000002304350000000e020000290000000002020433000009bd022001970000006003100039000000000023043500000010020000290000000002020433000009be022001970000008003100039000000000023043500000012020000290000000002020433000000a00310003900000000002304350000000f020000290000000002020433000000000002004b0000000002000039000000010200c039000000c003100039000000000023043500000013020000290000000002020433000009be02200197000000e003100039000000000023043500000014020000290000000002020433000009bd022001970000010003100039000000000023043500000011020000290000000002020433000001200310003900000000002304350000000c0200002900000000020204330000014003100039000001a0040000390000000000430435000001c00510003900000000430204340000000000350435000001e002100039000000000003004b000019510000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000035004b0000194a0000413d000000000423001900000000000404350000001f0330003900000a7f043001970000000b0300002900000000030304330000016005100039000001c0064000390000000000650435000000000224001900000000040304330000000002420436000000000004004b0000196b0000613d0000000005000019000000200330003900000000060304330000000076060434000009bd0660019700000000066204360000000007070433000000000076043500000040022000390000000105500039000000000045004b000019600000413d0000000003120049000000200430008a000000150300002900000000030304330000018005100039000000000045043500000000040304330000000000420435000000050540021000000000055200190000002007500039000000000004004b00001c0a0000c13d00000017020000290000000002020433000001a00310003900000000002304350000000002170049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c70000800d02000039000000010300003900000a570400004126de26d40000040f0000000100200190000000420000613d00000017010000290000000001010433000007650000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000199a0000c13d00000a1f0000013d00000002040003670000001b02400360000000000202043b00000000030000310000001a0530006a0000001f0550008a000009c606500197000009c607200197000000000867013f000000000067004b0000000007000019000009c607004041000000000052004b0000000009000019000009c609008041000009c60080009c000000000709c019000000000007004b000000420000c13d0000001a07200029000000000274034f000000000202043b000009be0020009c000000420000213d00000000082300490000002007700039000000000087004b0000000009000019000009c609002041000009c608800197000009c607700197000000000a87013f000000000087004b0000000007000019000009c607004041000009c600a0009c000000000709c019000000000007004b000000420000c13d0000001807400360000000000707043b000009c608700197000000000968013f000000000068004b0000000006000019000009c606004041000000000057004b0000000005000019000009c605008041000009c60090009c000000000605c019000000000006004b000000420000c13d0000001a05700029000000000454034f000000000404043b000009be0040009c000000420000213d000000060640021000000000036300490000002005500039000000000035004b0000000006000019000009c606002041000009c603300197000009c605500197000000000735013f000000000035004b0000000003000019000009c603004041000009c60070009c000000000306c019000000000003004b000000420000c13d00000180034000c9000000000004004b000019f10000613d000009c204400197000009c20530019700000000044500d9000001800040008c000004eb0000c13d00000013022000290000000002320019000002200220003900000006030000290000ffff0430018f000009c20520019700000000034200a9000009c20230019700000000025200d9000000000024004b000004eb0000c13d0000000502000039000000000202041a000000e004200270000000000334001a00000f780000613d0000000504000029000000700440027000000a770440019800000f780000613d00000000011400a900000000033100a900000a78013000d100000000033100d900000a780030009c000004eb0000c13d00000f790000013d0000001c01000029000000000010043f0000000d01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a000009be001001980000132b0000c13d000000400200043d00000a4a010000410000000000120435001d00000002001d00000004012000390000001c02000029000000000021043500000a3501000041000000000010044300000000010004120000000400100443000000c00100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000021370000613d000000000201043b0000000001000414000009bd02200197000000040020008c00001ac10000c13d0000000103000031000000200030008c0000002004000039000000000403401900001aec0000013d00000a5503000041000000000031043500000004031000390000000000230435000008510000013d0000001b05000029000000800650027000000000056400a900000000044500d9000000000064004b000004eb0000c13d000000000015001a000004eb0000413d00000000011500190000001d0400002900000a42044001970000008003300210000009cd03300197000000000343019f0000000304000039000000000034041b000000000012004b00000000010240190000001a0020006c00001a630000813d000000400100043d00000024031000390000001a04000029000000000043043500000a4703000041000000000031043500000004031000390000000000230435000009b90010009c000009b9010080410000004001100210000009e9011001c7000026e0000104300000001a0210006c00001a7a0000813d0000001b020000290000008002200272000004eb0000613d0000001a03100069000000010420008a000000000034001a000004eb0000413d0000000003340019000000400400043d0000002405400039000000000015043500000a4601000041000000000014043500000000012300d900000004024000390000000000120435000009b90040009c000009b9040080410000004001400210000009e9011001c7000026e000010430000009c2012001970000000303000039000000000203041a00000a4402200197000000000112019f000000000013041b000000400100043d0000001a020000290000000000210435000009b90010009c000009b90100804100000040011002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009fa011001c70000800d02000039000000010300003900000a450400004126de26d40000040f000000010020019000000eb80000c13d000000420000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a9a0000c13d00000a1f0000013d000000000112001900000000013100d9000007650000013d000000400400043d001d00000004001d00000a4d020000410000000000240435000000040240003900000020030000390000000000320435000000240240003926de21d40000040f0000001d020000290000000001210049000009b90010009c000009b901008041000009b90020009c000009b90200804100000060011002100000004002200210000000000121019f000026e0000104300000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001abc0000c13d00000a1f0000013d0000001d03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001d0570002900001adb0000613d000000000801034f0000001d09000029000000008a08043c0000000009a90436000000000059004b00001ad70000c13d000000000006004b00001ae80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001c280000613d0000001f01400039000000600210018f0000001d01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000001d010000290000000001010433001d00000001001d000009be0010009c000000420000213d0000001c01000029000000000010043f0000000d01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000201041a00000a4b022001970000001d022001af000000000021041b0000132b0000013d000000000300041a000009c9033001970000000005000411000000000353019f000000000030041b0000000001010433000300000001001d000000000001004b0000000001000039000000010100c039000200000001001d0000000601000029000009c50010009c000000470000213d0000000001040433000500000001001d0000000001020433000009c2031001970000000602000029000000a001200039000000400010043f000400000003001d0000000001320436000100000001001d000009ca0100004100000000001004430000000001000414000009b90010009c000009b901008041000000c001100210000009cb011001c70000800b0200003926de26d90000040f0000000100200190000021370000613d000000000101043b0000000505000029000009c202500197000000060400002900000080034000390000000000230435000000400240003900000002030000290000000000320435000009b90210019700000001030000290000000000230435000000600240003900000004040000290000000000420435000000030000006b0000000002000019000009cc0200c0410000008001100210000009cd01100197000000000112019f0000000302000039000000000302041a000009ce03300197000000000131019f000000000141019f000000000012041b0000008001500210000000000114019f0000000402000039000000000012041b00000007010000290000000001010433000009bd0010019800001bb30000613d0000001d010000290000000001010433000009be0110019800001bb30000613d0000001c020000290000000002020433000009be0320019800001bb30000613d0000001b020000290000000002020433000009be0020019800001bb30000613d00000018020000290000000002020433000009bd0020019800001bb30000613d00000016020000290000000002020433000009bd0020019800001bb30000613d000000400200043d000000600420003900000000003404350000004003200039000000000013043500000080010000390000000001120436000000800320003900000000040004100000000000430435000009cf030000410000000000310435000009c50020009c000000470000213d000000a003200039000000400030043f000009b90010009c000009b90100804100000040011002100000000002020433000009b90020009c000009b9020080410000006002200210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f00000007030000290000000100200190000000420000613d000000000101043b000000800010043f0000000001030433000009bd01100197000000e00010043f0000001d020000290000000002020433000009be02200197000001000020043f0000001c030000290000000003030433000009be03300197000001200030043f0000001b040000290000000004040433000009be04400197000000a00040043f0000001a050000290000000005050433000009bf05500197000000c00050043f00000019060000290000000006060433000009bd06600197000001400060043f00000018070000290000000007070433000009bd07700197000001600070043f00000016080000290000000008080433000009bd08800197000001800080043f0000000f090000290000000009090433000009bd0090019800001c340000c13d000000400100043d00000a0602000041000008420000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001bbd0000c13d00000a1f0000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001bc90000c13d00000a1f0000013d001d001b0000002d0000001c01000029000000000101043300000a55020000410000001d030000290000000000230435000009bd0110019700000004023000390000000000120435000009b90030009c000009b9030080410000004001300210000009ef011001c7000026e0000104300000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001be30000c13d00000a1f0000013d0000001c010000290000000001010433000000400200043d00000a5403000041000011610000013d000000000600001900001bf70000013d000000000978001900000000000904350000001f0880003900000a7f0880019700000000077800190000000106600039000000000046004b000018ad0000813d0000000008170049000000600880008a000000200550003900000000008504350000002003300039000000000803043300000000980804340000000007870436000000000008004b00001bef0000613d000000000a000019000000000b7a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b00001c020000413d00001bef0000013d0000000005000019000000000602001900001c150000013d000000000978001900000000000904350000001f0880003900000a7f0880019700000000077800190000000105500039000000000045004b000019780000813d0000000008270049000000200880008a000000200660003900000000008604350000002003300039000000000803043300000000980804340000000007870436000000000008004b00001c0d0000613d000000000a000019000000000b7a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b00001c200000413d00001c0d0000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c2f0000c13d00000a1f0000013d000000170a000029000000000a0a0433000009bd0aa00197000000150b000029000000000b0b0433000000a00bb00210000009d10bb00197000000000aab019f000000140b000029000000000b0b0433000000b00bb00210000009d20bb00197000000000aba019f000000130b000029000000000b0b0433000000d00bb00210000009d30bb00197000000000aba019f000000120b000029000000000b0b0433000000e00bb00210000000000aba019f000000050b0000390000000000ab041b0000002009900210000009d409900197000000110a000029000000000a0a04330000ffff0aa0018f00000000099a019f000000100a000029000000000a0a0433000000100aa00210000009d50aa001970000000009a9019f0000000e0a000029000000000a0a0433000000c00aa00210000009d60aa001970000000009a9019f0000000d0a000029000000000a0a0433000000e00aa002100000000009a9019f000000060a00003900000000009a041b0000000c0900002900000000090904330000ffff0990018f000000070a000039000000000b0a041a000009d70bb0019700000000099b019f0000000b0b000029000000000b0b0433000000100bb00210000009d80bb001970000000009b9019f0000000a0b000029000000000b0b043300000000000b004b000009d90b000041000000000b0060190000000009b9019f00000000009a041b000000400a00043d000009bc00a0009c000000470000213d0000010009a00039000000400090043f000000e009a000390000000000890435000000c008a000390000000000780435000000a007a0003900000000006704350000008006a0003900000000005604350000006005a0003900000000004504350000004004a0003900000000003404350000002003a00039000000000023043500000000001a0435000000400200043d00000000011204360000000003030433000009be0330019700000000003104350000000001040433000009be01100197000000400320003900000000001304350000000001050433000009be01100197000000600320003900000000001304350000000001060433000009bf01100197000000800320003900000000001304350000000001070433000009bd01100197000000a00320003900000000001304350000000001080433000009bd01100197000000c00320003900000000001304350000000001090433000009bd01100197000000e003200039000000000013043500000017010000290000000001010433000009bd0110019700000100032000390000000000130435000000150100002900000000010104330000ffff0110018f0000012003200039000000000013043500000014010000290000000001010433000009b90110019700000140032000390000000000130435000000130100002900000000010104330000ffff0110018f0000016003200039000000000013043500000012010000290000000001010433000009b90110019700000180032000390000000000130435000000110100002900000000010104330000ffff0110018f000001a0032000390000000000130435000000100100002900000000010104330000ffff0110018f000001c00320003900000000001304350000000f010000290000000001010433000009bd01100197000001e00320003900000000001304350000000e010000290000000001010433000009b901100197000002000320003900000000001304350000000d010000290000000001010433000009b901100197000002200320003900000000001304350000000c0100002900000000010104330000ffff0110018f000002400320003900000000001304350000000b010000290000000001010433000009b901100197000002600320003900000000001304350000000a010000290000000001010433000000000001004b0000000001000039000000010100c03900000280032000390000000000130435000009b90020009c000009b90200804100000040012002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009da011001c70000800d020000390000000103000039000009db0400004126de26d40000040f0000000100200190000000420000613d00000009010000290000000001010433000000000001004b00001d4b0000613d001d00000000001d000000400100043d001c00000001001d000009dc0010009c000000470000213d0000001d01000029000000050110021000000008011000290000000001010433000000400210003900000000020204330000002003100039000000000303043300000060041000390000000004040433000000800510003900000000050504330000001c070000290000008006700039000000400060043f000000000005004b0000000005000039000000010500c0390000006006700039001b00000006001d0000000000560435000009be044001970000004005700039001a00000005001d0000000000450435000009b9033001970000000003370436000009be02200197001900000003001d00000000002304350000000001010433000009bd01100197000000000010043f0000000b01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001c020000290000000002020433000009b902200197000000000101043b000000000301041a000009ce03300197000000000223019f000000190300002900000000030304330000002003300210000009de03300197000000000232019f0000001a0300002900000000030304330000006003300210000009df03300197000000000232019f0000001b030000290000000003030433000000000003004b000009cc030000410000000003006019000000000232019f000000000021041b0000001d02000029001d00010020003d000000090100002900000000010104330000001d0010006b00001cfd0000413d000000400100043d000000200200003900000000022104360000000903000029000000000303043300000000003204350000004002100039000000000003004b00001d720000613d0000003304000029000000000500001900000000460404340000000087060434000009bd0770019700000000077204360000000008080433000009b908800197000000000087043500000040076000390000000007070433000009be077001970000004008200039000000000078043500000060076000390000000007070433000009be077001970000006008200039000000000078043500000080066000390000000006060433000000000006004b0000000006000039000000010600c03900000080072000390000000000670435000000a0022000390000000105500039000000000035004b00001d560000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009e00400004126de26d40000040f0000000100200190000000420000613d000000400100043d001a00000001001d000009e10010009c000000470000213d0000001a020000290000002001200039001d00000001001d000000400010043f00000000000204350000003201000029001300000001001d0000000021010434001200000002001d000000000001004b00001e070000613d001b00000000001d0000001b0100002900000005011002100000001201100029000000400200043d001c00000002001d0000000001010433000000a0021000390000000002020433000009b9022001970000001f0020008c00001ec10000a13d0000001c03000029000009c70030009c000000470000213d00000040031000390000000003030433000000200410003900000000040404330000006005100039000000000505043300000080061000390000000006060433000000c00710003900000000070704330000001c09000029000000e008900039000000400080043f000000c00a900039000000010800003900190000000a001d00000000008a0435000000000007004b0000000007000039000000010700c039000000a008900039001800000008001d00000000007804350000008007900039001700000007001d0000000000270435000009b9026001970000006006900039001600000006001d00000000002604350000ffff0250018f0000004005900039001500000005001d0000000000250435000009b9024001970000000004290436000009b902300197001400000004001d00000000002404350000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001c020000290000000002020433000009b902200197000000000101043b000000000301041a000009c903300197000000000223019f000000140300002900000000030304330000002003300210000009e203300197000000000232019f000000150300002900000000030304330000004003300210000009e303300197000000000232019f000000160300002900000000030304330000005003300210000009e403300197000000000232019f000000170300002900000000030304330000007003300210000009e503300197000000000232019f00000018030000290000000003030433000000000003004b000009e6030000410000000003006019000000000232019f00000019030000290000000003030433000000000003004b000009e7030000410000000003006019000000000232019f000000000021041b0000001b02000029001b00010020003d000000130100002900000000010104330000001b0010006b00001d960000413d000000400100043d000000200200003900000000022104360000001303000029000000000303043300000000003204350000004002100039000000000003004b00001e380000613d0000003104000029000000000500001900000000460404340000000087060434000009bd0770019700000000077204360000000008080433000009b908800197000000000087043500000040076000390000000007070433000009b90770019700000040082000390000000000780435000000600760003900000000070704330000ffff0770018f0000006008200039000000000078043500000080076000390000000007070433000009b90770019700000080082000390000000000780435000000a0076000390000000007070433000009b907700197000000a0082000390000000000780435000000c0066000390000000006060433000000000006004b0000000006000039000000010600c039000000c0072000390000000000670435000000e0022000390000000105500039000000000035004b00001e120000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009ea0400004126de26d40000040f0000000100200190000000420000613d0000001a010000290000000001010433000000000001004b00001e920000613d001c00000000001d0000001c0100002900000005011002100000001d011000290000000001010433000009bd01100197000000000010043f0000000c01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b0000001c02000029001c00010020003d0000001a0100002900000000010104330000001c0010006b00001e510000413d000000000001004b00001e920000613d000000400100043d000000200200003900000000022104360000001a03000029000000000303043300000000003204350000004002100039000000000003004b00001e7e0000613d00000000040000190000001d060000290000000065060434001d00000006001d000009bd0550019700000000025204360000000104400039000000000034004b00001e760000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d020000390000000103000039000009eb0400004126de26d40000040f0000000100200190000000420000613d0000003001000029001700000001001d0000000021010434001300000002001d001600000001001d000000400010008c0000075e0000213d0000000e01000039000000000101041a000009bf021001970000006001100270000009b901100197001200000001001d000000010110008a001c00000002001d000000000021004b000020040000813d000000000100041a000009bd011001970000000002000411000000000012004b00001ec90000613d0000000201000039000000000101041a000009bd01100197000000000012004b00001ec90000613d0000000001000411000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a000000000001004b00001ec90000c13d000000400100043d000009ec02000041000008420000013d00000000010104330000001c0400002900000024034000390000000000230435000009e8020000410000000000240435000009bd0110019700001a730000013d000000e00200043d000000400300043d000009ee010000410000000000130435001d00000003001d0000000401300039000000000300041000000000003104350000000001000414000009bd02200197000000040020008c00001eda0000c13d0000000103000031000000200030008c0000002004000039000000000403401900001f050000013d0000001d03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f00000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001d0570002900001ef40000613d000000000801034f0000001d09000029000000008a08043c0000000009a90436000000000059004b00001ef00000c13d000000000006004b00001f010000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001f260000613d0000001f01400039000000600210018f0000001d01200029000000000021004b00000000020000390000000102004039000009be0010009c000000470000213d0000000100200190000000470000c13d000000400010043f000000200030008c000000420000413d0000001d0200002900000000030204330000001c0230006a000009c604200197000009c605300197000000000654013f000000000054004b0000000004000019000009c604002041000000000032004b0000000003000019000009c60300a041000009c60060009c000000000403c019000000000004004b000004eb0000613d000009c60020009c00001f320000413d00000a0502000041000008420000013d0000001f0530018f000009bb06300198000000400200043d000000000462001900000a1f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f2d0000c13d00000a1f0000013d0000000801000039000000000101041a001100000001001d000000000001004b00001f390000c13d001b001c0000002d00001fff0000013d001a00000000001d001b001c0000002d0000000801000039000000000101041a0000001a0010006c000021380000a13d0000001a01000029000009f00110009a000000000101041a001d00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000201041a0000001c012000b90000001c031000fa000000000032004b000004eb0000c13d00000012011000fa001509bf0010019b0000001b01000029000009bf01100197000000150110006a001b00000001001d000009bf0010009c000004eb0000213d0000001d01000029000009bd05100197000000400200043d0000004401200039000000e00300043d000000150400002900000000004104350000002001200039000009f10400004100000000004104350000002404200039001000000005001d000000000054043500000044040000390000000000420435000009f20020009c000000470000213d000009bd05300197000000c003200039000000400030043f000000a004200039000009f303000041001d00000004001d000000000034043500000080042000390000002003000039000f00000004001d000000000034043500000000030204330000000002000414001400000005001d000000040050008c00001f810000c13d0000000101000031000000010200003900001f930000013d000009b90010009c000009b9010080410000004001100210000009b90030009c000009b9030080410000006003300210000000000113019f000009b90020009c000009b902008041000000c002200210000000000121019f000000140200002926de26d40000040f000000010220018f00030000000103550000006001100270000109b90010019d000009b901100197000000000001004b001900800000003d001800600000003d00001fc00000613d0000001f0310003900000a7f033001970000003f0330003900000a7f03300197000000400400043d0000000003340019001800000004001d000000000043004b00000000040000390000000104004039000009be0030009c000000470000213d0000000100400190000000470000c13d000000400030043f0000001803000029000000000513043600000a7f04100198001900000005001d0000000003450019000000030500036700001fb30000613d000000000605034f0000001907000029000000006806043c0000000007870436000000000037004b00001faf0000c13d0000001f0110019000001fc00000613d000000000445034f0000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000018010000290000000001010433000000000002004b000021440000613d000000000001004b00001fda0000c13d000009f4010000410000000000100443000000140100002900000004001004430000000001000414000009b90010009c000009b901008041000000c001100210000009f5011001c7000080020200003926de26d90000040f0000000100200190000021370000613d000000000101043b000000000001004b000021680000613d00000018010000290000000001010433000000000001004b00001fe70000613d000009c40010009c000000420000213d000000200010008c000000420000413d00000019010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000420000c13d000000000001004b000021790000613d000000400100043d00000015020000290000000000210435000009b90010009c000009b90100804100000040011002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009fa011001c70000800d020000390000000203000039000009fb04000041000000100500002926de26d40000040f0000000100200190000000420000613d0000001a020000290000000102200039001a00000002001d000000110020006c00001f3b0000413d0000000e02000039000000000102041a000009fe011001970000001b011001af000000000012041b0000000801000039000000000101041a000000000001004b0000207b0000613d001b0001001000920000000802000039000000000202041a0000001b0020006c000021380000a13d000009ff0110009a000000000101041a001d00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001d01000029000009bd01100197001c00000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b0000001c01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a001d00000001001d000000000001004b000020780000613d0000000801000039000000000201041a000000000002004b000004eb0000613d0000001d03000029000000010130008a000000000023004b000020640000613d000000000012004b000021380000a13d0000001d01000029000009ff0110009a000009ff0220009a000000000202041a000000000021041b000000000020043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b0000001d02000029000000000021041b0000000801000039000000000101041a001d00000001001d000000000001004b0000213e0000613d0000001d01000029000000010110008a0000001d02000029000009ff0220009a000000000002041b0000000802000039000000000012041b0000001c01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000001041b0000001b01000029000000000001004b000020080000c13d000000160000006b001c00000000001d000020da0000613d001b00000000001d001c00000000001d000000170100002900000000010104330000001b0010006c000021380000a13d0000001b010000290000000501100210000000130110002900000000010104330000000012010434001d09bd0020019c0000218d0000613d000000e00200043d000009bd022001970000001d0020006b0000218d0000613d0000000001010433001a00000001001d0000001d01000029000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d0000001a020000290000ffff0220018f000000000101043b001a00000002001d000000000021041b0000001d01000029000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b000000000101041a000000000001004b000020cf0000c13d0000000801000039000000000101041a000009be0010009c000000470000213d00000001021000390000000803000039000000000023041b000009f00110009a0000001d02000029000000000021041b000000000103041a001900000001001d000000000020043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000000420000613d000000000101043b0000001902000029000000000021041b0000001c01000029000009b9011001970000001a01100029001c00000001001d000009b90010009c000004eb0000213d0000001b020000290000000102200039001b00000002001d000000160020006c000020800000413d0000000e03000039000000000103041a00000a01011001970000001c04000029000000600240021000000a0202200197000000000112019f000000000013041b000000400100043d000000200210003900000040030000390000000000320435000000000041043500000017020000290000000003020433000000400210003900000000003204350000006002100039000000000003004b000020fb0000613d0000002f04000029000000000500001900000000460404340000000076060434000009bd06600197000000000662043600000000070704330000ffff0770018f000000000076043500000040022000390000000105500039000000000035004b000020f00000413d0000000002120049000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000121019f000009d0011001c70000800d02000039000000010300003900000a030400004126de26d40000040f0000000100200190000000420000613d000000800100043d00000140000004430000016000100443000000a00100043d00000020030000390000018000300443000001a000100443000000c00100043d0000004002000039000001c000200443000001e000100443000000e00100043d000000600200003900000200002004430000022000100443000001000100043d000000800200003900000240002004430000026000100443000000a001000039000001200200043d0000028000100443000002a000200443000000c001000039000001400200043d000002c000100443000002e000200443000000e001000039000001600200043d000003000010044300000320002004430000010001000039000001800200043d0000034000100443000003600020044300000100003004430000000901000039000001200010044300000a0401000041000026df0001042e000000000001042f00000a6501000041000000000010043f0000003201000039000000040010043f000009ef01000041000026e00001043000000a6501000041000000000010043f0000003101000039000000040010043f000009ef01000041000026e000010430000000000001004b000021900000c13d000000400100043d000009f80200004100000000002104350000000402100039000000200300003900000000003204350000000f020000290000000002020433000000240310003900000000002304350000004403100039000000000002004b0000215b0000613d000000000400001900000000053400190000001d06400029000000000606043300000000006504350000002004400039000000000024004b000021540000413d0000001f0420003900000a7f04400197000000000232001900000000000204350000004402400039000009b90020009c000009b9020080410000006002200210000009b90010009c000009b9010080410000004001100210000000000112019f000026e000010430000000400100043d0000004402100039000009fc03000041000000000032043500000024021000390000001d030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009fd011001c7000026e000010430000000400100043d0000006402100039000009f60300004100000000003204350000004402100039000009f703000041000000000032043500000024021000390000002a030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009f9011001c7000026e000010430000000400100043d00000a000200004100000cbc0000013d0000001902000029000009b90020009c000009b9020080410000004002200210000009b90010009c000009b9010080410000006001100210000000000121019f000026e0000104300000000043010434000009bd0330019700000000033204360000000004040433000009be04400197000000000043043500000040031000390000000003030433000009be033001970000004004200039000000000034043500000060031000390000000003030433000009be033001970000006004200039000000000034043500000080031000390000000003030433000009bf0330019700000080042000390000000000340435000000a0031000390000000003030433000009bd03300197000000a0042000390000000000340435000000c0031000390000000003030433000009bd03300197000000c0042000390000000000340435000000e002200039000000e0011000390000000001010433000009bd011001970000000000120435000000000001042d00000a800010009c000021c30000813d000000e001100039000000400010043f000000000001042d00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e00001043000000a810010009c000021ce0000813d0000008001100039000000400010043f000000000001042d00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e00001043000000000430104340000000001320436000000000003004b000021e00000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b000021d90000413d000000000213001900000000000204350000001f0230003900000a7f022001970000000001210019000000000001042d0000000043010434000009bd03300197000000000332043600000000040404330000ffff0440018f000000000043043500000040031000390000000003030433000009b90330019700000040042000390000000000340435000000600310003900000000030304330000ffff0330018f0000006004200039000000000034043500000080031000390000000003030433000009b90330019700000080042000390000000000340435000000a00310003900000000030304330000ffff0330018f000000a0042000390000000000340435000000c00310003900000000030304330000ffff0330018f000000c0042000390000000000340435000000e0031000390000000003030433000009bd03300197000000e004200039000000000034043500000100031000390000000003030433000009b9033001970000010004200039000000000034043500000120031000390000000003030433000009b90330019700000120042000390000000000340435000001400310003900000000030304330000ffff0330018f0000014004200039000000000034043500000160031000390000000003030433000009b90330019700000160042000390000000000340435000001800220003900000180011000390000000001010433000000000001004b0000000001000039000000010100c0390000000000120435000000000001042d000000000301001900000000040304330000000001420436000000000004004b000022380000613d0000000002000019000000200330003900000000050304330000000065050434000009bd05500197000000000551043600000000060604330000ffff0660018f000000000065043500000040011000390000000102200039000000000042004b0000222c0000413d000000000001042d0001000000000002000000400300043d00000a4f020000410000000000230435000009bd01100197000100000003001d0000000402300039000000000012043500000a3501000041000000000010044300000000010004120000000400100443000001000100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f00000001002001900000229a0000613d000000000201043b0000000001000414000009bd02200197000000040020008c0000225b0000c13d0000000103000031000000200030008c00000020040000390000000004034019000000010b000029000022870000013d0000000103000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f000000010b00002900000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000022760000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000022720000c13d000000000006004b000022830000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000022a10000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009be0010009c0000229b0000213d00000001002001900000229b0000c13d000000400010043f0000001f0030008c000022980000a13d00000000010b0433000009bd0010009c000022980000213d000000000001042d0000000001000019000026e000010430000000000001042f00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e0000104300000001f0530018f000009bb06300198000000400200043d0000000004620019000022ac0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000022a80000c13d000000000005004b000022b90000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009b90020009c000009b9020080410000004002200210000000000112019f000026e0000104300001000000000002000000400200043d000009ee010000410000000000120435000100000002001d00000004012000390000000002000410000000000021043500000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f00000001002001900000232d0000613d000000000201043b0000000001000414000009bd02200197000000040020008c000022e10000c13d0000000103000031000000200030008c00000020040000390000000004034019000000010b0000290000230d0000013d0000000103000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f000000010b00002900000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000022fc0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000022f80000c13d000000000006004b000023090000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000233c0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009be0010009c0000232e0000213d00000001002001900000232e0000c13d000000400010043f0000001f0030008c000023340000a13d00000000020b04330000000e01000039000000000101041a000009bf011001970000000001120049000009c603100197000009c604200197000000000543013f000000000043004b0000000003000019000009c603002041000000000021004b0000000002000019000009c60200a041000009c60050009c000000000302c019000000000003004b000023360000613d000000000001042d000000000001042f00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e0000104300000000001000019000026e00001043000000a6501000041000000000010043f0000001101000039000000040010043f000009ef01000041000026e0000104300000001f0530018f000009bb06300198000000400200043d0000000004620019000023470000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023430000c13d000000000005004b000023540000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009b90020009c000009b9020080410000004002200210000000000112019f000026e000010430000a000000000002000000000100041a000009bd021001970000000001000411000000000021004b000023750000613d0000000202000039000000000202041a000009bd02200197000000000021004b000023750000613d000000000010043f0000000901000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f0000000100200190000024d50000613d000000000101043b000000000101041a000000000001004b000025560000613d000000400300043d0000000e01000039000000000101041a0000006002100270000009b9022001980000252d0000613d000009bf01100197000300000002001d000500000001001d000000000021004b0000252f0000413d000009ee010000410000000000130435000a00000003001d00000004013000390000000002000410000000000021043500000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f00000001002001900000251b0000613d000000000201043b0000000001000414000009bd02200197000000040020008c000023a00000c13d0000000103000031000000200030008c000000200400003900000000040340190000000a0b000029000023cc0000013d0000000a03000029000009b90030009c000009b9030080410000004003300210000009b90010009c000009b901008041000000c001100210000000000131019f000009ef011001c726de26d90000040f0000000a0b00002900000000030100190000006003300270000009b903300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000023bb0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000023b70000c13d000000000006004b000023c80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000025380000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009be0010009c000024d70000213d0000000100200190000024d70000c13d000000400010043f000000200030008c000024d50000413d00000000030b04330000000e02000039000000000202041a000009bf022001970000000002230049000009c604200197000009c605300197000000000654013f000000000054004b0000000004000019000009c604002041000000000032004b0000000003000019000009c60300a041000009c60060009c000000000403c019000000000004004b000024dd0000613d000009c60020009c000025360000813d0000000801000039000000000101041a000400000001001d00000a3501000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f00000001002001900000251b0000613d000000000101043b000000040000006b000024ce0000613d000609bd0010019b0000000002000019000a00050000002d0000000801000039000000000101041a000000000021004b000024e30000a13d000800000002001d000009f00120009a000000000101041a000900000001001d000000000010043f0000000a01000039000000200010043f0000000001000414000009b90010009c000009b901008041000000c001100210000009dd011001c7000080100200003926de26d90000040f00000001002001900000000609000029000024d50000613d000000000101043b000000000201041a00000005012000b900000005031000fa000000000023004b000024dd0000c13d00000003011000fa000009bf0b1001970000000a01000029000009bf011001970000000001b10049000a00000001001d000009bf0010009c000024dd0000213d0000000901000029000009bd05100197000000400200043d00000044012000390000000000b104350000002001200039000009f10300004100000000003104350000002403200039000000000053043500000044030000390000000000320435000009dc0020009c000024d70000213d000000800c2000390000004000c0043f000009f20020009c000024d70000213d000000c003200039000000400030043f000000200300003900000000003c0435000000a003200039000009f304000041000000000043043500000000030204330000000002000414000000040090008c000024480000c13d00000001010000310000000102000039000024610000013d000009b90010009c000009b9010080410000004001100210000009b90030009c000009b9030080410000006003300210000000000113019f000009b90020009c000009b902008041000000c002200210000000000121019f0000000002090019000900000005001d00070000000b001d00020000000c001d26de26d40000040f000000020c000029000000070b00002900000009050000290000000609000029000000010220018f00030000000103550000006001100270000109b90010019d000009b901100197000000000001004b000000800d000039000000600e0000390000248d0000613d000009be0010009c000024d70000213d0000001f0310003900000a7f033001970000003f0330003900000a7f03300197000000400e00043d00000000033e00190000000000e3004b00000000040000390000000104004039000009be0030009c000024d70000213d0000000100400190000024d70000c13d000000400030043f000000000d1e043600000a7f0410019800000000034d0019000000030a000367000024800000613d00000000060a034f00000000070d0019000000006806043c0000000007870436000000000037004b0000247c0000c13d0000001f011001900000248d0000613d00000000044a034f0000000301100210000000000603043300000000061601cf000000000616022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000161019f000000000013043500000000030e0433000000000002004b000024e90000613d000000000003004b000024ac0000c13d00020000000e001d00010000000d001d00070000000b001d000900000005001d000009f401000041000000000010044300000004009004430000000001000414000009b90010009c000009b901008041000000c001100210000009f5011001c7000080020200003926de26d90000040f00000001002001900000251b0000613d000000000101043b000000000001004b00000002010000290000251c0000613d0000000003010433000000000003004b0000000905000029000000070b000029000000010d000029000024b80000613d000009c40030009c000024d50000213d000000200030008c000024d50000413d00000000010d0433000000000001004b0000000002000039000000010200c039000000000021004b000024d50000c13d000000000001004b000024ff0000613d000000400100043d0000000000b10435000009b90010009c000009b90100804100000040011002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009fa011001c70000800d020000390000000203000039000009fb0400004126de26d40000040f0000000100200190000024d50000613d00000008020000290000000102200039000000040020006c000024050000413d000024cf0000013d000a00050000002d0000000e02000039000000000102041a000009fe011001970000000a011001af000000000012041b000000000001042d0000000001000019000026e00001043000000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e00001043000000a6501000041000000000010043f0000001101000039000000040010043f000009ef01000041000026e00001043000000a6501000041000000000010043f0000003201000039000000040010043f000009ef01000041000026e00001043000000000010c0019000000000003004b000025130000c13d000000400400043d000a00000004001d000009f8020000410000000000240435000000040340003900000020020000390000000000230435000000240240003926de21d40000040f0000000a020000290000000001210049000009b90010009c000009b901008041000009b90020009c000009b90200804100000060011002100000004002200210000000000121019f000026e000010430000000400100043d0000006402100039000009f60300004100000000003204350000004402100039000009f703000041000000000032043500000024021000390000002a030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009f9011001c7000026e000010430000009b900d0009c000009b90d0080410000004002d00210000009b90030009c000009b9030080410000006001300210000000000121019f000026e000010430000000000001042f000000400100043d0000004402100039000009fc03000041000000000032043500000024021000390000001d030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009fd011001c7000026e00001043000000a8301000041000025300000013d00000a82010000410000000000130435000009b90030009c000009b9030080410000004001300210000009ed011001c7000026e00001043000000a0502000041000025580000013d0000001f0530018f000009bb06300198000000400200043d0000000004620019000025430000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000253f0000c13d000000000005004b000025500000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000009b90020009c000009b9020080410000004002200210000000000112019f000026e000010430000000400100043d000009ec020000410000000000210435000009b90010009c000009b9010080410000004001100210000009ed011001c7000026e0000104300001000000000002000000400300043d00000a840030009c000025b50000813d0000004004300039000000400040043f000000200430003900000000000404350000000000030435000000000002004b000025820000613d0000000303200210000000200330008900000a850430021f000000040020008c00000a85040080410000000203000367000000000513034f000000000505043b000000000445016f00000a860040009c0000259d0000613d00000a870040009c000025be0000c13d00000a880220009a00000a890020009c000025bb0000413d000000400400043d000009c80040009c000025b50000213d0000004002400039000000400020043f0000000401100039000000000113034f000000000101043b0000259a0000013d000000400100043d000009c80010009c000025b50000213d000100000001001d0000004001100039000000400010043f00000a3501000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000009b90010009c000009b901008041000000c00110021000000a36011001c7000080050200003926de26d90000040f0000000100200190000025bd0000613d000000000101043b000009be01100197000000010400002900000000001404350000000001000019000025b10000013d00000a880220009a00000a8a0020009c000025bb0000413d000000400400043d000009c80040009c000025b50000213d0000004002400039000000400020043f0000000402100039000000000223034f000000000202043b00000000002404350000002401100039000000000113034f000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000025bb0000c13d000000200240003900000000001204350000000001040019000000000001042d00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e0000104300000000001000019000026e000010430000000000001042f000000400100043d00000a8b020000410000000000210435000009b90010009c000009b9010080410000004001100210000009ed011001c7000026e0000104300002000000000002000000400400043d000000440540003900000000003504350000002003400039000009f1050000410000000000530435000009bd02200197000000240540003900000000002504350000004402000039000000000024043500000a810040009c000026540000813d0000008009400039000000400090043f000009f20040009c000026540000213d000009bd0a100197000000c001400039000000400010043f00000020010000390000000000190435000000a001400039000009f3020000410000000000210435000000000204043300000000010004140000000400a0008c000026120000c13d00000001020000390000000101000031000000000001004b0000262a0000613d000009be0010009c000026540000213d0000001f0410003900000a7f044001970000003f0440003900000a7f04400197000000400c00043d00000000044c00190000000000c4004b00000000050000390000000105004039000009be0040009c000026540000213d0000000100500190000026540000c13d000000400040043f000000000b1c043600000a7f031001980000001f0410018f00000000013b00190000000305000367000026040000613d000000000605034f00000000070b0019000000006806043c0000000007870436000000000017004b000026000000c13d000000000004004b0000262c0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000262c0000013d000009b90030009c000009b9030080410000004003300210000009b90020009c000009b9020080410000006002200210000000000232019f000009b90010009c000009b901008041000000c001100210000000000112019f00000000020a0019000200000009001d00010000000a001d26de26d40000040f000000010a0000290000000209000029000000010220018f00030000000103550000006001100270000109b90010019d000009b901100197000000000001004b000025e80000c13d000000600c000039000000800b00003900000000030c0433000000000002004b0000265c0000613d000000000003004b000026470000c13d00020000000c001d00010000000b001d000009f40100004100000000001004430000000400a004430000000001000414000009b90010009c000009b901008041000000c001100210000009f5011001c7000080020200003926de26d90000040f00000001002001900000268e0000613d000000000101043b000000000001004b00000002010000290000268f0000613d0000000003010433000000000003004b000000010b000029000026530000613d000009c40030009c0000265a0000213d0000001f0030008c0000265a0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b0000265a0000c13d000000000001004b000026720000613d000000000001042d00000a6501000041000000000010043f0000004101000039000000040010043f000009ef01000041000026e0000104300000000001000019000026e0000104300000000001090019000000000003004b000026860000c13d000000400400043d000200000004001d000009f8020000410000000000240435000000040340003900000020020000390000000000230435000000240240003926de21d40000040f00000002020000290000000001210049000009b90010009c000009b901008041000009b90020009c000009b90200804100000060011002100000004002200210000000000121019f000026e000010430000000400100043d0000006402100039000009f60300004100000000003204350000004402100039000009f703000041000000000032043500000024021000390000002a030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009f9011001c7000026e000010430000009b900b0009c000009b90b0080410000004002b00210000009b90030009c000009b9030080410000006001300210000000000121019f000026e000010430000000000001042f000000400100043d0000004402100039000009fc03000041000000000032043500000024021000390000001d030000390000000000320435000009f8020000410000000000210435000000040210003900000020030000390000000000320435000009b90010009c000009b9010080410000004001100210000009fd011001c7000026e000010430000000000001042f000009b90010009c000009b9010080410000004001100210000009b90020009c000009b9020080410000006002200210000000000112019f0000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f000009d0011001c7000080100200003926de26d90000040f0000000100200190000026b40000613d000000000101043b000000000001042d0000000001000019000026e00001043000000000050100190000000000200443000000050030008c000026c40000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000026bc0000413d000009b90030009c000009b90300804100000060013002100000000002000414000009b90020009c000009b902008041000000c002200210000000000112019f00000a8c011001c7000000000205001926de26d90000040f0000000100200190000026d30000613d000000000101043b000000000001042d000000000001042f000026d7002104210000000102000039000000000001042d0000000002000019000000000001042d000026dc002104230000000102000039000000000001042d0000000002000019000000000001042d000026de00000432000026df0001042e000026e00001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000fffffffffffffeff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffe5f000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000ffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff5f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000000000000000000000000000ffffffffffffffbfffffffffffffffffffffffff0000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000ffffffffffffffffffffff0000000000000000000000000000000000000000008acd72527118c8324937b1a42e02cd246697c3b633f1742f3cae11de233722b3020000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffff000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000100000000000002000000000000000000000000000000000002a000000000000000000000000045b5ad483aa608464c2c7f278bd413d284d7790cdc836e40652e23a027708220000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffff000000000000000000000000067924bf9277d905a9a4631a06d959bc032ace86b3caa835ae7e403d4f39010e000000000000000000000000000000000000000000000000ffffffffffffffdf000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000024ecdc02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000f5791bc457b3bb990493cf5f655db46c25ccf5764c9b99b8969b4c72ea7df9d0fb95a0042158e60a33e7b5bec100f3d95407b1a71bee6633bd54b8887449750b195db95800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000070a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000c085601c9b05546c4de925af5cdebeab0dd5f5d4bea4dc57b37e961749c911da9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000006f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e08c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000020000000000000000000000000000000000002000000000000000000000000055fdec2aab60a41fa5abb106670eb1006f5aeaee1ba7afea2bc89b5b3ec7678f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000000000000000000000000000000000000000000064000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000c085601c9b05546c4de925af5cdebeab0dd5f5d4bea4dc57b37e961749c911e4de938d100000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff00000000000000000000000000000000ffffffff0000000000000000000000008c337bff38141c507abd25c547606bdde78fe8c12e941ab613f3a565fea6cd240000000200000000000000000000000000000280000001000000000000000000f4d678b80000000000000000000000000000000000000000000000000000000035be3ac80000000000000000000000000000000000000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f0000000000000000000000000000000000000000000000000000000000000000000000007437ff9e00000000000000000000000000000000000000000000000000000000c92b283100000000000000000000000000000000000000000000000000000000eff7cc4700000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fbca3b7400000000000000000000000000000000000000000000000000000000eff7cc4800000000000000000000000000000000000000000000000000000000f25561fd00000000000000000000000000000000000000000000000000000000c92b283200000000000000000000000000000000000000000000000000000000d09dc33900000000000000000000000000000000000000000000000000000000df0aa9e900000000000000000000000000000000000000000000000000000000856c8246000000000000000000000000000000000000000000000000000000009a113c35000000000000000000000000000000000000000000000000000000009a113c3600000000000000000000000000000000000000000000000000000000b06d41bc00000000000000000000000000000000000000000000000000000000856c8247000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007437ff9f0000000000000000000000000000000000000000000000000000000076f6ae760000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000048a98aa300000000000000000000000000000000000000000000000000000000549e946e00000000000000000000000000000000000000000000000000000000599f643000000000000000000000000000000000000000000000000000000000599f643100000000000000000000000000000000000000000000000000000000704b6c0200000000000000000000000000000000000000000000000000000000549e946f0000000000000000000000000000000000000000000000000000000054b714680000000000000000000000000000000000000000000000000000000048a98aa400000000000000000000000000000000000000000000000000000000504bffe000000000000000000000000000000000000000000000000000000000546719cd0000000000000000000000000000000000000000000000000000000020487dec0000000000000000000000000000000000000000000000000000000020487ded000000000000000000000000000000000000000000000000000000004120fccd000000000000000000000000000000000000000000000000000000004816f4f70000000000000000000000000000000000000000000000000000000006285c69000000000000000000000000000000000000000000000000000000001772047e00000000000000000000000000000000000000000000000000000000181f5a779e7177c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000004f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000000000000000000000064000000800000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c660000000000000000002cbc26bb000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000002400000080000000000000000053ad11d8000000000000000000000000000000000000000000000000000000001c0a352900000000000000000000000000000000000000000000000000000000d9a9cd680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000ff000000000000000000000000000000000000d02641a00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000de0b6b3a76400009a655f7b000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000ffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff9725942a00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000001871cdf8010e63f2eb8384381a68dfa7416dc571a5517e66e88b2d2d0c0a690a15279c0800000000000000000000000000000000000000000000000000000000f94ebcd1000000000000000000000000000000000000000000000000000000005cf04449000000000000000000000000000000000000000000000000000000000041e5be00000000000000000000000000000000000000000000000000000000856c824700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffbff8d666f6000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffbbe4f6db0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000aff2afbf000000000000000000000000000000000000000000000000000000009a4575b900000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000036f536ca00000000000000000000000000000000000000000000000000000000bf16aab600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffedfd0c3c799bf9e2639de44391e7f524d229b2b55f5b1ea94b2bf7da42f7243dddd0000000000000000000000000000000000000020000000000000000000000000e5c7a491000000000000000000000000000000000000000000000000000000008693378900000000000000000000000000000000000000000000000000000000a4ec747900000000000000000000000000000000000000000000000000000000f6cd5620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000e00000000000000000ffffffffffffffffffffff00ffffffff0000000000000000000000000000000002000000000000000000000000000000000000600000000000000000000000009ea3374b67bf275e6bb9c8ae68f9cae023e1c528b4b27e092f0bb209d3531c19000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000200000008000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e04e487b7100000000000000000000000000000000000000000000000000000000b5a10cfa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000003c0000000000000000002000000000000000000000000000000000000200000008000000000000000008fe72c3e0020beb3234e76ae6676fa576fbfcae600af1c4fea44784cf0db329cfbdb8e560000000000000000000000000000000000000000000000000000000002075e0000000000000000000000000000000000000000000000000000000000232cb97f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000640000022000000000000000000000000000000000000000000000000000000004000002200000000000000000ee433e9900000000000000000000000000000000000000000000000000000000a7499d2000000000000000000000000000000000000000000000000000000000ffdb4b3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000ffffffdf4ab35b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000ffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000005af3107a40004c056b6a000000000000000000000000000000000000000000000000000000004c4fc93a0000000000000000000000000000000000000000000000000000000045564d3245564d4f6e52616d7020312e352e30000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000100000002800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff20000000000000000000000000000000000000000000000000ffffffffffffff808d0f71d800000000000000000000000000000000000000000000000000000000990e30bf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc0ffffffff00000000000000000000000000000000000000000000000000000000181dcf100000000000000000000000000000000000000000000000000000000097a657c9000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000405247fdce000000000000000000000000000000000000000000000000000000000200000200000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/link_token/link_token.go b/core/gethwrappers/ccip/generated/link_token/link_token.go new file mode 100644 index 0000000000..d60c3c9c7e --- /dev/null +++ b/core/gethwrappers/ccip/generated/link_token/link_token.go @@ -0,0 +1,2071 @@ +package link_token + +import ( + "errors" + "fmt" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var LinkTokenMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyAfterMint\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotBurner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotMinter\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBurners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"grantBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burnAndMinter\",\"type\":\"address\"}],\"name\":\"grantMintAndBurnRoles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"grantMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"isBurner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"revokeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"revokeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c06040523480156200001157600080fd5b506040518060400160405280600f81526020016e21b430b4b72634b735902a37b5b2b760891b815250604051806040016040528060048152602001634c494e4b60e01b81525060126b033b2e3c9fd0803ce8000000338060008686818181600390816200007f91906200028e565b5060046200008e82826200028e565b5050506001600160a01b0384169150620000f190505760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384811691909117909155811615620001245762000124816200013b565b50505060ff90911660805260a052506200035a9050565b336001600160a01b03821603620001955760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620000e8565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000289576000816000526020600020601f850160051c81016020861015620002645750805b601f850160051c820191505b81811015620002855782815560010162000270565b5050505b505050565b81516001600160401b03811115620002aa57620002aa620001e7565b620002c281620002bb8454620001fd565b8462000239565b602080601f831160018114620002fa5760008415620002e15750858301515b600019600386901b1c1916600185901b17855562000285565b600085815260208120601f198616915b828110156200032b578886015182559484019460019091019084016200030a565b50858210156200034a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051611e4c6200038e60003960008181610447015281816108c301526108ed015260006102710152611e4c6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806379cc67901161010f578063c2e3273d116100a2578063d73dd62311610071578063d73dd6231461046b578063dd62ed3e1461047e578063f2fde38b146104c4578063f81094f3146104d757600080fd5b8063c2e3273d1461040c578063c630948d1461041f578063c64d0ebc14610432578063d5abeb011461044557600080fd5b80639dc29fac116100de5780639dc29fac146103c0578063a457c2d7146103d3578063a9059cbb146103e6578063aa271e1a146103f957600080fd5b806379cc67901461037557806386fe8b43146103885780638da5cb5b1461039057806395d89b41146103b857600080fd5b806340c10f19116101875780636618846311610156578063661884631461030f5780636b32810b1461032257806370a082311461033757806379ba50971461036d57600080fd5b806340c10f19146102c157806342966c68146102d65780634334614a146102e95780634f5632f8146102fc57600080fd5b806323b872dd116101c357806323b872dd14610257578063313ce5671461026a578063395093511461029b5780634000aea0146102ae57600080fd5b806301ffc9a7146101f557806306fdde031461021d578063095ea7b31461023257806318160ddd14610245575b600080fd5b6102086102033660046119b9565b6104ea565b60405190151581526020015b60405180910390f35b61022561061b565b6040516102149190611a5f565b610208610240366004611a9b565b6106ad565b6002545b604051908152602001610214565b610208610265366004611ac5565b6106c5565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610214565b6102086102a9366004611a9b565b6106e9565b6102086102bc366004611b30565b610735565b6102d46102cf366004611a9b565b610858565b005b6102d46102e4366004611c19565b61097f565b6102086102f7366004611c32565b6109cc565b6102d461030a366004611c32565b6109d9565b61020861031d366004611a9b565b610a35565b61032a610a48565b6040516102149190611c4d565b610249610345366004611c32565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102d4610a59565b6102d4610383366004611a9b565b610b5a565b61032a610ba9565b60055460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b610225610bb5565b6102d46103ce366004611a9b565b610bc4565b6102086103e1366004611a9b565b610bce565b6102086103f4366004611a9b565b610c9f565b610208610407366004611c32565b610cad565b6102d461041a366004611c32565b610cba565b6102d461042d366004611c32565b610d16565b6102d4610440366004611c32565b610d24565b7f0000000000000000000000000000000000000000000000000000000000000000610249565b6102d4610479366004611a9b565b610d80565b61024961048c366004611ca7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102d46104d2366004611c32565b610d8a565b6102d46104e5366004611c32565b610d9b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000148061057d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4000aea000000000000000000000000000000000000000000000000000000000145b806105c957507fffffffff0000000000000000000000000000000000000000000000000000000082167fe6599b4d00000000000000000000000000000000000000000000000000000000145b8061061557507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606003805461062a90611cda565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611cda565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610df7565b5060019392505050565b6000336106d3858285610e2b565b6106de858585610efc565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106bb9082908690610730908790611d5c565b610df7565b60006107418484610c9f565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516107a1929190611d6f565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff84163b156106bb576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed369061081c90339087908790600401611d90565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b505050505060019392505050565b61086133610cad565b61089e576040517fe2c8c9d50000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b813073ffffffffffffffffffffffffffffffffffffffff8216036108c157600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001580159061092257507f00000000000000000000000000000000000000000000000000000000000000008261091660025490565b6109209190611d5c565b115b15610970578161093160025490565b61093b9190611d5c565b6040517fcbbf111300000000000000000000000000000000000000000000000000000000815260040161089591815260200190565b61097a8383610f2a565b505050565b610988336109cc565b6109c0576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6109c98161101d565b50565b6000610615600983611027565b6109e1611056565b6109ec6009826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c90600090a250565b6000610a418383610bce565b9392505050565b6060610a5460076110fb565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163314610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610895565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000008082163390811790935560068054909116905560405173ffffffffffffffffffffffffffffffffffffffff909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610b63336109cc565b610b9b576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b610ba58282611108565b5050565b6060610a5460096110fb565b60606004805461062a90611cda565b610ba58282610b5a565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610895565b6106de8286868403610df7565b6000336106bb818585610efc565b6000610615600783611027565b610cc2611056565b610ccd60078261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea90600090a250565b610d1f81610cba565b6109c9815b610d2c611056565b610d3760098261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad90600090a250565b61097a82826106e9565b610d92611056565b6109c98161113f565b610da3611056565b610dae6007826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e990600090a250565b813073ffffffffffffffffffffffffffffffffffffffff821603610e1a57600080fd5b610e25848484611235565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e255781811015610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610895565b610e258484848403610df7565b813073ffffffffffffffffffffffffffffffffffffffff821603610f1f57600080fd5b610e258484846113e8565b73ffffffffffffffffffffffffffffffffffffffff8216610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610895565b8060026000828254610fb99190611d5c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6109c93382611657565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610a41565b60055473ffffffffffffffffffffffffffffffffffffffff1633146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610895565b565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661181b565b60606000610a418361190e565b611113823383610e2b565b610ba58282611657565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661196a565b3373ffffffffffffffffffffffffffffffffffffffff8216036111be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610895565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b73ffffffffffffffffffffffffffffffffffffffff83166112d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e25565b73ffffffffffffffffffffffffffffffffffffffff82166116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156117b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000818152600183016020526040812054801561190457600061183f600183611dce565b855490915060009061185390600190611dce565b90508181146118b857600086600001828154811061187357611873611de1565b906000526020600020015490508087600001848154811061189657611896611de1565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118c9576118c9611e10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610615565b6000915050610615565b60608160000180548060200260200160405190810160405280929190818152602001828054801561195e57602002820191906000526020600020905b81548152602001906001019080831161194a575b50505050509050919050565b60008181526001830160205260408120546119b157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610615565b506000610615565b6000602082840312156119cb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b6000815180845260005b81811015611a2157602081850181015186830182015201611a05565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610a4160208301846119fb565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a9657600080fd5b919050565b60008060408385031215611aae57600080fd5b611ab783611a72565b946020939093013593505050565b600080600060608486031215611ada57600080fd5b611ae384611a72565b9250611af160208501611a72565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215611b4557600080fd5b611b4e84611a72565b925060208401359150604084013567ffffffffffffffff80821115611b7257600080fd5b818601915086601f830112611b8657600080fd5b813581811115611b9857611b98611b01565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611bde57611bde611b01565b81604052828152896020848701011115611bf757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215611c2b57600080fd5b5035919050565b600060208284031215611c4457600080fd5b610a4182611a72565b6020808252825182820181905260009190848201906040850190845b81811015611c9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611c69565b50909695505050505050565b60008060408385031215611cba57600080fd5b611cc383611a72565b9150611cd160208401611a72565b90509250929050565b600181811c90821680611cee57607f821691505b602082108103611d27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561061557610615611d2d565b828152604060208201526000611d8860408301846119fb565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000611dc560608301846119fb565b95945050505050565b8181038181111561061557610615611d2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000818000a", +} + +var LinkTokenABI = LinkTokenMetaData.ABI + +var LinkTokenBin = LinkTokenMetaData.Bin + +func DeployLinkToken(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *generated.Transaction, *LinkToken, error) { + parsed, err := LinkTokenMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(LinkTokenZKBin), backend) + contractReturn := &LinkToken{address: address, abi: *parsed, LinkTokenCaller: LinkTokenCaller{contract: contractBind}, LinkTokenTransactor: LinkTokenTransactor{contract: contractBind}, LinkTokenFilterer: LinkTokenFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(LinkTokenBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &LinkToken{address: address, abi: *parsed, LinkTokenCaller: LinkTokenCaller{contract: contract}, LinkTokenTransactor: LinkTokenTransactor{contract: contract}, LinkTokenFilterer: LinkTokenFilterer{contract: contract}}, nil +} + +type LinkToken struct { + address common.Address + abi abi.ABI + LinkTokenCaller + LinkTokenTransactor + LinkTokenFilterer +} + +type LinkTokenCaller struct { + contract *bind.BoundContract +} + +type LinkTokenTransactor struct { + contract *bind.BoundContract +} + +type LinkTokenFilterer struct { + contract *bind.BoundContract +} + +type LinkTokenSession struct { + Contract *LinkToken + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type LinkTokenCallerSession struct { + Contract *LinkTokenCaller + CallOpts bind.CallOpts +} + +type LinkTokenTransactorSession struct { + Contract *LinkTokenTransactor + TransactOpts bind.TransactOpts +} + +type LinkTokenRaw struct { + Contract *LinkToken +} + +type LinkTokenCallerRaw struct { + Contract *LinkTokenCaller +} + +type LinkTokenTransactorRaw struct { + Contract *LinkTokenTransactor +} + +func NewLinkToken(address common.Address, backend bind.ContractBackend) (*LinkToken, error) { + abi, err := abi.JSON(strings.NewReader(LinkTokenABI)) + if err != nil { + return nil, err + } + contract, err := bindLinkToken(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &LinkToken{address: address, abi: abi, LinkTokenCaller: LinkTokenCaller{contract: contract}, LinkTokenTransactor: LinkTokenTransactor{contract: contract}, LinkTokenFilterer: LinkTokenFilterer{contract: contract}}, nil +} + +func NewLinkTokenCaller(address common.Address, caller bind.ContractCaller) (*LinkTokenCaller, error) { + contract, err := bindLinkToken(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &LinkTokenCaller{contract: contract}, nil +} + +func NewLinkTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*LinkTokenTransactor, error) { + contract, err := bindLinkToken(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &LinkTokenTransactor{contract: contract}, nil +} + +func NewLinkTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*LinkTokenFilterer, error) { + contract, err := bindLinkToken(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &LinkTokenFilterer{contract: contract}, nil +} + +func bindLinkToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := LinkTokenMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_LinkToken *LinkTokenRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _LinkToken.Contract.LinkTokenCaller.contract.Call(opts, result, method, params...) +} + +func (_LinkToken *LinkTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _LinkToken.Contract.LinkTokenTransactor.contract.Transfer(opts) +} + +func (_LinkToken *LinkTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _LinkToken.Contract.LinkTokenTransactor.contract.Transact(opts, method, params...) +} + +func (_LinkToken *LinkTokenCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _LinkToken.Contract.contract.Call(opts, result, method, params...) +} + +func (_LinkToken *LinkTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _LinkToken.Contract.contract.Transfer(opts) +} + +func (_LinkToken *LinkTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _LinkToken.Contract.contract.Transact(opts, method, params...) +} + +func (_LinkToken *LinkTokenCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _LinkToken.Contract.Allowance(&_LinkToken.CallOpts, owner, spender) +} + +func (_LinkToken *LinkTokenCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _LinkToken.Contract.Allowance(&_LinkToken.CallOpts, owner, spender) +} + +func (_LinkToken *LinkTokenCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) BalanceOf(account common.Address) (*big.Int, error) { + return _LinkToken.Contract.BalanceOf(&_LinkToken.CallOpts, account) +} + +func (_LinkToken *LinkTokenCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _LinkToken.Contract.BalanceOf(&_LinkToken.CallOpts, account) +} + +func (_LinkToken *LinkTokenCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) Decimals() (uint8, error) { + return _LinkToken.Contract.Decimals(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) Decimals() (uint8, error) { + return _LinkToken.Contract.Decimals(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) GetBurners(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "getBurners") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) GetBurners() ([]common.Address, error) { + return _LinkToken.Contract.GetBurners(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) GetBurners() ([]common.Address, error) { + return _LinkToken.Contract.GetBurners(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) GetMinters(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "getMinters") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) GetMinters() ([]common.Address, error) { + return _LinkToken.Contract.GetMinters(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) GetMinters() ([]common.Address, error) { + return _LinkToken.Contract.GetMinters(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "isBurner", burner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) IsBurner(burner common.Address) (bool, error) { + return _LinkToken.Contract.IsBurner(&_LinkToken.CallOpts, burner) +} + +func (_LinkToken *LinkTokenCallerSession) IsBurner(burner common.Address) (bool, error) { + return _LinkToken.Contract.IsBurner(&_LinkToken.CallOpts, burner) +} + +func (_LinkToken *LinkTokenCaller) IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "isMinter", minter) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) IsMinter(minter common.Address) (bool, error) { + return _LinkToken.Contract.IsMinter(&_LinkToken.CallOpts, minter) +} + +func (_LinkToken *LinkTokenCallerSession) IsMinter(minter common.Address) (bool, error) { + return _LinkToken.Contract.IsMinter(&_LinkToken.CallOpts, minter) +} + +func (_LinkToken *LinkTokenCaller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "maxSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) MaxSupply() (*big.Int, error) { + return _LinkToken.Contract.MaxSupply(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) MaxSupply() (*big.Int, error) { + return _LinkToken.Contract.MaxSupply(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) Name() (string, error) { + return _LinkToken.Contract.Name(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) Name() (string, error) { + return _LinkToken.Contract.Name(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) Owner() (common.Address, error) { + return _LinkToken.Contract.Owner(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) Owner() (common.Address, error) { + return _LinkToken.Contract.Owner(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _LinkToken.Contract.SupportsInterface(&_LinkToken.CallOpts, interfaceId) +} + +func (_LinkToken *LinkTokenCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _LinkToken.Contract.SupportsInterface(&_LinkToken.CallOpts, interfaceId) +} + +func (_LinkToken *LinkTokenCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) Symbol() (string, error) { + return _LinkToken.Contract.Symbol(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) Symbol() (string, error) { + return _LinkToken.Contract.Symbol(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _LinkToken.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_LinkToken *LinkTokenSession) TotalSupply() (*big.Int, error) { + return _LinkToken.Contract.TotalSupply(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenCallerSession) TotalSupply() (*big.Int, error) { + return _LinkToken.Contract.TotalSupply(&_LinkToken.CallOpts) +} + +func (_LinkToken *LinkTokenTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "acceptOwnership") +} + +func (_LinkToken *LinkTokenSession) AcceptOwnership() (*types.Transaction, error) { + return _LinkToken.Contract.AcceptOwnership(&_LinkToken.TransactOpts) +} + +func (_LinkToken *LinkTokenTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _LinkToken.Contract.AcceptOwnership(&_LinkToken.TransactOpts) +} + +func (_LinkToken *LinkTokenTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "approve", spender, amount) +} + +func (_LinkToken *LinkTokenSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Approve(&_LinkToken.TransactOpts, spender, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Approve(&_LinkToken.TransactOpts, spender, amount) +} + +func (_LinkToken *LinkTokenTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "burn", amount) +} + +func (_LinkToken *LinkTokenSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Burn(&_LinkToken.TransactOpts, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Burn(&_LinkToken.TransactOpts, amount) +} + +func (_LinkToken *LinkTokenTransactor) Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "burn0", account, amount) +} + +func (_LinkToken *LinkTokenSession) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Burn0(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Burn0(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "burnFrom", account, amount) +} + +func (_LinkToken *LinkTokenSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.BurnFrom(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.BurnFrom(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +func (_LinkToken *LinkTokenSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.DecreaseAllowance(&_LinkToken.TransactOpts, spender, subtractedValue) +} + +func (_LinkToken *LinkTokenTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.DecreaseAllowance(&_LinkToken.TransactOpts, spender, subtractedValue) +} + +func (_LinkToken *LinkTokenTransactor) DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "decreaseApproval", spender, subtractedValue) +} + +func (_LinkToken *LinkTokenSession) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.DecreaseApproval(&_LinkToken.TransactOpts, spender, subtractedValue) +} + +func (_LinkToken *LinkTokenTransactorSession) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.DecreaseApproval(&_LinkToken.TransactOpts, spender, subtractedValue) +} + +func (_LinkToken *LinkTokenTransactor) GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "grantBurnRole", burner) +} + +func (_LinkToken *LinkTokenSession) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantBurnRole(&_LinkToken.TransactOpts, burner) +} + +func (_LinkToken *LinkTokenTransactorSession) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantBurnRole(&_LinkToken.TransactOpts, burner) +} + +func (_LinkToken *LinkTokenTransactor) GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "grantMintAndBurnRoles", burnAndMinter) +} + +func (_LinkToken *LinkTokenSession) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantMintAndBurnRoles(&_LinkToken.TransactOpts, burnAndMinter) +} + +func (_LinkToken *LinkTokenTransactorSession) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantMintAndBurnRoles(&_LinkToken.TransactOpts, burnAndMinter) +} + +func (_LinkToken *LinkTokenTransactor) GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "grantMintRole", minter) +} + +func (_LinkToken *LinkTokenSession) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantMintRole(&_LinkToken.TransactOpts, minter) +} + +func (_LinkToken *LinkTokenTransactorSession) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.GrantMintRole(&_LinkToken.TransactOpts, minter) +} + +func (_LinkToken *LinkTokenTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +func (_LinkToken *LinkTokenSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.IncreaseAllowance(&_LinkToken.TransactOpts, spender, addedValue) +} + +func (_LinkToken *LinkTokenTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.IncreaseAllowance(&_LinkToken.TransactOpts, spender, addedValue) +} + +func (_LinkToken *LinkTokenTransactor) IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "increaseApproval", spender, addedValue) +} + +func (_LinkToken *LinkTokenSession) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.IncreaseApproval(&_LinkToken.TransactOpts, spender, addedValue) +} + +func (_LinkToken *LinkTokenTransactorSession) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.IncreaseApproval(&_LinkToken.TransactOpts, spender, addedValue) +} + +func (_LinkToken *LinkTokenTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "mint", account, amount) +} + +func (_LinkToken *LinkTokenSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Mint(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Mint(&_LinkToken.TransactOpts, account, amount) +} + +func (_LinkToken *LinkTokenTransactor) RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "revokeBurnRole", burner) +} + +func (_LinkToken *LinkTokenSession) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.RevokeBurnRole(&_LinkToken.TransactOpts, burner) +} + +func (_LinkToken *LinkTokenTransactorSession) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.RevokeBurnRole(&_LinkToken.TransactOpts, burner) +} + +func (_LinkToken *LinkTokenTransactor) RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "revokeMintRole", minter) +} + +func (_LinkToken *LinkTokenSession) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.RevokeMintRole(&_LinkToken.TransactOpts, minter) +} + +func (_LinkToken *LinkTokenTransactorSession) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.RevokeMintRole(&_LinkToken.TransactOpts, minter) +} + +func (_LinkToken *LinkTokenTransactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "transfer", to, amount) +} + +func (_LinkToken *LinkTokenSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Transfer(&_LinkToken.TransactOpts, to, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.Transfer(&_LinkToken.TransactOpts, to, amount) +} + +func (_LinkToken *LinkTokenTransactor) TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "transferAndCall", to, amount, data) +} + +func (_LinkToken *LinkTokenSession) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _LinkToken.Contract.TransferAndCall(&_LinkToken.TransactOpts, to, amount, data) +} + +func (_LinkToken *LinkTokenTransactorSession) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _LinkToken.Contract.TransferAndCall(&_LinkToken.TransactOpts, to, amount, data) +} + +func (_LinkToken *LinkTokenTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "transferFrom", from, to, amount) +} + +func (_LinkToken *LinkTokenSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.TransferFrom(&_LinkToken.TransactOpts, from, to, amount) +} + +func (_LinkToken *LinkTokenTransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _LinkToken.Contract.TransferFrom(&_LinkToken.TransactOpts, from, to, amount) +} + +func (_LinkToken *LinkTokenTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _LinkToken.contract.Transact(opts, "transferOwnership", to) +} + +func (_LinkToken *LinkTokenSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.TransferOwnership(&_LinkToken.TransactOpts, to) +} + +func (_LinkToken *LinkTokenTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _LinkToken.Contract.TransferOwnership(&_LinkToken.TransactOpts, to) +} + +type LinkTokenApprovalIterator struct { + Event *LinkTokenApproval + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenApprovalIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenApprovalIterator) Error() error { + return it.fail +} + +func (it *LinkTokenApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*LinkTokenApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &LinkTokenApprovalIterator{contract: _LinkToken.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *LinkTokenApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenApproval) + if err := _LinkToken.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseApproval(log types.Log) (*LinkTokenApproval, error) { + event := new(LinkTokenApproval) + if err := _LinkToken.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenBurnAccessGrantedIterator struct { + Event *LinkTokenBurnAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenBurnAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenBurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenBurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenBurnAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *LinkTokenBurnAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenBurnAccessGranted struct { + Burner common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*LinkTokenBurnAccessGrantedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return &LinkTokenBurnAccessGrantedIterator{contract: _LinkToken.contract, event: "BurnAccessGranted", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *LinkTokenBurnAccessGranted, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenBurnAccessGranted) + if err := _LinkToken.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseBurnAccessGranted(log types.Log) (*LinkTokenBurnAccessGranted, error) { + event := new(LinkTokenBurnAccessGranted) + if err := _LinkToken.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenBurnAccessRevokedIterator struct { + Event *LinkTokenBurnAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenBurnAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenBurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenBurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenBurnAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *LinkTokenBurnAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenBurnAccessRevoked struct { + Burner common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*LinkTokenBurnAccessRevokedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return &LinkTokenBurnAccessRevokedIterator{contract: _LinkToken.contract, event: "BurnAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *LinkTokenBurnAccessRevoked, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenBurnAccessRevoked) + if err := _LinkToken.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseBurnAccessRevoked(log types.Log) (*LinkTokenBurnAccessRevoked, error) { + event := new(LinkTokenBurnAccessRevoked) + if err := _LinkToken.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenMintAccessGrantedIterator struct { + Event *LinkTokenMintAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenMintAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenMintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenMintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenMintAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *LinkTokenMintAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenMintAccessGranted struct { + Minter common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*LinkTokenMintAccessGrantedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return &LinkTokenMintAccessGrantedIterator{contract: _LinkToken.contract, event: "MintAccessGranted", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *LinkTokenMintAccessGranted, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenMintAccessGranted) + if err := _LinkToken.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseMintAccessGranted(log types.Log) (*LinkTokenMintAccessGranted, error) { + event := new(LinkTokenMintAccessGranted) + if err := _LinkToken.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenMintAccessRevokedIterator struct { + Event *LinkTokenMintAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenMintAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenMintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenMintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenMintAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *LinkTokenMintAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenMintAccessRevoked struct { + Minter common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*LinkTokenMintAccessRevokedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return &LinkTokenMintAccessRevokedIterator{contract: _LinkToken.contract, event: "MintAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *LinkTokenMintAccessRevoked, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenMintAccessRevoked) + if err := _LinkToken.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseMintAccessRevoked(log types.Log) (*LinkTokenMintAccessRevoked, error) { + event := new(LinkTokenMintAccessRevoked) + if err := _LinkToken.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenOwnershipTransferRequestedIterator struct { + Event *LinkTokenOwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenOwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenOwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *LinkTokenOwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenOwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenOwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &LinkTokenOwnershipTransferRequestedIterator{contract: _LinkToken.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *LinkTokenOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenOwnershipTransferRequested) + if err := _LinkToken.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseOwnershipTransferRequested(log types.Log) (*LinkTokenOwnershipTransferRequested, error) { + event := new(LinkTokenOwnershipTransferRequested) + if err := _LinkToken.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenOwnershipTransferredIterator struct { + Event *LinkTokenOwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenOwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenOwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *LinkTokenOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenOwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenOwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &LinkTokenOwnershipTransferredIterator{contract: _LinkToken.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *LinkTokenOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenOwnershipTransferred) + if err := _LinkToken.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseOwnershipTransferred(log types.Log) (*LinkTokenOwnershipTransferred, error) { + event := new(LinkTokenOwnershipTransferred) + if err := _LinkToken.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenTransferIterator struct { + Event *LinkTokenTransfer + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenTransferIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenTransferIterator) Error() error { + return it.fail +} + +func (it *LinkTokenTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenTransfer struct { + From common.Address + To common.Address + Value *big.Int + Data []byte + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenTransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &LinkTokenTransferIterator{contract: _LinkToken.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *LinkTokenTransfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenTransfer) + if err := _LinkToken.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseTransfer(log types.Log) (*LinkTokenTransfer, error) { + event := new(LinkTokenTransfer) + if err := _LinkToken.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type LinkTokenTransfer0Iterator struct { + Event *LinkTokenTransfer0 + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *LinkTokenTransfer0Iterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(LinkTokenTransfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(LinkTokenTransfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *LinkTokenTransfer0Iterator) Error() error { + return it.fail +} + +func (it *LinkTokenTransfer0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type LinkTokenTransfer0 struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log +} + +func (_LinkToken *LinkTokenFilterer) FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenTransfer0Iterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.FilterLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return &LinkTokenTransfer0Iterator{contract: _LinkToken.contract, event: "Transfer0", logs: logs, sub: sub}, nil +} + +func (_LinkToken *LinkTokenFilterer) WatchTransfer0(opts *bind.WatchOpts, sink chan<- *LinkTokenTransfer0, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _LinkToken.contract.WatchLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(LinkTokenTransfer0) + if err := _LinkToken.contract.UnpackLog(event, "Transfer0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_LinkToken *LinkTokenFilterer) ParseTransfer0(log types.Log) (*LinkTokenTransfer0, error) { + event := new(LinkTokenTransfer0) + if err := _LinkToken.contract.UnpackLog(event, "Transfer0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (_LinkToken *LinkToken) ParseLog(log types.Log) (generated.AbigenLog, error) { + switch log.Topics[0] { + case _LinkToken.abi.Events["Approval"].ID: + return _LinkToken.ParseApproval(log) + case _LinkToken.abi.Events["BurnAccessGranted"].ID: + return _LinkToken.ParseBurnAccessGranted(log) + case _LinkToken.abi.Events["BurnAccessRevoked"].ID: + return _LinkToken.ParseBurnAccessRevoked(log) + case _LinkToken.abi.Events["MintAccessGranted"].ID: + return _LinkToken.ParseMintAccessGranted(log) + case _LinkToken.abi.Events["MintAccessRevoked"].ID: + return _LinkToken.ParseMintAccessRevoked(log) + case _LinkToken.abi.Events["OwnershipTransferRequested"].ID: + return _LinkToken.ParseOwnershipTransferRequested(log) + case _LinkToken.abi.Events["OwnershipTransferred"].ID: + return _LinkToken.ParseOwnershipTransferred(log) + case _LinkToken.abi.Events["Transfer"].ID: + return _LinkToken.ParseTransfer(log) + case _LinkToken.abi.Events["Transfer0"].ID: + return _LinkToken.ParseTransfer0(log) + + default: + return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + } +} + +func (LinkTokenApproval) Topic() common.Hash { + return common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") +} + +func (LinkTokenBurnAccessGranted) Topic() common.Hash { + return common.HexToHash("0x92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad") +} + +func (LinkTokenBurnAccessRevoked) Topic() common.Hash { + return common.HexToHash("0x0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c") +} + +func (LinkTokenMintAccessGranted) Topic() common.Hash { + return common.HexToHash("0xe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea") +} + +func (LinkTokenMintAccessRevoked) Topic() common.Hash { + return common.HexToHash("0xed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9") +} + +func (LinkTokenOwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (LinkTokenOwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (LinkTokenTransfer) Topic() common.Hash { + return common.HexToHash("0xe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16") +} + +func (LinkTokenTransfer0) Topic() common.Hash { + return common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") +} + +func (_LinkToken *LinkToken) Address() common.Address { + return _LinkToken.address +} + +type LinkTokenInterface interface { + Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) + + BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) + + Decimals(opts *bind.CallOpts) (uint8, error) + + GetBurners(opts *bind.CallOpts) ([]common.Address, error) + + GetMinters(opts *bind.CallOpts) ([]common.Address, error) + + IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) + + IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) + + MaxSupply(opts *bind.CallOpts) (*big.Int, error) + + Name(opts *bind.CallOpts) (string, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) + + Symbol(opts *bind.CallOpts) (string, error) + + TotalSupply(opts *bind.CallOpts) (*big.Int, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) + + Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) + + Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) + + GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) + + TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*LinkTokenApprovalIterator, error) + + WatchApproval(opts *bind.WatchOpts, sink chan<- *LinkTokenApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) + + ParseApproval(log types.Log) (*LinkTokenApproval, error) + + FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*LinkTokenBurnAccessGrantedIterator, error) + + WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *LinkTokenBurnAccessGranted, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessGranted(log types.Log) (*LinkTokenBurnAccessGranted, error) + + FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*LinkTokenBurnAccessRevokedIterator, error) + + WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *LinkTokenBurnAccessRevoked, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessRevoked(log types.Log) (*LinkTokenBurnAccessRevoked, error) + + FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*LinkTokenMintAccessGrantedIterator, error) + + WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *LinkTokenMintAccessGranted, minter []common.Address) (event.Subscription, error) + + ParseMintAccessGranted(log types.Log) (*LinkTokenMintAccessGranted, error) + + FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*LinkTokenMintAccessRevokedIterator, error) + + WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *LinkTokenMintAccessRevoked, minter []common.Address) (event.Subscription, error) + + ParseMintAccessRevoked(log types.Log) (*LinkTokenMintAccessRevoked, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenOwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *LinkTokenOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*LinkTokenOwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenOwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *LinkTokenOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*LinkTokenOwnershipTransferred, error) + + FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenTransferIterator, error) + + WatchTransfer(opts *bind.WatchOpts, sink chan<- *LinkTokenTransfer, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer(log types.Log) (*LinkTokenTransfer, error) + + FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*LinkTokenTransfer0Iterator, error) + + WatchTransfer0(opts *bind.WatchOpts, sink chan<- *LinkTokenTransfer0, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer0(log types.Log) (*LinkTokenTransfer0, error) + + ParseLog(log types.Log) (generated.AbigenLog, error) + + Address() common.Address +} + +var LinkTokenZKBin = ("0x00020000000000020008000000000002000100000001035500000000030100190000006003300270000002ab0030019d00000001002001900000003b0000c13d000002ab023001970000008003000039000000400030043f000000040020008c000004ef0000413d000000000301043b000000e003300270000002b70030009c000000580000213d000002cf0030009c0000009d0000213d000002db0030009c000001820000213d000002e10030009c000001d10000213d000002e40030009c000003500000613d000002e50030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000520000c13d000000800010043f000000000005004b000001f30000613d000000000030043f000000020020008c0000056e0000413d000003190200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000000320000413d000005cd0000013d0000000001000416000000000001004b000004ef0000c13d0000000f01000039000000c00010043f000002ac01000041000000e00010043f0000014001000039000000400010043f0000000406000039000001000060043f000002ad01000041000001200010043f0000000303000039000000000103041a000000010210019000000001041002700000007f0440618f0000001f0040008c00000000010000390000000101002039000000000012004b000000760000613d000002fe01000041000000000010043f0000002201000039000000040010043f000002f80100004100000aaa00010430000002b80030009c000000c20000213d000002c40030009c000001990000213d000002ca0030009c000001dd0000213d000002cd0030009c000003630000613d000002ce0030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000902000039000000000102041a000000800010043f000000000020043f000000000001004b000001af0000613d000000a004000039000002fa0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b0000006e0000413d0000053d0000013d000000200040008c000000900000413d000400000004001d000000000030043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b00000004020000290000001f0220003900000005022002700000000002210019000000000021004b00000004060000390000000303000039000000900000813d000000000001041b0000000101100039000000000021004b0000008c0000413d000000e00100043d000002af011001970000001e011001bf000000000013041b000001000400043d000002b00040009c000001440000413d000002fe01000041000000000010043f0000004101000039000000040010043f000002f80100004100000aaa00010430000002d00030009c000001a00000213d000002d60030009c000001f90000213d000002d90030009c000003760000613d000002da0030009c000004ef0000c13d000000240020008c000004ef0000413d0000000001000416000000000001004b000004ef0000c13d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b0000041d0000613d00000004010000390000000101100367000000000201043b00000000010004110aa809eb0000040f000000000100001900000aa90001042e000002b90030009c000001b10000213d000002bf0030009c000002440000213d000002c20030009c000003970000613d000002c30030009c000004ef0000c13d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005610000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b000001110000c13d0000000701000039000000000201041a000002f00020009c000000970000213d0000000103200039000000000031041b000002f30220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f40400004100000004050000290aa80a9e0000040f0000000100200190000004ef0000613d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000006240000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b0000064f0000c13d0000000901000039000000000201041a000002f00020009c000000970000213d0000000103200039000000000031041b000002f10220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000001000414000004a90000013d000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000520000c13d000000200030008c0000016e0000413d000300000003001d000400000004001d000000000060043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d00000004040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000003010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000004060000390000016e0000813d000000000002041b0000000102200039000000000012004b0000016a0000413d0000001f0040008c000003450000a13d000400000004001d000000000060043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d00000004070000290000032002700198000000000101043b000004f10000c13d00000120030000390000000406000039000005000000013d000002dc0030009c000002580000213d000002df0030009c000003db0000613d000002e00030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000001000412000800000001001d000700000000003d000080050100003900000044030000390000000004000415000000080440008a0000000504400210000002ef020000410aa80a850000040f000000ff0110018f000000800010043f000002ee0100004100000aa90001042e000002c50030009c000002e40000213d000002c80030009c000003ff0000613d000002c90030009c000003440000613d000004ef0000013d000002d10030009c000002f30000213d000002d40030009c000003440000613d000002d50030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000702000039000000000102041a000000800010043f000000000020043f000000000001004b000005330000c13d00000020020000390000053e0000013d000002ba0030009c000003140000213d000002bd0030009c000004280000613d000002be0030009c000004ef0000c13d000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000002e60020009c000004ef0000213d0000002401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d000000000020043f0000000101000039000000200010043f000000400200003900000000010000190aa80a700000040f0000000402000029000000000020043f000000200010043f00000000010000190000004002000039000004e10000013d000002e20030009c000004370000613d000002e30030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000201000039000000000101041a000000800010043f000002ee0100004100000aa90001042e000002cb0030009c000004560000613d000002cc0030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000520000c13d000000800010043f000000000005004b0000056b0000c13d0000032101200197000000a00010043f000000000004004b000000c001000039000000a001006039000005ce0000013d000002d70030009c0000045f0000613d000002d80030009c000004ef0000c13d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005610000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000300000001001d000000000001004b0000064f0000613d0000000901000039000000000201041a000000000002004b0000033e0000613d0000000303000029000000010130008a000000000032004b0000067e0000c13d0000000302000029000002ff0220009a000000000002041b0000000902000039000000000012041b0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000001041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d02000039000000020300003900000300040000410000064b0000013d000002c00030009c0000046d0000613d000002c10030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000001000412000600000001001d000500200000003d000080050100003900000044030000390000000004000415000000060440008a0000000504400210000002ef020000410aa80a850000040f000000800010043f000002ee0100004100000aa90001042e000002dd0030009c000004b10000613d000002de0030009c000004ef0000c13d000000640020008c000004ef0000413d0000000003000416000000000003004b000004ef0000c13d0000000403100370000000000303043b000400000003001d000002e60030009c000004ef0000213d0000002403100370000000000303043b000300000003001d0000004403100370000000000403043b000002f00040009c000004ef0000213d0000002303400039000000000023004b000004ef0000813d0000000405400039000000000351034f000000000303043b000002f00030009c000000970000213d0000001f0630003900000320066001970000003f066000390000032006600197000003060060009c000000970000213d0000008006600039000000400060043f000000800030043f00000000043400190000002404400039000000000024004b000004ef0000213d0000002002500039000000000221034f00000320043001980000001f0530018f000000a0014000390000028e0000613d000000a006000039000000000702034f000000007807043c0000000006860436000000000016004b0000028a0000c13d000000000005004b0000029b0000613d000000000242034f0000000304500210000000000501043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f0000000000210435000000a0013000390000000000010435000000040100002900000003020000290aa808e40000040f000000400100043d000000200210003900000040030000390000000000320435000000030200002900000000002104350000004003100039000000800200043d000000000023043500000000070004110000006003100039000000000002004b000002b50000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000024004b000002ae0000413d0000001f042000390000032004400197000000000232001900000000000204350000006002400039000002ab0020009c000002ab020080410000006002200210000002ab0010009c000002ab010080410000004001100210000000000112019f0000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002e9011001c70000800d0200003900000003030000390000030704000041000000000507001900000004060000290aa80a9e0000040f0000000100200190000004ef0000613d00000308010000410000000000100443000000040100002900000004001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000309011001c700008002020000390aa80aa30000040f00000001002001900000076c0000613d000000000101043b000000000001004b000007220000c13d000000400100043d000300000001001d00000001010000390000000302000029000004ce0000013d000002c60030009c000004bf0000613d000002c70030009c000004ef0000c13d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000002e60010009c000004ef0000213d0aa80a470000040f000004690000013d000002d20030009c000004d40000613d000002d30030009c000004ef0000c13d0000000001000416000000000001004b000004ef0000c13d0000000601000039000000000201041a000002e6032001970000000006000411000000000036004b000005450000c13d0000000503000039000000000403041a000002b105400197000000000565019f000000000053041b000002b102200197000000000021041b0000000001000414000002e605400197000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000303000039000002fc040000410aa80a9e0000040f00000001002001900000064f0000c13d000004ef0000013d000002bb0030009c000004e60000613d000002bc0030009c000004ef0000c13d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005610000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000300000001001d000000000001004b0000064f0000613d0000000701000039000000000201041a000000000002004b0000062b0000c13d000002fe01000041000000000010043f0000001101000039000000040010043f000002f80100004100000aaa000104300aa807b50000040f000000000004004b0000000001000019000003490000613d000001200100043d0000000302400210000003220220027f0000032202200167000000000121016f0000000102400210000000000121019f0000050b0000013d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000201043b0000031a00200198000004ef0000c13d00000001010000390000031b0020009c000005700000213d0000031e0020009c000004e30000613d0000031f0020009c000000000100c019000000800010043f000002ee0100004100000aa90001042e000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004ef0000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000004110000013d000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004ef0000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b000005810000c13d000000400100043d00000305020000410000041f0000013d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005610000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b0000064f0000c13d0000000701000039000000000201041a000002f00020009c000000970000213d0000000103200039000000000031041b000002f30220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f4040000410000064b0000013d000000640020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004ef0000213d0000002402100370000000000202043b000300000002001d000002e60020009c000004ef0000213d0000004401100370000000000301043b00000000020004110000000401000029000200000003001d0aa8095b0000040f0000000001000410000000030010006b000004ef0000613d000000040000006b000005e10000c13d000000400100043d000000640210003900000311030000410000000000320435000000440210003900000312030000410000000000320435000000240210003900000025030000390000066a0000013d000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004ef0000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b000005780000c13d000000400100043d000002f7020000410000000000210435000000040210003900000000030004110000000000320435000002ab0010009c000002ab010080410000004001100210000002f8011001c700000aaa00010430000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000302043b000002e60030009c000004ef0000213d0000002401100370000000000201043b00000000010300190aa808600000040f000000000100001900000aa90001042e000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004ef0000213d0000002401100370000000000101043b000300000001001d0000000001000410000000040010006b000004ef0000613d0000000002000411000000000002004b000005a40000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000031701000041000000c40010043f0000031801000041000000e40010043f000003160100004100000aaa000104300000000001000416000000000001004b000004ef0000c13d0000000501000039000000000101041a000002e601100197000000800010043f000002ee0100004100000aa90001042e000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000002e60010009c000004ef0000213d0aa80a5b0000040f000000000001004b0000000001000039000000010100c039000004cd0000013d000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004ef0000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005610000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a000000000001004b0000064f0000c13d0000000901000039000000000201041a000002f00020009c000000970000213d0000000103200039000000000031041b000002f10220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f2040000410000064b0000013d000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000302043b000002e60030009c000004ef0000213d0000002401100370000000000201043b00000000010300190aa808600000040f000004cc0000013d000000440020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000402100370000000000302043b000002e60030009c000004ef0000213d0000002401100370000000000201043b00000000010300190aa808e40000040f0000000101000039000000400200043d0000000000120435000002ab0020009c000002ab020080410000004001200210000002f6011001c700000aa90001042e000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000101043b000002e60010009c000004ef0000213d000000000010043f000000200000043f000000400200003900000000010000190aa80a700000040f000000000101041a000000800010043f000002ee0100004100000aa90001042e000000240020008c000004ef0000413d0000000002000416000000000002004b000004ef0000c13d0000000401100370000000000601043b000002e60060009c0000054f0000a13d000000000100001900000aaa00010430000000010320008a00000005033002700000000003310019000000200400003900000001033000390000000406000039000000000504001900000100045000390000000004040433000000000041041b00000020045000390000000101100039000000000031004b000004f70000c13d0000012003500039000000000072004b000005090000813d0000000302700210000000f80220018f000003220220027f00000322022001670000000003030433000000000223016f000000000021041b000000010170021000000001011001bf000000000016041b0000000001000411000000000001004b000005200000c13d000000400100043d0000004402100039000002b4030000410000000000320435000000240210003900000018030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab010080410000004001100210000002b6011001c700000aaa000104300000000502000039000000000302041a000002b103300197000000000113019f000000000012041b0000001201000039000000800010043f000002b202000041000000a00020043f0000014000000443000001600010044300000020010000390000018000100443000001a000200443000001000010044300000002010000390000012000100443000002b30100004100000aa90001042e000000a004000039000002fd0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000005360000413d000000600250008a00000080010000390aa807a30000040f000000400100043d000400000001001d00000080020000390aa808500000040f000005d70000013d000002b501000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000002fb01000041000000c40010043f000002ed0100004100000aaa000104300000000501000039000000000101041a000002e6011001970000000005000411000000000015004b000005610000c13d000000000056004b000005b20000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000002ec01000041000000c40010043f000002ed0100004100000aaa00010430000002b501000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000002f501000041000000c40010043f000002ed0100004100000aaa00010430000000000030043f000000020020008c000005c30000813d000000a001000039000005ce0000013d0000031c0020009c000004e30000613d0000031d0020009c000004e30000613d0000000001000019000000800010043f000002ee0100004100000aa90001042e0000000401000029000000000200041100000003030000290aa8095b0000040f000000040100002900000003020000290aa809eb0000040f000000000100001900000aa90001042e0000000001000410000000040010006b000004ef0000613d000002ef01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000301011001c700008005020000390aa80aa30000040f00000001002001900000076c0000613d000000000101043b000000000001004b000006750000613d0000000202000039000000000202041a0000000303000029000000000032001a0000033e0000413d0000000002320019000000000012004b000006750000a13d000000400100043d0000030203000041000000000031043500000004031000390000000000230435000004230000013d000000040000006b000005ed0000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000031401000041000000c40010043f0000031501000041000000e40010043f000003160100004100000aaa000104300000000601000039000000000201041a000002b102200197000000000262019f000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000303000039000002eb040000410aa80a9e0000040f00000001002001900000064f0000c13d000004ef0000013d000002f90200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000005c50000413d000000c001300039000000800210008a00000080010000390aa807a30000040f0000002001000039000000400200043d000400000002001d000000000212043600000080010000390aa807910000040f00000004020000290000000001210049000002ab0010009c000002ab010080410000006001100210000002ab0020009c000002ab020080410000004002200210000000000121019f00000aa90001042e000000030000006b000006510000c13d000000400100043d00000064021000390000030f030000410000000000320435000000440210003900000310030000410000000000320435000000240210003900000023030000390000066a0000013d000000000020043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000402000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000004060000290aa80a9e0000040f0000000100200190000004ef0000613d000000400100043d00000001020000390000000000210435000002ab0010009c000002ab010080410000004001100210000002f6011001c700000aa90001042e000000400100043d0000004402100039000002f503000041000000000032043500000024021000390000001603000039000005150000013d0000000303000029000000010130008a000000000032004b0000069c0000c13d0000000302000029000002e80220009a000000000002041b0000000702000039000000000012041b0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000001041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002ea0400004100000004050000290aa80a9e0000040f0000000100200190000004ef0000613d000000000100001900000aa90001042e0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000101041a0001000200100074000006ef0000813d000000400100043d00000064021000390000030c03000041000000000032043500000044021000390000030d030000410000000000320435000000240210003900000026030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000000040000006b000006c30000c13d000000400100043d00000044021000390000030403000041000000000032043500000024021000390000001f03000039000005150000013d000000000012004b000006bd0000a13d0000000301000029000002ff0110009a000002ff0220009a000000000202041a000000000021041b000000000020043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000901000039000000000101041a000300000001001d000000000001004b000006b70000613d0000000301000029000000010110008a000002270000013d000000000012004b000006bd0000a13d0000000301000029000002e80110009a000002e80220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000302000029000000000021041b0000000701000039000000000101041a000300000001001d000000000001004b0000076d0000c13d000002fe01000041000000000010043f0000003101000039000000040010043f000002f80100004100000aaa00010430000002fe01000041000000000010043f0000003201000039000000040010043f000002f80100004100000aaa000104300000000201000039000000000201041a0000000303000029000000000032001a0000033e0000413d0000000002320019000000000021041b0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000201041a00000003030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000000500001900000004060000290aa80a9e0000040f00000001002001900000064f0000c13d000004ef0000013d0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004ef0000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000040500002900000003060000290aa80a9e0000040f00000001002001900000061c0000c13d000004ef0000013d00000308010000410000000000100443000000040100002900000004001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000309011001c700008002020000390aa80aa30000040f00000001002001900000076c0000613d000000000101043b000000000001004b000004ef0000613d000000400300043d0000004401300039000000600200003900000000002104350000002401300039000000030200002900000000002104350000030a0100004100000000001304350000000401300039000000000200041100000000002104350000006402300039000000800100043d0000000000120435000300000003001d0000008402300039000000000001004b0000074d0000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000013004b000007460000413d0000000002210019000000000002043500000000020004140000000403000029000000040030008c000007660000613d0000001f0110003900000320011001970000008401100039000002ab0010009c000002ab0100804100000060011002100000000303000029000002ab0030009c000002ab030080410000004003300210000000000131019f000002ab0020009c000002ab02008041000000c002200210000000000112019f00000004020000290aa80a9e0000040f0000000100200190000007700000613d0000000301000029000002f00010009c000000970000213d0000000301000029000000400010043f000002e10000013d000000000001042f0000000301000029000000010110008a0000062f0000013d000000000201001900000060062002700000001f0460018f0000030b05600198000000400200043d00000000035200190000077d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000007790000c13d000002ab06600197000000000004004b0000078b0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000002ab0020009c000002ab020080410000004002200210000000000112019f00000aaa0001043000000000430104340000000001320436000000000003004b0000079d0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b000007960000413d000000000231001900000000000204350000001f0230003900000320022001970000000001210019000000000001042d0000001f0220003900000320022001970000000001120019000000000021004b00000000020000390000000102004039000002f00010009c000007af0000213d0000000100200190000007af0000c13d000000400010043f000000000001042d000002fe01000041000000000010043f0000004101000039000000040010043f000002f80100004100000aaa0001043000020000000000020000000001000416000000000001004b000007fc0000c13d0000000001000031000003230010009c000007fc0000213d000000430010008c000007fc0000a13d00000001010003670000000402100370000000000202043b000200000002001d000002e60020009c000007fc0000213d0000002401100370000000000101043b000100000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000007fc0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000007fc0000613d000000000101043b000000000101041a000000010310006c000007f90000813d000000400100043d000000640210003900000324030000410000000000320435000000440210003900000325030000410000000000320435000000240210003900000025030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300000000001000410000000020010006b000007fe0000c13d000000000100001900000aaa000104300000000001000411000000000001004b0000080b0000c13d000000400100043d00000064021000390000031803000041000000000032043500000044021000390000031703000041000000000032043500000024021000390000002403000039000007ee0000013d000000020000006b000008170000c13d000000400100043d00000064021000390000031503000041000000000032043500000044021000390000031403000041000000000032043500000024021000390000002203000039000007ee0000013d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c70000801002000039000100000003001d0aa80aa30000040f0000000100200190000007fc0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f00000001030000290000000100200190000007fc0000613d000000000101043b000000000031041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000002060000290aa80a9e0000040f0000000100200190000007fc0000613d000000400100043d00000001020000390000000000210435000002ab0010009c000002ab010080410000004001100210000002f6011001c700000aa90001042e00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b0000085f0000613d000000000400001900000020022000390000000005020433000002e60550019700000000015104360000000104400039000000000034004b000008580000413d000000000001042d0003000000000002000200000002001d000300000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008be0000613d000000000101043b0000000302000029000002e602200197000300000002001d000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008be0000613d000000000101043b000000000201041a000000020020002a000008de0000413d000100000002001d0000000001000410000000030010006b000008be0000613d0000000001000411000000000001004b000008c00000613d000000030000006b000008ca0000613d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008be0000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008be0000613d00000001030000290000000202300029000000000101043b000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000003060000290aa80a9e0000040f0000000100200190000008be0000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000064021000390000031803000041000000000032043500000044021000390000031703000041000000000032043500000024021000390000002403000039000008d30000013d000000400100043d000000640210003900000315030000410000000000320435000000440210003900000314030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000002fe01000041000000000010043f0000001101000039000000040010043f000002f80100004100000aaa000104300003000000000002000200000002001d000302e60010019b0000000001000410000000030010006b000009310000613d0000000002000411000000000002004b000009330000613d000000030000006b0000093d0000613d000000000020043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009310000613d000000000101043b000000000101041a0001000200100074000009470000413d0000000001000411000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009310000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009310000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000000500041100000003060000290aa80a9e0000040f0000000100200190000009310000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000064021000390000031103000041000000000032043500000044021000390000031203000041000000000032043500000024021000390000002503000039000009500000013d000000400100043d00000064021000390000030f03000041000000000032043500000044021000390000031003000041000000000032043500000024021000390000002303000039000009500000013d000000400100043d00000064021000390000030c03000041000000000032043500000044021000390000030d030000410000000000320435000000240210003900000026030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300003000000000002000100000003001d000300000002001d000002e601100197000200000001001d000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000302000029000002e602200197000300000002001d000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b000000000101041a000003220010009c000009b90000613d000000010110006c000009bc0000413d000100000001001d0000000001000410000000030010006b000009ba0000613d000000020000006b000009cd0000613d000000030000006b000009d70000613d0000000201000029000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000102000029000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000020500002900000003060000290aa80a9e0000040f0000000100200190000009ba0000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000044021000390000032603000041000000000032043500000024021000390000001d030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab010080410000004001100210000002b6011001c700000aaa00010430000000400100043d00000064021000390000031803000041000000000032043500000044021000390000031703000041000000000032043500000024021000390000002403000039000009e00000013d000000400100043d000000640210003900000315030000410000000000320435000000440210003900000314030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300003000000000002000300000002001d000002e60310019800000a290000613d000000000030043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c70000801002000039000200000003001d0aa80aa30000040f000000010020019000000a270000613d0000000202000029000000000101043b000000000101041a000100030010007400000a330000413d000000000020043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a270000613d000000000101043b0000000102000029000000000021041b0000000201000039000000000201041a00000003030000290000000002320049000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000020500002900000000060000190aa80a9e0000040f000000010020019000000a270000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000064021000390000032903000041000000000032043500000044021000390000032a0300004100000000003204350000002402100039000000210300003900000a3c0000013d000000400100043d000000640210003900000327030000410000000000320435000000440210003900000328030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a590000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000aaa00010430000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a6d0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000aaa00010430000000000001042f000002ab0010009c000002ab010080410000004001100210000002ab0020009c000002ab020080410000006002200210000000000112019f0000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002e9011001c700008010020000390aa80aa30000040f000000010020019000000a830000613d000000000101043b000000000001042d000000000100001900000aaa0001043000000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b00000a880000413d000002ab0030009c000002ab0300804100000060013002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f0000032b011001c700000000020500190aa80aa30000040f000000010020019000000a9d0000613d000000000101043b000000000001042d000000000001042f00000aa1002104210000000102000039000000000001042d0000000002000019000000000001042d00000aa6002104230000000102000039000000000001042d0000000002000019000000000001042d00000aa80000043200000aa90001042e00000aaa00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff436861696e4c696e6b20546f6b656e00000000000000000000000000000000004c494e4b000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000002000000000000000000000000000000c000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000079cc678f00000000000000000000000000000000000000000000000000000000c2e3273c00000000000000000000000000000000000000000000000000000000d73dd62200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f81094f300000000000000000000000000000000000000000000000000000000d73dd62300000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000c64d0ebb00000000000000000000000000000000000000000000000000000000c64d0ebc00000000000000000000000000000000000000000000000000000000d5abeb0100000000000000000000000000000000000000000000000000000000c2e3273d00000000000000000000000000000000000000000000000000000000c630948d000000000000000000000000000000000000000000000000000000009dc29fab00000000000000000000000000000000000000000000000000000000a9059cba00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000aa271e1a000000000000000000000000000000000000000000000000000000009dc29fac00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000079cc67900000000000000000000000000000000000000000000000000000000086fe8b430000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000661884620000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000066188463000000000000000000000000000000000000000000000000000000006b32810b0000000000000000000000000000000000000000000000000000000043346149000000000000000000000000000000000000000000000000000000004334614a000000000000000000000000000000000000000000000000000000004f5632f80000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000004000aea00000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0200000000000000000000000000000000000040000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c939790200000000000000000000000000000000000000000000000000000000000000ed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c6600000000000000000000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000800000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e000000000000000000000000000000000000000000000000ffffffffffffffff91eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a385192308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c93978e46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000000000000000000000020000000000000000000000000c820b10b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6884e487b710000000000000000000000000000000000000000000000000000000091eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a38520a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c0200000200000000000000000000000000000044000000000000000000000000cbbf111300000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f206164647265737300e2c8c9d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c161806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4c0ed360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e74206578636565647320620000000000000000000000000000000000000084000000000000000000000000657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061648c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92545524332303a20617070726f766520746f20746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000ae9fffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000aea000000000000000000000000000000000000000000000000000000000e6599b4d0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000036372b0700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7745524332303a20696e73756666696369656e7420616c6c6f77616e6365000000636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f2061646472657302000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/price_registry_1_2_0/price_registry_1_2_0.go b/core/gethwrappers/ccip/generated/price_registry_1_2_0/price_registry_1_2_0.go new file mode 100644 index 0000000000..0d5a1cdd60 --- /dev/null +++ b/core/gethwrappers/ccip/generated/price_registry_1_2_0/price_registry_1_2_0.go @@ -0,0 +1,2866 @@ +package price_registry_1_2_0 + +import ( + "errors" + "fmt" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +type AuthorizedCallersAuthorizedCallerArgs struct { + AddedCallers []common.Address + RemovedCallers []common.Address +} + +type ClientEVM2AnyMessage struct { + Receiver []byte + Data []byte + TokenAmounts []ClientEVMTokenAmount + FeeToken common.Address + ExtraArgs []byte +} + +type ClientEVMTokenAmount struct { + Token common.Address + Amount *big.Int +} + +type IPriceRegistryTokenPriceFeedConfig struct { + DataFeedAddress common.Address + TokenDecimals uint8 +} + +type InternalGasPriceUpdate struct { + DestChainSelector uint64 + UsdPerUnitGas *big.Int +} + +type InternalPriceUpdates struct { + TokenPriceUpdates []InternalTokenPriceUpdate + GasPriceUpdates []InternalGasPriceUpdate +} + +type InternalRampTokenAmount struct { + SourcePoolAddress []byte + DestTokenAddress []byte + ExtraData []byte + Amount *big.Int +} + +type InternalTimestampedPackedUint224 struct { + Value *big.Int + Timestamp uint32 +} + +type InternalTokenPriceUpdate struct { + SourceToken common.Address + UsdPerToken *big.Int +} + +type PriceRegistryDestChainConfig struct { + IsEnabled bool + MaxNumberOfTokensPerMsg uint16 + MaxDataBytes uint32 + MaxPerMsgGasLimit uint32 + DestGasOverhead uint32 + DestGasPerPayloadByte uint16 + DestDataAvailabilityOverheadGas uint32 + DestGasPerDataAvailabilityByte uint16 + DestDataAvailabilityMultiplierBps uint16 + DefaultTokenFeeUSDCents uint16 + DefaultTokenDestGasOverhead uint32 + DefaultTokenDestBytesOverhead uint32 + DefaultTxGasLimit uint32 + GasMultiplierWeiPerEth uint64 + NetworkFeeUSDCents uint32 + EnforceOutOfOrder bool + ChainFamilySelector [4]byte +} + +type PriceRegistryDestChainConfigArgs struct { + DestChainSelector uint64 + DestChainConfig PriceRegistryDestChainConfig +} + +type PriceRegistryPremiumMultiplierWeiPerEthArgs struct { + Token common.Address + PremiumMultiplierWeiPerEth uint64 +} + +type PriceRegistryStaticConfig struct { + MaxFeeJuelsPerMsg *big.Int + LinkToken common.Address + StalenessThreshold uint32 +} + +type PriceRegistryTokenPriceFeedUpdate struct { + SourceToken common.Address + FeedConfig IPriceRegistryTokenPriceFeedConfig +} + +type PriceRegistryTokenTransferFeeConfig struct { + MinFeeUSDCents uint32 + MaxFeeUSDCents uint32 + DeciBps uint16 + DestGasOverhead uint32 + DestBytesOverhead uint32 + IsEnabled bool +} + +type PriceRegistryTokenTransferFeeConfigArgs struct { + DestChainSelector uint64 + TokenTransferFeeConfigs []PriceRegistryTokenTransferFeeConfigSingleTokenArgs +} + +type PriceRegistryTokenTransferFeeConfigRemoveArgs struct { + DestChainSelector uint64 + Token common.Address +} + +type PriceRegistryTokenTransferFeeConfigSingleTokenArgs struct { + Token common.Address + TokenTransferFeeConfig PriceRegistryTokenTransferFeeConfig +} + +var PriceRegistryMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"maxFeeJuelsPerMsg\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"linkToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stalenessThreshold\",\"type\":\"uint32\"}],\"internalType\":\"structPriceRegistry.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"priceUpdaters\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"feeTokens\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataFeedAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"internalType\":\"structIPriceRegistry.TokenPriceFeedConfig\",\"name\":\"feedConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.TokenPriceFeedUpdate[]\",\"name\":\"tokenPriceFeeds\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"minFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"deciBps\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfig\",\"name\":\"tokenTransferFeeConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfigSingleTokenArgs[]\",\"name\":\"tokenTransferFeeConfigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfigArgs[]\",\"name\":\"tokenTransferFeeConfigArgs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"premiumMultiplierWeiPerEth\",\"type\":\"uint64\"}],\"internalType\":\"structPriceRegistry.PremiumMultiplierWeiPerEthArgs[]\",\"name\":\"premiumMultiplierWeiPerEthArgs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerMsgGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerPayloadByte\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destDataAvailabilityOverheadGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerDataAvailabilityByte\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"destDataAvailabilityMultiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"defaultTokenFeeUSDCents\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasMultiplierWeiPerEth\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"networkFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"enforceOutOfOrder\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"chainFamilySelector\",\"type\":\"bytes4\"}],\"internalType\":\"structPriceRegistry.DestChainConfig\",\"name\":\"destChainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.DestChainConfigArgs[]\",\"name\":\"destChainConfigArgs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chain\",\"type\":\"uint64\"}],\"name\":\"ChainNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataFeedValueOutOfUint224Range\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"DestinationChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraArgOutOfOrderExecutionMustBeTrue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destBytesOverhead\",\"type\":\"uint32\"}],\"name\":\"InvalidDestBytesOverhead\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidDestChainConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidExtraArgsTag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgFeeJuels\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeeJuelsPerMsg\",\"type\":\"uint256\"}],\"name\":\"MessageFeeTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessageGasLimitTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualSize\",\"type\":\"uint256\"}],\"name\":\"MessageTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SourceTokenDataTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timePassed\",\"type\":\"uint256\"}],\"name\":\"StaleGasPrice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedNumberOfTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AuthorizedCallerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AuthorizedCallerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerMsgGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerPayloadByte\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destDataAvailabilityOverheadGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerDataAvailabilityByte\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"destDataAvailabilityMultiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"defaultTokenFeeUSDCents\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasMultiplierWeiPerEth\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"networkFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"enforceOutOfOrder\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"chainFamilySelector\",\"type\":\"bytes4\"}],\"indexed\":false,\"internalType\":\"structPriceRegistry.DestChainConfig\",\"name\":\"destChainConfig\",\"type\":\"tuple\"}],\"name\":\"DestChainAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerMsgGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerPayloadByte\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destDataAvailabilityOverheadGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerDataAvailabilityByte\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"destDataAvailabilityMultiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"defaultTokenFeeUSDCents\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasMultiplierWeiPerEth\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"networkFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"enforceOutOfOrder\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"chainFamilySelector\",\"type\":\"bytes4\"}],\"indexed\":false,\"internalType\":\"structPriceRegistry.DestChainConfig\",\"name\":\"destChainConfig\",\"type\":\"tuple\"}],\"name\":\"DestChainConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"}],\"name\":\"FeeTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"}],\"name\":\"FeeTokenRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"premiumMultiplierWeiPerEth\",\"type\":\"uint64\"}],\"name\":\"PremiumMultiplierWeiPerEthUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataFeedAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"structIPriceRegistry.TokenPriceFeedConfig\",\"name\":\"priceFeedConfig\",\"type\":\"tuple\"}],\"name\":\"PriceFeedPerTokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenTransferFeeConfigDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"minFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"deciBps\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"structPriceRegistry.TokenTransferFeeConfig\",\"name\":\"tokenTransferFeeConfig\",\"type\":\"tuple\"}],\"name\":\"TokenTransferFeeConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"UsdPerTokenUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"destChain\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"UsdPerUnitGasUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"addedCallers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"removedCallers\",\"type\":\"address[]\"}],\"internalType\":\"structAuthorizedCallers.AuthorizedCallerArgs\",\"name\":\"authorizedCallerArgs\",\"type\":\"tuple\"}],\"name\":\"applyAuthorizedCallerUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerMsgGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerPayloadByte\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destDataAvailabilityOverheadGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerDataAvailabilityByte\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"destDataAvailabilityMultiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"defaultTokenFeeUSDCents\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasMultiplierWeiPerEth\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"networkFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"enforceOutOfOrder\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"chainFamilySelector\",\"type\":\"bytes4\"}],\"internalType\":\"structPriceRegistry.DestChainConfig\",\"name\":\"destChainConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.DestChainConfigArgs[]\",\"name\":\"destChainConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"applyDestChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"feeTokensToAdd\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"feeTokensToRemove\",\"type\":\"address[]\"}],\"name\":\"applyFeeTokensUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"premiumMultiplierWeiPerEth\",\"type\":\"uint64\"}],\"internalType\":\"structPriceRegistry.PremiumMultiplierWeiPerEthArgs[]\",\"name\":\"premiumMultiplierWeiPerEthArgs\",\"type\":\"tuple[]\"}],\"name\":\"applyPremiumMultiplierWeiPerEthUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"minFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"deciBps\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfig\",\"name\":\"tokenTransferFeeConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfigSingleTokenArgs[]\",\"name\":\"tokenTransferFeeConfigs\",\"type\":\"tuple[]\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfigArgs[]\",\"name\":\"tokenTransferFeeConfigArgs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfigRemoveArgs[]\",\"name\":\"tokensToUseDefaultFeeConfigs\",\"type\":\"tuple[]\"}],\"name\":\"applyTokenTransferFeeConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fromTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"toToken\",\"type\":\"address\"}],\"name\":\"convertTokenAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllAuthorizedCallers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"getDestChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPerMsgGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerPayloadByte\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destDataAvailabilityOverheadGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"destGasPerDataAvailabilityByte\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"destDataAvailabilityMultiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"defaultTokenFeeUSDCents\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTokenDestBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"defaultTxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasMultiplierWeiPerEth\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"networkFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"enforceOutOfOrder\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"chainFamilySelector\",\"type\":\"bytes4\"}],\"internalType\":\"structPriceRegistry.DestChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"getDestinationChainGasPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint224\",\"name\":\"value\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"}],\"internalType\":\"structInternal.TimestampedPackedUint224\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPremiumMultiplierWeiPerEth\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"premiumMultiplierWeiPerEth\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"maxFeeJuelsPerMsg\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"linkToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stalenessThreshold\",\"type\":\"uint32\"}],\"internalType\":\"structPriceRegistry.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"getTokenAndGasPrices\",\"outputs\":[{\"internalType\":\"uint224\",\"name\":\"tokenPrice\",\"type\":\"uint224\"},{\"internalType\":\"uint224\",\"name\":\"gasPriceValue\",\"type\":\"uint224\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint224\",\"name\":\"value\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"}],\"internalType\":\"structInternal.TimestampedPackedUint224\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenPriceFeedConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataFeedAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"internalType\":\"structIPriceRegistry.TokenPriceFeedConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getTokenPrices\",\"outputs\":[{\"components\":[{\"internalType\":\"uint224\",\"name\":\"value\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"}],\"internalType\":\"structInternal.TimestampedPackedUint224[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenTransferFeeConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"minFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxFeeUSDCents\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"deciBps\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"destGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destBytesOverhead\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"internalType\":\"structPriceRegistry.TokenTransferFeeConfig\",\"name\":\"tokenTransferFeeConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"}],\"internalType\":\"structClient.EVM2AnyMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"getValidatedFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getValidatedTokenPrice\",\"outputs\":[{\"internalType\":\"uint224\",\"name\":\"\",\"type\":\"uint224\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"}],\"name\":\"processMessageArgs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"msgFeeJuels\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isOutOfOrderExecution\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"convertedExtraArgs\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"updatePrices\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataFeedAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"internalType\":\"structIPriceRegistry.TokenPriceFeedConfig\",\"name\":\"feedConfig\",\"type\":\"tuple\"}],\"internalType\":\"structPriceRegistry.TokenPriceFeedUpdate[]\",\"name\":\"tokenPriceFeedUpdates\",\"type\":\"tuple[]\"}],\"name\":\"updateTokenPriceFeeds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"rampTokenAmounts\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"sourceTokenAmounts\",\"type\":\"tuple[]\"}],\"name\":\"validatePoolReturnData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60e06040523480156200001157600080fd5b5060405162006a4238038062006a4283398101604081905262000034916200188e565b8533806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf8162000207565b5050604080518082018252838152815160008152602080820190935291810191909152620000ee9150620002b2565b5060208701516001600160a01b0316158062000112575086516001600160601b0316155b80620001265750604087015163ffffffff16155b15620001455760405163d794ef9560e01b815260040160405180910390fd5b6020878101516001600160a01b031660a05287516001600160601b031660805260408089015163ffffffff1660c05280516000815291820190526200018c90869062000401565b620001978462000549565b620001a2816200061a565b620001ad8262000a9f565b60408051600080825260208201909252620001fa91859190620001f3565b6040805180820190915260008082526020820152815260200190600190039081620001cb5790505b5062000b6b565b5050505050505062001b4c565b336001600160a01b03821603620002615760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b602081015160005b815181101562000342576000828281518110620002db57620002db620019ad565b60209081029190910101519050620002f560028262000ea4565b1562000338576040516001600160a01b03821681527fc3803387881faad271c47728894e3e36fac830ffc8602ca6fc07733cbda775809060200160405180910390a15b50600101620002ba565b50815160005b8151811015620003fb576000828281518110620003695762000369620019ad565b6020026020010151905060006001600160a01b0316816001600160a01b031603620003a7576040516342bcdf7f60e11b815260040160405180910390fd5b620003b460028262000ec4565b506040516001600160a01b03821681527feb1b9b92e50b7f88f9ff25d56765095ac6e91540eee214906f4036a908ffbdef9060200160405180910390a15060010162000348565b50505050565b60005b8251811015620004a25762000440838281518110620004275762000427620019ad565b6020026020010151600a62000ec460201b90919060201c565b1562000499578281815181106200045b576200045b620019ad565b60200260200101516001600160a01b03167fdf1b1bd32a69711488d71554706bb130b1fc63a5fa1a2cd85e8440f84065ba2360405160405180910390a25b60010162000404565b5060005b81518110156200054457620004e2828281518110620004c957620004c9620019ad565b6020026020010151600a62000edb60201b90919060201c565b156200053b57818181518110620004fd57620004fd620019ad565b60200260200101516001600160a01b03167f1795838dc8ab2ffc5f431a1729a6afa0b587f982f7b2be0b9d7187a1ef547f9160405160405180910390a25b600101620004a6565b505050565b60005b8151811015620006165760008282815181106200056d576200056d620019ad565b6020908102919091018101518051818301516001600160a01b0380831660008181526006875260409081902084518154868a018051929096166001600160a81b03199091168117600160a01b60ff9384160217909255825191825293519093169683019690965293955091939092917f08a5f7f5bb38a81d8e43aca13ecd76431dbf8816ae4699affff7b00b2fc1c464910160405180910390a25050508060010190506200054c565b5050565b60005b8151811015620006165760008282815181106200063e576200063e620019ad565b6020026020010151905060008383815181106200065f576200065f620019ad565b6020026020010151600001519050600082602001519050816001600160401b03166000148062000698575061018081015163ffffffff16155b80620006ba57506102008101516001600160e01b031916630a04b54b60e21b14155b80620006d75750602063ffffffff1681610160015163ffffffff16105b80620006f75750806060015163ffffffff1681610180015163ffffffff16115b15620007225760405163c35aa79d60e01b81526001600160401b038316600482015260240162000083565b6001600160401b038216600090815260086020526040812060010154600160a81b900460e01b6001600160e01b0319169003620007a257816001600160401b03167fa937382a486d993de71c220bc8b559242deb4e286a353fa732330b4aa7d1357782604051620007949190620019c3565b60405180910390a2620007e6565b816001600160401b03167fa7b607fc10d28a1caf39ab7d27f4c94945db708a576d572781a455c5894fad9382604051620007dd9190620019c3565b60405180910390a25b8060086000846001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548161ffff021916908361ffff16021790555060408201518160000160036101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160076101000a81548163ffffffff021916908363ffffffff160217905550608082015181600001600b6101000a81548163ffffffff021916908363ffffffff16021790555060a082015181600001600f6101000a81548161ffff021916908361ffff16021790555060c08201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160000160156101000a81548161ffff021916908361ffff1602179055506101008201518160000160176101000a81548161ffff021916908361ffff1602179055506101208201518160000160196101000a81548161ffff021916908361ffff16021790555061014082015181600001601b6101000a81548163ffffffff021916908363ffffffff1602179055506101608201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055506101808201518160010160046101000a81548163ffffffff021916908363ffffffff1602179055506101a08201518160010160086101000a8154816001600160401b0302191690836001600160401b031602179055506101c08201518160010160106101000a81548163ffffffff021916908363ffffffff1602179055506101e08201518160010160146101000a81548160ff0219169083151502179055506102008201518160010160156101000a81548163ffffffff021916908360e01c02179055509050505050508060010190506200061d565b60005b81518110156200061657600082828151811062000ac35762000ac3620019ad565b6020026020010151600001519050600083838151811062000ae85762000ae8620019ad565b6020908102919091018101518101516001600160a01b03841660008181526007845260409081902080546001600160401b0319166001600160401b0385169081179091559051908152919350917fbb77da6f7210cdd16904228a9360133d1d7dfff99b1bc75f128da5b53e28f97d910160405180910390a2505060010162000aa2565b60005b825181101562000dde57600083828151811062000b8f5762000b8f620019ad565b6020026020010151905060008160000151905060005b82602001515181101562000dcf5760008360200151828151811062000bce5762000bce620019ad565b602002602001015160200151905060008460200151838151811062000bf75762000bf7620019ad565b6020026020010151600001519050602063ffffffff16826080015163ffffffff16101562000c565760808201516040516312766e0160e11b81526001600160a01b038316600482015263ffffffff909116602482015260440162000083565b6001600160401b03841660008181526009602090815260408083206001600160a01b0386168085529083529281902086518154938801518389015160608a015160808b015160a08c01511515600160901b0260ff60901b1963ffffffff928316600160701b021664ffffffffff60701b199383166a01000000000000000000000263ffffffff60501b1961ffff90961668010000000000000000029590951665ffffffffffff60401b19968416640100000000026001600160401b0319909b16939097169290921798909817939093169390931717919091161792909217909155519091907f94967ae9ea7729ad4f54021c1981765d2b1d954f7c92fbec340aa0a54f46b8b59062000dbc908690600060c08201905063ffffffff80845116835280602085015116602084015261ffff60408501511660408401528060608501511660608401528060808501511660808401525060a0830151151560a083015292915050565b60405180910390a3505060010162000ba5565b50505080600101905062000b6e565b5060005b81518110156200054457600082828151811062000e035762000e03620019ad565b6020026020010151600001519050600083838151811062000e285762000e28620019ad565b6020908102919091018101518101516001600160401b03841660008181526009845260408082206001600160a01b038516808452955280822080546001600160981b03191690555192945090917f4de5b1bcbca6018c11303a2c3f4a4b4f22a1c741d8c4ba430d246ac06c5ddf8b9190a3505060010162000de2565b600062000ebb836001600160a01b03841662000ef2565b90505b92915050565b600062000ebb836001600160a01b03841662000ff6565b600062000ebb836001600160a01b03841662001048565b6000818152600183016020526040812054801562000feb57600062000f1960018362001b14565b855490915060009062000f2f9060019062001b14565b905081811462000f9b57600086600001828154811062000f535762000f53620019ad565b906000526020600020015490508087600001848154811062000f795762000f79620019ad565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062000faf5762000faf62001b36565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000ebe565b600091505062000ebe565b60008181526001830160205260408120546200103f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000ebe565b50600062000ebe565b6000818152600183016020526040812054801562000feb5760006200106f60018362001b14565b8554909150600090620010859060019062001b14565b905080821462000f9b57600086600001828154811062000f535762000f53620019ad565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620010e457620010e4620010a9565b60405290565b60405160c081016001600160401b0381118282101715620010e457620010e4620010a9565b60405161022081016001600160401b0381118282101715620010e457620010e4620010a9565b604051601f8201601f191681016001600160401b0381118282101715620011605762001160620010a9565b604052919050565b80516001600160a01b03811681146200118057600080fd5b919050565b805163ffffffff811681146200118057600080fd5b600060608284031215620011ad57600080fd5b604051606081016001600160401b0381118282101715620011d257620011d2620010a9565b604052825190915081906001600160601b0381168114620011f257600080fd5b8152620012026020840162001168565b6020820152620012156040840162001185565b60408201525092915050565b60006001600160401b038211156200123d576200123d620010a9565b5060051b60200190565b600082601f8301126200125957600080fd5b81516020620012726200126c8362001221565b62001135565b8083825260208201915060208460051b8701019350868411156200129557600080fd5b602086015b84811015620012bc57620012ae8162001168565b83529183019183016200129a565b509695505050505050565b600082601f830112620012d957600080fd5b81516020620012ec6200126c8362001221565b828152606092830285018201928282019190878511156200130c57600080fd5b8387015b858110156200139f57808903828112156200132b5760008081fd5b62001335620010bf565b620013408362001168565b8152604080601f1984011215620013575760008081fd5b62001361620010bf565b92506200137088850162001168565b835283015160ff81168114620013865760008081fd5b8288015280870191909152845292840192810162001310565b5090979650505050505050565b80516001600160401b03811681146200118057600080fd5b805161ffff811681146200118057600080fd5b805180151581146200118057600080fd5b600082601f830112620013fa57600080fd5b815160206200140d6200126c8362001221565b82815260059290921b840181019181810190868411156200142d57600080fd5b8286015b84811015620012bc5780516001600160401b03808211156200145257600080fd5b908801906040601f19838c0381018213156200146d57600080fd5b62001477620010bf565b62001484898601620013ac565b815282850151848111156200149857600080fd5b8086019550508c603f860112620014ae57600080fd5b888501519350620014c36200126c8562001221565b84815260e09094028501830193898101908e861115620014e257600080fd5b958401955b85871015620015bb57868f0360e08112156200150257600080fd5b6200150c620010bf565b620015178962001168565b815260c086830112156200152a57600080fd5b62001534620010ea565b9150620015438d8a0162001185565b825262001552878a0162001185565b8d8301526200156460608a01620013c4565b878301526200157660808a0162001185565b60608301526200158960a08a0162001185565b60808301526200159c60c08a01620013d7565b60a0830152808d0191909152825260e09690960195908a0190620014e7565b828b01525087525050509284019250830162001431565b600082601f830112620015e457600080fd5b81516020620015f76200126c8362001221565b82815260069290921b840181019181810190868411156200161757600080fd5b8286015b84811015620012bc5760408189031215620016365760008081fd5b62001640620010bf565b6200164b8262001168565b81526200165a858301620013ac565b818601528352918301916040016200161b565b80516001600160e01b0319811681146200118057600080fd5b600082601f8301126200169857600080fd5b81516020620016ab6200126c8362001221565b8281526102409283028501820192828201919087851115620016cc57600080fd5b8387015b858110156200139f5780890382811215620016eb5760008081fd5b620016f5620010bf565b6200170083620013ac565b815261022080601f1984011215620017185760008081fd5b620017226200110f565b925062001731888501620013d7565b8352604062001742818601620013c4565b8985015260606200175581870162001185565b82860152608091506200176a82870162001185565b9085015260a06200177d86820162001185565b8286015260c0915062001792828701620013c4565b9085015260e0620017a586820162001185565b828601526101009150620017bb828701620013c4565b90850152610120620017cf868201620013c4565b828601526101409150620017e5828701620013c4565b90850152610160620017f986820162001185565b8286015261018091506200180f82870162001185565b908501526101a06200182386820162001185565b828601526101c0915062001839828701620013ac565b908501526101e06200184d86820162001185565b82860152610200915062001863828701620013d7565b90850152620018748583016200166d565b9084015250808701919091528452928401928101620016d0565b6000806000806000806000610120888a031215620018ab57600080fd5b620018b789896200119a565b60608901519097506001600160401b0380821115620018d557600080fd5b620018e38b838c0162001247565b975060808a0151915080821115620018fa57600080fd5b620019088b838c0162001247565b965060a08a01519150808211156200191f57600080fd5b6200192d8b838c01620012c7565b955060c08a01519150808211156200194457600080fd5b620019528b838c01620013e8565b945060e08a01519150808211156200196957600080fd5b620019778b838c01620015d2565b93506101008a01519150808211156200198f57600080fd5b506200199e8a828b0162001686565b91505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b81511515815261022081016020830151620019e4602084018261ffff169052565b506040830151620019fd604084018263ffffffff169052565b50606083015162001a16606084018263ffffffff169052565b50608083015162001a2f608084018263ffffffff169052565b5060a083015162001a4660a084018261ffff169052565b5060c083015162001a5f60c084018263ffffffff169052565b5060e083015162001a7660e084018261ffff169052565b506101008381015161ffff9081169184019190915261012080850151909116908301526101408084015163ffffffff9081169184019190915261016080850151821690840152610180808501518216908401526101a0808501516001600160401b0316908401526101c080850151909116908301526101e080840151151590830152610200928301516001600160e01b031916929091019190915290565b8181038181111562000ebe57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60805160a05160c051614e9c62001ba6600039600081816102d901528181611ad30152611b3c01526000818161029d0152818161104e01526110ae015260008181610269015281816110d701526111470152614e9c6000f3fe608060405234801561001057600080fd5b50600436106101b85760003560e01c80637afac322116100f9578063cc88924c11610097578063d8694ccd11610071578063d8694ccd14610a5c578063f2fde38b14610a6f578063f700042a14610a82578063ffdb4b3714610a9557600080fd5b8063cc88924c14610a2e578063cdc73d5114610a41578063d02641a014610a4957600080fd5b806391a2749a116100d357806391a2749a14610939578063a69c64c01461094c578063bf78e03f1461095f578063c4276bfc14610a0c57600080fd5b80637afac3221461078e57806382b49eb0146107a15780638da5cb5b1461091157600080fd5b8063407e108611610166578063514e8cff11610140578063514e8cff146104385780636def4ce7146104db578063770e2dc41461077357806379ba50971461078657600080fd5b8063407e1086146103c557806345ac924d146103d85780634ab35b0b146103f857600080fd5b8063181f5a7711610197578063181f5a77146103525780632451a6271461039b5780633937306f146103b057600080fd5b806241e5be146101bd578063061877e3146101e357806306285c691461023c575b600080fd5b6101d06101cb366004613889565b610add565b6040519081526020015b60405180910390f35b6102236101f13660046138c5565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205467ffffffffffffffff1690565b60405167ffffffffffffffff90911681526020016101da565b610306604080516060810182526000808252602082018190529181019190915260405180606001604052807f00000000000000000000000000000000000000000000000000000000000000006bffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff16815250905090565b6040805182516bffffffffffffffffffffffff16815260208084015173ffffffffffffffffffffffffffffffffffffffff16908201529181015163ffffffff16908201526060016101da565b61038e6040518060400160405280601781526020017f5072696365526567697374727920312e362e302d64657600000000000000000081525081565b6040516101da9190613944565b6103a3610b4b565b6040516101da9190613957565b6103c36103be3660046139b1565b610b5c565b005b6103c36103d3366004613b0d565b610e11565b6103eb6103e6366004613c6b565b610e25565b6040516101da9190613cad565b61040b6104063660046138c5565b610ef0565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016101da565b6104ce610446366004613d40565b60408051808201909152600080825260208201525067ffffffffffffffff166000908152600460209081526040918290208251808401909352547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811683527c0100000000000000000000000000000000000000000000000000000000900463ffffffff169082015290565b6040516101da9190613d5b565b6107666104e9366004613d40565b6040805161022081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101919091525067ffffffffffffffff908116600090815260086020908152604091829020825161022081018452815460ff8082161515835261ffff61010080840482169685019690965263ffffffff630100000084048116978501979097526701000000000000008304871660608501526b0100000000000000000000008304871660808501526f010000000000000000000000000000008304811660a0850152710100000000000000000000000000000000008304871660c08501527501000000000000000000000000000000000000000000808404821660e08087019190915277010000000000000000000000000000000000000000000000850483169786019790975279010000000000000000000000000000000000000000000000000084049091166101208501527b010000000000000000000000000000000000000000000000000000009092048616610140840152600190930154808616610160840152640100000000810486166101808401526801000000000000000081049096166101a083015270010000000000000000000000000000000086049094166101c082015274010000000000000000000000000000000000000000850490911615156101e08201527fffffffff0000000000000000000000000000000000000000000000000000000092909304901b1661020082015290565b6040516101da9190613d96565b6103c3610781366004613fd3565b610efb565b6103c3610f11565b6103c361079c3660046142ed565b611013565b6108b16107af366004614351565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091525067ffffffffffffffff91909116600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff94909416835292815290829020825160c081018452905463ffffffff8082168352640100000000820481169383019390935268010000000000000000810461ffff16938201939093526a01000000000000000000008304821660608201526e01000000000000000000000000000083049091166080820152720100000000000000000000000000000000000090910460ff16151560a082015290565b6040516101da9190600060c08201905063ffffffff80845116835280602085015116602084015261ffff60408501511660408401528060608501511660608401528060808501511660808401525060a0830151151560a083015292915050565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101da565b6103c361094736600461437b565b611025565b6103c361095a36600461440c565b611036565b6109d861096d3660046138c5565b6040805180820182526000808252602091820181905273ffffffffffffffffffffffffffffffffffffffff93841681526006825282902082518084019093525492831682527401000000000000000000000000000000000000000090920460ff169181019190915290565b60408051825173ffffffffffffffffffffffffffffffffffffffff16815260209283015160ff1692810192909252016101da565b610a1f610a1a3660046144d1565b611047565b6040516101da9392919061456c565b6103c3610a3c366004614596565b611245565b6103a361141b565b6104ce610a573660046138c5565b611427565b6101d0610a6a366004614631565b611523565b6103c3610a7d3660046138c5565b6119dd565b6103c3610a903660046146b6565b6119ee565b610aa8610aa33660046148d6565b6119ff565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9384168152929091166020830152016101da565b6000610ae882611b8a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610b0f85611b8a565b610b37907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168561492f565b610b419190614946565b90505b9392505050565b6060610b576002611c24565b905090565b610b64611c31565b6000610b708280614981565b9050905060005b81811015610cba576000610b8b8480614981565b83818110610b9b57610b9b6149e9565b905060400201803603810190610bb19190614a44565b604080518082018252602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff908116845263ffffffff42818116858701908152885173ffffffffffffffffffffffffffffffffffffffff9081166000908152600590975295889020965190519092167c010000000000000000000000000000000000000000000000000000000002919092161790935584519051935194955016927f52f50aa6d1a95a4595361ecf953d095f125d442e4673716dede699e049de148a92610ca99290917bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b60405180910390a250600101610b77565b506000610cca6020840184614981565b9050905060005b81811015610e0b576000610ce86020860186614981565b83818110610cf857610cf86149e9565b905060400201803603810190610d0e9190614a81565b604080518082018252602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff908116845263ffffffff42818116858701908152885167ffffffffffffffff9081166000908152600490975295889020965190519092167c010000000000000000000000000000000000000000000000000000000002919092161790935584519051935194955016927fdd84a3fa9ef9409f550d54d6affec7e9c480c878c6ab27b78912a03e1b371c6e92610dfa9290917bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b60405180910390a250600101610cd1565b50505050565b610e19611c76565b610e2281611cf7565b50565b60608160008167ffffffffffffffff811115610e4357610e436139ec565b604051908082528060200260200182016040528015610e8857816020015b6040805180820190915260008082526020820152815260200190600190039081610e615790505b50905060005b82811015610ee557610ec0868683818110610eab57610eab6149e9565b9050602002016020810190610a5791906138c5565b828281518110610ed257610ed26149e9565b6020908102919091010152600101610e8e565b509150505b92915050565b6000610eea82611b8a565b610f03611c76565b610f0d8282611df5565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064015b60405180910390fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b61101b611c76565b610f0d8282612207565b61102d611c76565b610e228161234e565b61103e611c76565b610e22816124da565b60008060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16036110a7578592506110d5565b6110d287877f0000000000000000000000000000000000000000000000000000000000000000610add565b92505b7f00000000000000000000000000000000000000000000000000000000000000006bffffffffffffffffffffffff16831115611174576040517f6a92a483000000000000000000000000000000000000000000000000000000008152600481018490526bffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610f8e565b67ffffffffffffffff8816600090815260086020526040812060010154640100000000900463ffffffff16906111ab8787846125c4565b9050806020015193508484611232836040805182516024820152602092830151151560448083019190915282518083039091018152606490910190915290810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f181dcf100000000000000000000000000000000000000000000000000000000017905290565b9450945094505050955095509592505050565b67ffffffffffffffff85166000908152600860205260408120600101547501000000000000000000000000000000000000000000900460e01b905b8481101561141257600084848381811061129c5761129c6149e9565b6112b292602060409092020190810191506138c5565b905060008787848181106112c8576112c86149e9565b90506020028101906112da9190614aa4565b6112e8906040810190614ae2565b91505060208111156113985767ffffffffffffffff8916600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020546e010000000000000000000000000000900463ffffffff16811115611398576040517f36f536ca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610f8e565b611408848989868181106113ae576113ae6149e9565b90506020028101906113c09190614aa4565b6113ce906020810190614ae2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061276d92505050565b5050600101611280565b50505050505050565b6060610b57600a611c24565b604080518082019091526000808252602082015273ffffffffffffffffffffffffffffffffffffffff8281166000908152600660209081526040918290208251808401909352549283168083527401000000000000000000000000000000000000000090930460ff16908201529061151a57505073ffffffffffffffffffffffffffffffffffffffff166000908152600560209081526040918290208251808401909352547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811683527c0100000000000000000000000000000000000000000000000000000000900463ffffffff169082015290565b610b44816127bf565b67ffffffffffffffff8083166000908152600860209081526040808320815161022081018352815460ff808216151580845261ffff61010080850482169886019890985263ffffffff630100000085048116978601979097526701000000000000008404871660608601526b0100000000000000000000008404871660808601526f010000000000000000000000000000008404811660a0860152710100000000000000000000000000000000008404871660c08601527501000000000000000000000000000000000000000000808504821660e08088019190915277010000000000000000000000000000000000000000000000860483169987019990995279010000000000000000000000000000000000000000000000000085049091166101208601527b010000000000000000000000000000000000000000000000000000009093048616610140850152600190940154808616610160850152640100000000810486166101808501526801000000000000000081049098166101a084015270010000000000000000000000000000000088049094166101c083015274010000000000000000000000000000000000000000870490931615156101e08201527fffffffff000000000000000000000000000000000000000000000000000000009290950490921b16610200840152909190611759576040517f99ac52f200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff85166004820152602401610f8e565b60006117686040850185614981565b91506117c490508261177d6020870187614ae2565b90508361178a8880614ae2565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a0292505050565b60006007816117d960808801606089016138c5565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160009081205467ffffffffffffffff169150806118286118226080890160608a016138c5565b896119ff565b909250905060008080861561186e57611862888c61184c60808e0160608f016138c5565b888e806040019061185d9190614981565b612aac565b9194509250905061188e565b6101c088015161188b9063ffffffff16662386f26fc1000061492f565b92505b61010088015160009061ffff16156118d2576118cf896dffffffffffffffffffffffffffff607088901c166118c660208f018f614ae2565b90508b86612d8a565b90505b6101a089015160009067ffffffffffffffff166118fb6118f560808f018f614ae2565b8d612e3a565b600001518563ffffffff168c60a0015161ffff168f806020019061191f9190614ae2565b61192a92915061492f565b8d6080015163ffffffff1661193f9190614b47565b6119499190614b47565b6119539190614b47565b61196d906dffffffffffffffffffffffffffff891661492f565b611977919061492f565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff871682826119ae67ffffffffffffffff8c168961492f565b6119b89190614b47565b6119c29190614b47565b6119cc9190614946565b9d9c50505050505050505050505050565b6119e5611c76565b610e2281612efb565b6119f6611c76565b610e2281612ff0565b67ffffffffffffffff811660009081526004602090815260408083208151808301909252547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811682527c0100000000000000000000000000000000000000000000000000000000900463ffffffff1691810182905282918203611ab7576040517f2e59db3a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff85166004820152602401610f8e565b6000816020015163ffffffff1642611acf9190614b5a565b90507f000000000000000000000000000000000000000000000000000000000000000063ffffffff16811115611b70576040517ff08bcb3e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8616600482015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016602482015260448101829052606401610f8e565b611b7986611b8a565b9151919350909150505b9250929050565b600080611b9683611427565b9050806020015163ffffffff1660001480611bce575080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16155b15611c1d576040517f06439c6b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610f8e565b5192915050565b60606000610b44836134de565b611c3c60023361353a565b611c74576040517fd86ad9cf000000000000000000000000000000000000000000000000000000008152336004820152602401610f8e565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314611c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610f8e565b60005b8151811015610f0d576000828281518110611d1757611d176149e9565b60209081029190910181015180518183015173ffffffffffffffffffffffffffffffffffffffff80831660008181526006875260409081902084518154868a018051929096167fffffffffffffffffffffff00000000000000000000000000000000000000000090911681177401000000000000000000000000000000000000000060ff9384160217909255825191825293519093169683019690965293955091939092917f08a5f7f5bb38a81d8e43aca13ecd76431dbf8816ae4699affff7b00b2fc1c464910160405180910390a2505050806001019050611cfa565b60005b825181101561211e576000838281518110611e1557611e156149e9565b6020026020010151905060008160000151905060005b82602001515181101561211057600083602001518281518110611e5057611e506149e9565b6020026020010151602001519050600084602001518381518110611e7657611e766149e9565b6020026020010151600001519050602063ffffffff16826080015163ffffffff161015611ef95760808201516040517f24ecdc0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015263ffffffff9091166024820152604401610f8e565b67ffffffffffffffff8416600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168085529083529281902086518154938801518389015160608a015160808b015160a08c015115157201000000000000000000000000000000000000027fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff63ffffffff9283166e01000000000000000000000000000002167fffffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffff9383166a0100000000000000000000027fffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffff61ffff9096166801000000000000000002959095167fffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffff968416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909b16939097169290921798909817939093169390931717919091161792909217909155519091907f94967ae9ea7729ad4f54021c1981765d2b1d954f7c92fbec340aa0a54f46b8b5906120fe908690600060c08201905063ffffffff80845116835280602085015116602084015261ffff60408501511660408401528060608501511660608401528060808501511660808401525060a0830151151560a083015292915050565b60405180910390a35050600101611e2b565b505050806001019050611df8565b5060005b815181101561220257600082828151811061213f5761213f6149e9565b60200260200101516000015190506000838381518110612161576121616149e9565b60209081029190910181015181015167ffffffffffffffff8416600081815260098452604080822073ffffffffffffffffffffffffffffffffffffffff8516808452955280822080547fffffffffffffffffffffffffff000000000000000000000000000000000000001690555192945090917f4de5b1bcbca6018c11303a2c3f4a4b4f22a1c741d8c4ba430d246ac06c5ddf8b9190a35050600101612122565b505050565b60005b82518110156122aa57612240838281518110612228576122286149e9565b6020026020010151600a61356990919063ffffffff16565b156122a257828181518110612257576122576149e9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167fdf1b1bd32a69711488d71554706bb130b1fc63a5fa1a2cd85e8440f84065ba2360405160405180910390a25b60010161220a565b5060005b8151811015612202576122e48282815181106122cc576122cc6149e9565b6020026020010151600a61358b90919063ffffffff16565b15612346578181815181106122fb576122fb6149e9565b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f1795838dc8ab2ffc5f431a1729a6afa0b587f982f7b2be0b9d7187a1ef547f9160405160405180910390a25b6001016122ae565b602081015160005b81518110156123e9576000828281518110612373576123736149e9565b602002602001015190506123918160026135ad90919063ffffffff16565b156123e05760405173ffffffffffffffffffffffffffffffffffffffff821681527fc3803387881faad271c47728894e3e36fac830ffc8602ca6fc07733cbda775809060200160405180910390a15b50600101612356565b50815160005b8151811015610e0b57600082828151811061240c5761240c6149e9565b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361247c576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612487600282613569565b5060405173ffffffffffffffffffffffffffffffffffffffff821681527feb1b9b92e50b7f88f9ff25d56765095ac6e91540eee214906f4036a908ffbdef9060200160405180910390a1506001016123ef565b60005b8151811015610f0d5760008282815181106124fa576124fa6149e9565b6020026020010151600001519050600083838151811061251c5761251c6149e9565b60209081029190910181015181015173ffffffffffffffffffffffffffffffffffffffff841660008181526007845260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff85169081179091559051908152919350917fbb77da6f7210cdd16904228a9360133d1d7dfff99b1bc75f128da5b53e28f97d910160405180910390a250506001016124dd565b6040805180820190915260008082526020820152600083900361260557506040805180820190915267ffffffffffffffff8216815260006020820152610b44565b60006126118486614b6d565b905060006126228560048189614bb3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050507fffffffff0000000000000000000000000000000000000000000000000000000082167fe7e230f000000000000000000000000000000000000000000000000000000000016126bf57808060200190518101906126b69190614bdd565b92505050610b44565b7f6859a837000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083160161273b576040518060400160405280828060200190518101906127279190614c09565b815260006020909101529250610b44915050565b6040517f5247fdce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fd7ed2ad4000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831601610f0d57612202816135cf565b604080518082019091526000808252602082015260008260000151905060008173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284d9190614c3c565b505050915050600081121561288e576040517f10cb51d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000819050600085602001518473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129099190614c8c565b6129139190614ca9565b905060248160ff1611156129485761292c602482614cc2565b61293790600a614dfb565b6129419083614946565b915061296b565b612953816024614cc2565b61295e90600a614dfb565b612968908361492f565b91505b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211156129c1576040517f10cb51d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080518082019091527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116815263ffffffff42166020820152949350505050565b836040015163ffffffff16831115612a5b5760408085015190517f8693378900000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101849052604401610f8e565b836020015161ffff16821115612a9d576040517f4c056b6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e0b8461020001518261276d565b6000808083815b81811015612d7c576000878783818110612acf57612acf6149e9565b905060400201803603810190612ae59190614e0a565b67ffffffffffffffff8c166000908152600960209081526040808320845173ffffffffffffffffffffffffffffffffffffffff168452825291829020825160c081018452905463ffffffff8082168352640100000000820481169383019390935268010000000000000000810461ffff16938201939093526a01000000000000000000008304821660608201526e01000000000000000000000000000083049091166080820152720100000000000000000000000000000000000090910460ff16151560a0820181905291925090612c0b576101208d0151612bd29061ffff16662386f26fc1000061492f565b612bdc9088614b47565b96508c610140015186612bef9190614e43565b95508c610160015185612c029190614e43565b94505050612d74565b604081015160009061ffff1615612cc45760008c73ffffffffffffffffffffffffffffffffffffffff16846000015173ffffffffffffffffffffffffffffffffffffffff1614612c67578351612c6090611b8a565b9050612c6a565b508a5b620186a0836040015161ffff16612cac8660200151847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661368290919063ffffffff16565b612cb6919061492f565b612cc09190614946565b9150505b6060820151612cd39088614e43565b9650816080015186612ce59190614e43565b8251909650600090612d049063ffffffff16662386f26fc1000061492f565b905080821015612d2357612d18818a614b47565b985050505050612d74565b6000836020015163ffffffff16662386f26fc10000612d42919061492f565b905080831115612d6257612d56818b614b47565b99505050505050612d74565b612d6c838b614b47565b995050505050505b600101612ab3565b505096509650969350505050565b60008063ffffffff8316612da06101408661492f565b612dac876101c0614b47565b612db69190614b47565b612dc09190614b47565b905060008760c0015163ffffffff168860e0015161ffff1683612de3919061492f565b612ded9190614b47565b61010089015190915061ffff16612e146dffffffffffffffffffffffffffff89168361492f565b612e1e919061492f565b612e2e90655af3107a400061492f565b98975050505050505050565b60408051808201909152600080825260208201526000612e66858585610180015163ffffffff166125c4565b9050826060015163ffffffff1681600001511115612eb0576040517f4c4fc93a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826101e001518015612ec457508060200151155b15610b41576040517fee433e9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821603612f7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610f8e565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60005b8151811015610f0d576000828281518110613010576130106149e9565b60200260200101519050600083838151811061302e5761302e6149e9565b60200260200101516000015190506000826020015190508167ffffffffffffffff1660001480613067575061018081015163ffffffff16155b806130b957506102008101517fffffffff00000000000000000000000000000000000000000000000000000000167f2812d52c0000000000000000000000000000000000000000000000000000000014155b806130d55750602063ffffffff1681610160015163ffffffff16105b806130f45750806060015163ffffffff1681610180015163ffffffff16115b15613137576040517fc35aa79d00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff83166004820152602401610f8e565b67ffffffffffffffff82166000908152600860205260408120600101547501000000000000000000000000000000000000000000900460e01b7fffffffff000000000000000000000000000000000000000000000000000000001690036131df578167ffffffffffffffff167fa937382a486d993de71c220bc8b559242deb4e286a353fa732330b4aa7d13577826040516131d29190613d96565b60405180910390a2613222565b8167ffffffffffffffff167fa7b607fc10d28a1caf39ab7d27f4c94945db708a576d572781a455c5894fad93826040516132199190613d96565b60405180910390a25b80600860008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548161ffff021916908361ffff16021790555060408201518160000160036101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160076101000a81548163ffffffff021916908363ffffffff160217905550608082015181600001600b6101000a81548163ffffffff021916908363ffffffff16021790555060a082015181600001600f6101000a81548161ffff021916908361ffff16021790555060c08201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160000160156101000a81548161ffff021916908361ffff1602179055506101008201518160000160176101000a81548161ffff021916908361ffff1602179055506101208201518160000160196101000a81548161ffff021916908361ffff16021790555061014082015181600001601b6101000a81548163ffffffff021916908363ffffffff1602179055506101608201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055506101808201518160010160046101000a81548163ffffffff021916908363ffffffff1602179055506101a08201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101c08201518160010160106101000a81548163ffffffff021916908363ffffffff1602179055506101e08201518160010160146101000a81548160ff0219169083151502179055506102008201518160010160156101000a81548163ffffffff021916908360e01c0217905550905050505050806001019050612ff3565b60608160000180548060200260200160405190810160405280929190818152602001828054801561352e57602002820191906000526020600020905b81548152602001906001019080831161351a575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610b44565b6000610b448373ffffffffffffffffffffffffffffffffffffffff84166136bf565b6000610b448373ffffffffffffffffffffffffffffffffffffffff841661370e565b6000610b448373ffffffffffffffffffffffffffffffffffffffff8416613808565b6000815160201461360e57816040517f8d666f60000000000000000000000000000000000000000000000000000000008152600401610f8e9190613944565b6000828060200190518101906136249190614c09565b905073ffffffffffffffffffffffffffffffffffffffff811180613649575061040081105b15610eea57826040517f8d666f60000000000000000000000000000000000000000000000000000000008152600401610f8e9190613944565b6000670de0b6b3a76400006136b5837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff861661492f565b610b449190614946565b600081815260018301602052604081205461370657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610eea565b506000610eea565b600081815260018301602052604081205480156137f7576000613732600183614b5a565b855490915060009061374690600190614b5a565b90508082146137ab576000866000018281548110613766576137666149e9565b9060005260206000200154905080876000018481548110613789576137896149e9565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806137bc576137bc614e60565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610eea565b6000915050610eea565b5092915050565b600081815260018301602052604081205480156137f757600061382c600183614b5a565b855490915060009061384090600190614b5a565b90508181146137ab576000866000018281548110613766576137666149e9565b803573ffffffffffffffffffffffffffffffffffffffff8116811461388457600080fd5b919050565b60008060006060848603121561389e57600080fd5b6138a784613860565b9250602084013591506138bc60408501613860565b90509250925092565b6000602082840312156138d757600080fd5b610b4482613860565b6000815180845260005b81811015613906576020818501810151868301820152016138ea565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610b4460208301846138e0565b6020808252825182820181905260009190848201906040850190845b818110156139a557835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101613973565b50909695505050505050565b6000602082840312156139c357600080fd5b813567ffffffffffffffff8111156139da57600080fd5b820160408185031215610b4457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613a3e57613a3e6139ec565b60405290565b60405160c0810167ffffffffffffffff81118282101715613a3e57613a3e6139ec565b604051610220810167ffffffffffffffff81118282101715613a3e57613a3e6139ec565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613ad257613ad26139ec565b604052919050565b600067ffffffffffffffff821115613af457613af46139ec565b5060051b60200190565b60ff81168114610e2257600080fd5b60006020808385031215613b2057600080fd5b823567ffffffffffffffff811115613b3757600080fd5b8301601f81018513613b4857600080fd5b8035613b5b613b5682613ada565b613a8b565b81815260609182028301840191848201919088841115613b7a57600080fd5b938501935b83851015613c1a5784890381811215613b985760008081fd5b613ba0613a1b565b613ba987613860565b81526040807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084011215613bdd5760008081fd5b613be5613a1b565b9250613bf2898901613860565b8352870135613c0081613afe565b828901528088019190915283529384019391850191613b7f565b50979650505050505050565b60008083601f840112613c3857600080fd5b50813567ffffffffffffffff811115613c5057600080fd5b6020830191508360208260051b8501011115611b8357600080fd5b60008060208385031215613c7e57600080fd5b823567ffffffffffffffff811115613c9557600080fd5b613ca185828601613c26565b90969095509350505050565b602080825282518282018190526000919060409081850190868401855b82811015613d1b57613d0b84835180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16825260209081015163ffffffff16910152565b9284019290850190600101613cca565b5091979650505050505050565b803567ffffffffffffffff8116811461388457600080fd5b600060208284031215613d5257600080fd5b610b4482613d28565b81517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815260208083015163ffffffff169082015260408101610eea565b81511515815261022081016020830151613db6602084018261ffff169052565b506040830151613dce604084018263ffffffff169052565b506060830151613de6606084018263ffffffff169052565b506080830151613dfe608084018263ffffffff169052565b5060a0830151613e1460a084018261ffff169052565b5060c0830151613e2c60c084018263ffffffff169052565b5060e0830151613e4260e084018261ffff169052565b506101008381015161ffff9081169184019190915261012080850151909116908301526101408084015163ffffffff9081169184019190915261016080850151821690840152610180808501518216908401526101a08085015167ffffffffffffffff16908401526101c080850151909116908301526101e080840151151590830152610200808401517fffffffff000000000000000000000000000000000000000000000000000000008116828501525b505092915050565b803563ffffffff8116811461388457600080fd5b803561ffff8116811461388457600080fd5b8015158114610e2257600080fd5b803561388481613f22565b600082601f830112613f4c57600080fd5b81356020613f5c613b5683613ada565b82815260069290921b84018101918181019086841115613f7b57600080fd5b8286015b84811015613fc85760408189031215613f985760008081fd5b613fa0613a1b565b613fa982613d28565b8152613fb6858301613860565b81860152835291830191604001613f7f565b509695505050505050565b60008060408385031215613fe657600080fd5b67ffffffffffffffff83351115613ffc57600080fd5b83601f84358501011261400e57600080fd5b61401e613b568435850135613ada565b8335840180358083526020808401939260059290921b9091010186101561404457600080fd5b602085358601015b85358601803560051b016020018110156142515767ffffffffffffffff8135111561407657600080fd5b8035863587010160407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828a030112156140af57600080fd5b6140b7613a1b565b6140c360208301613d28565b815267ffffffffffffffff604083013511156140de57600080fd5b88603f6040840135840101126140f357600080fd5b614109613b566020604085013585010135613ada565b6020604084810135850182810135808552928401939260e00201018b101561413057600080fd5b6040808501358501015b6040858101358601602081013560e00201018110156142325760e0818d03121561416357600080fd5b61416b613a1b565b61417482613860565b815260c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838f030112156141a857600080fd5b6141b0613a44565b6141bc60208401613efc565b81526141ca60408401613efc565b60208201526141db60608401613f10565b60408201526141ec60808401613efc565b60608201526141fd60a08401613efc565b608082015261420f60c0840135613f22565b60c083013560a0820152602082810191909152908452929092019160e00161413a565b508060208401525050808552505060208301925060208101905061404c565b5092505067ffffffffffffffff6020840135111561426e57600080fd5b61427e8460208501358501613f3b565b90509250929050565b600082601f83011261429857600080fd5b813560206142a8613b5683613ada565b8083825260208201915060208460051b8701019350868411156142ca57600080fd5b602086015b84811015613fc8576142e081613860565b83529183019183016142cf565b6000806040838503121561430057600080fd5b823567ffffffffffffffff8082111561431857600080fd5b61432486838701614287565b9350602085013591508082111561433a57600080fd5b5061434785828601614287565b9150509250929050565b6000806040838503121561436457600080fd5b61436d83613d28565b915061427e60208401613860565b60006020828403121561438d57600080fd5b813567ffffffffffffffff808211156143a557600080fd5b90830190604082860312156143b957600080fd5b6143c1613a1b565b8235828111156143d057600080fd5b6143dc87828601614287565b8252506020830135828111156143f157600080fd5b6143fd87828601614287565b60208301525095945050505050565b6000602080838503121561441f57600080fd5b823567ffffffffffffffff81111561443657600080fd5b8301601f8101851361444757600080fd5b8035614455613b5682613ada565b81815260069190911b8201830190838101908783111561447457600080fd5b928401925b828410156144c657604084890312156144925760008081fd5b61449a613a1b565b6144a385613860565b81526144b0868601613d28565b8187015282526040939093019290840190614479565b979650505050505050565b6000806000806000608086880312156144e957600080fd5b6144f286613d28565b945061450060208701613860565b935060408601359250606086013567ffffffffffffffff8082111561452457600080fd5b818801915088601f83011261453857600080fd5b81358181111561454757600080fd5b89602082850101111561455957600080fd5b9699959850939650602001949392505050565b838152821515602082015260606040820152600061458d60608301846138e0565b95945050505050565b6000806000806000606086880312156145ae57600080fd5b6145b786613d28565b9450602086013567ffffffffffffffff808211156145d457600080fd5b6145e089838a01613c26565b909650945060408801359150808211156145f957600080fd5b818801915088601f83011261460d57600080fd5b81358181111561461c57600080fd5b8960208260061b850101111561455957600080fd5b6000806040838503121561464457600080fd5b61464d83613d28565b9150602083013567ffffffffffffffff81111561466957600080fd5b830160a0818603121561467b57600080fd5b809150509250929050565b80357fffffffff000000000000000000000000000000000000000000000000000000008116811461388457600080fd5b600060208083850312156146c957600080fd5b823567ffffffffffffffff8111156146e057600080fd5b8301601f810185136146f157600080fd5b80356146ff613b5682613ada565b818152610240918202830184019184820191908884111561471f57600080fd5b938501935b83851015613c1a578489038181121561473d5760008081fd5b614745613a1b565b61474e87613d28565b8152610220807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840112156147835760008081fd5b61478b613a67565b9250614798898901613f30565b835260406147a7818a01613f10565b8a85015260606147b8818b01613efc565b82860152608091506147cb828b01613efc565b9085015260a06147dc8a8201613efc565b8286015260c091506147ef828b01613f10565b9085015260e06148008a8201613efc565b828601526101009150614814828b01613f10565b908501526101206148268a8201613f10565b82860152610140915061483a828b01613f10565b9085015261016061484c8a8201613efc565b828601526101809150614860828b01613efc565b908501526101a06148728a8201613efc565b828601526101c09150614886828b01613d28565b908501526101e06148988a8201613efc565b8286015261020091506148ac828b01613f30565b908501526148bb898301614686565b90840152508088019190915283529384019391850191614724565b600080604083850312156148e957600080fd5b6148f283613860565b915061427e60208401613d28565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610eea57610eea614900565b60008261497c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126149b657600080fd5b83018035915067ffffffffffffffff8211156149d157600080fd5b6020019150600681901b3603821315611b8357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461388457600080fd5b600060408284031215614a5657600080fd5b614a5e613a1b565b614a6783613860565b8152614a7560208401614a18565b60208201529392505050565b600060408284031215614a9357600080fd5b614a9b613a1b565b614a6783613d28565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112614ad857600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b1757600080fd5b83018035915067ffffffffffffffff821115614b3257600080fd5b602001915036819003821315611b8357600080fd5b80820180821115610eea57610eea614900565b81810381811115610eea57610eea614900565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015613ef45760049490940360031b84901b1690921692915050565b60008085851115614bc357600080fd5b83861115614bd057600080fd5b5050820193919092039150565b600060408284031215614bef57600080fd5b614bf7613a1b565b825181526020830151614a7581613f22565b600060208284031215614c1b57600080fd5b5051919050565b805169ffffffffffffffffffff8116811461388457600080fd5b600080600080600060a08688031215614c5457600080fd5b614c5d86614c22565b9450602086015193506040860151925060608601519150614c8060808701614c22565b90509295509295909350565b600060208284031215614c9e57600080fd5b8151610b4481613afe565b60ff8181168382160190811115610eea57610eea614900565b60ff8281168282160390811115610eea57610eea614900565b600181815b80851115614d3457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614d1a57614d1a614900565b80851615614d2757918102915b93841c9390800290614ce0565b509250929050565b600082614d4b57506001610eea565b81614d5857506000610eea565b8160018114614d6e5760028114614d7857614d94565b6001915050610eea565b60ff841115614d8957614d89614900565b50506001821b610eea565b5060208310610133831016604e8410600b8410161715614db7575081810a610eea565b614dc18383614cdb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614df357614df3614900565b029392505050565b6000610b4460ff841683614d3c565b600060408284031215614e1c57600080fd5b614e24613a1b565b614e2d83613860565b8152602083013560208201528091505092915050565b63ffffffff81811683821601908082111561380157613801614900565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000818000a", +} + +var PriceRegistryABI = PriceRegistryMetaData.ABI + +var PriceRegistryBin = PriceRegistryMetaData.Bin + +func DeployPriceRegistry(auth *bind.TransactOpts, backend bind.ContractBackend, staticConfig PriceRegistryStaticConfig, priceUpdaters []common.Address, feeTokens []common.Address, tokenPriceFeeds []PriceRegistryTokenPriceFeedUpdate, tokenTransferFeeConfigArgs []PriceRegistryTokenTransferFeeConfigArgs, premiumMultiplierWeiPerEthArgs []PriceRegistryPremiumMultiplierWeiPerEthArgs, destChainConfigArgs []PriceRegistryDestChainConfigArgs) (common.Address, *generated.Transaction, *PriceRegistry, error) { + parsed, err := PriceRegistryMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(PriceRegistryZKBin), backend, staticConfig, priceUpdaters, feeTokens, tokenPriceFeeds, tokenTransferFeeConfigArgs, premiumMultiplierWeiPerEthArgs, destChainConfigArgs) + contractReturn := &PriceRegistry{address: address, abi: *parsed, PriceRegistryCaller: PriceRegistryCaller{contract: contractBind}, PriceRegistryTransactor: PriceRegistryTransactor{contract: contractBind}, PriceRegistryFilterer: PriceRegistryFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(PriceRegistryBin), backend, staticConfig, priceUpdaters, feeTokens, tokenPriceFeeds, tokenTransferFeeConfigArgs, premiumMultiplierWeiPerEthArgs, destChainConfigArgs) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &PriceRegistry{address: address, abi: *parsed, PriceRegistryCaller: PriceRegistryCaller{contract: contract}, PriceRegistryTransactor: PriceRegistryTransactor{contract: contract}, PriceRegistryFilterer: PriceRegistryFilterer{contract: contract}}, nil +} + +type PriceRegistry struct { + address common.Address + abi abi.ABI + PriceRegistryCaller + PriceRegistryTransactor + PriceRegistryFilterer +} + +type PriceRegistryCaller struct { + contract *bind.BoundContract +} + +type PriceRegistryTransactor struct { + contract *bind.BoundContract +} + +type PriceRegistryFilterer struct { + contract *bind.BoundContract +} + +type PriceRegistrySession struct { + Contract *PriceRegistry + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type PriceRegistryCallerSession struct { + Contract *PriceRegistryCaller + CallOpts bind.CallOpts +} + +type PriceRegistryTransactorSession struct { + Contract *PriceRegistryTransactor + TransactOpts bind.TransactOpts +} + +type PriceRegistryRaw struct { + Contract *PriceRegistry +} + +type PriceRegistryCallerRaw struct { + Contract *PriceRegistryCaller +} + +type PriceRegistryTransactorRaw struct { + Contract *PriceRegistryTransactor +} + +func NewPriceRegistry(address common.Address, backend bind.ContractBackend) (*PriceRegistry, error) { + abi, err := abi.JSON(strings.NewReader(PriceRegistryABI)) + if err != nil { + return nil, err + } + contract, err := bindPriceRegistry(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &PriceRegistry{address: address, abi: abi, PriceRegistryCaller: PriceRegistryCaller{contract: contract}, PriceRegistryTransactor: PriceRegistryTransactor{contract: contract}, PriceRegistryFilterer: PriceRegistryFilterer{contract: contract}}, nil +} + +func NewPriceRegistryCaller(address common.Address, caller bind.ContractCaller) (*PriceRegistryCaller, error) { + contract, err := bindPriceRegistry(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PriceRegistryCaller{contract: contract}, nil +} + +func NewPriceRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*PriceRegistryTransactor, error) { + contract, err := bindPriceRegistry(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PriceRegistryTransactor{contract: contract}, nil +} + +func NewPriceRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*PriceRegistryFilterer, error) { + contract, err := bindPriceRegistry(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PriceRegistryFilterer{contract: contract}, nil +} + +func bindPriceRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := PriceRegistryMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_PriceRegistry *PriceRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PriceRegistry.Contract.PriceRegistryCaller.contract.Call(opts, result, method, params...) +} + +func (_PriceRegistry *PriceRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PriceRegistry.Contract.PriceRegistryTransactor.contract.Transfer(opts) +} + +func (_PriceRegistry *PriceRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PriceRegistry.Contract.PriceRegistryTransactor.contract.Transact(opts, method, params...) +} + +func (_PriceRegistry *PriceRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PriceRegistry.Contract.contract.Call(opts, result, method, params...) +} + +func (_PriceRegistry *PriceRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PriceRegistry.Contract.contract.Transfer(opts) +} + +func (_PriceRegistry *PriceRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PriceRegistry.Contract.contract.Transact(opts, method, params...) +} + +func (_PriceRegistry *PriceRegistryCaller) ConvertTokenAmount(opts *bind.CallOpts, fromToken common.Address, fromTokenAmount *big.Int, toToken common.Address) (*big.Int, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "convertTokenAmount", fromToken, fromTokenAmount, toToken) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) ConvertTokenAmount(fromToken common.Address, fromTokenAmount *big.Int, toToken common.Address) (*big.Int, error) { + return _PriceRegistry.Contract.ConvertTokenAmount(&_PriceRegistry.CallOpts, fromToken, fromTokenAmount, toToken) +} + +func (_PriceRegistry *PriceRegistryCallerSession) ConvertTokenAmount(fromToken common.Address, fromTokenAmount *big.Int, toToken common.Address) (*big.Int, error) { + return _PriceRegistry.Contract.ConvertTokenAmount(&_PriceRegistry.CallOpts, fromToken, fromTokenAmount, toToken) +} + +func (_PriceRegistry *PriceRegistryCaller) GetAllAuthorizedCallers(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getAllAuthorizedCallers") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetAllAuthorizedCallers() ([]common.Address, error) { + return _PriceRegistry.Contract.GetAllAuthorizedCallers(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetAllAuthorizedCallers() ([]common.Address, error) { + return _PriceRegistry.Contract.GetAllAuthorizedCallers(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCaller) GetDestChainConfig(opts *bind.CallOpts, destChainSelector uint64) (PriceRegistryDestChainConfig, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getDestChainConfig", destChainSelector) + + if err != nil { + return *new(PriceRegistryDestChainConfig), err + } + + out0 := *abi.ConvertType(out[0], new(PriceRegistryDestChainConfig)).(*PriceRegistryDestChainConfig) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetDestChainConfig(destChainSelector uint64) (PriceRegistryDestChainConfig, error) { + return _PriceRegistry.Contract.GetDestChainConfig(&_PriceRegistry.CallOpts, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetDestChainConfig(destChainSelector uint64) (PriceRegistryDestChainConfig, error) { + return _PriceRegistry.Contract.GetDestChainConfig(&_PriceRegistry.CallOpts, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCaller) GetDestinationChainGasPrice(opts *bind.CallOpts, destChainSelector uint64) (InternalTimestampedPackedUint224, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getDestinationChainGasPrice", destChainSelector) + + if err != nil { + return *new(InternalTimestampedPackedUint224), err + } + + out0 := *abi.ConvertType(out[0], new(InternalTimestampedPackedUint224)).(*InternalTimestampedPackedUint224) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetDestinationChainGasPrice(destChainSelector uint64) (InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetDestinationChainGasPrice(&_PriceRegistry.CallOpts, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetDestinationChainGasPrice(destChainSelector uint64) (InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetDestinationChainGasPrice(&_PriceRegistry.CallOpts, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCaller) GetFeeTokens(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getFeeTokens") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetFeeTokens() ([]common.Address, error) { + return _PriceRegistry.Contract.GetFeeTokens(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetFeeTokens() ([]common.Address, error) { + return _PriceRegistry.Contract.GetFeeTokens(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCaller) GetPremiumMultiplierWeiPerEth(opts *bind.CallOpts, token common.Address) (uint64, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getPremiumMultiplierWeiPerEth", token) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetPremiumMultiplierWeiPerEth(token common.Address) (uint64, error) { + return _PriceRegistry.Contract.GetPremiumMultiplierWeiPerEth(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetPremiumMultiplierWeiPerEth(token common.Address) (uint64, error) { + return _PriceRegistry.Contract.GetPremiumMultiplierWeiPerEth(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCaller) GetStaticConfig(opts *bind.CallOpts) (PriceRegistryStaticConfig, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getStaticConfig") + + if err != nil { + return *new(PriceRegistryStaticConfig), err + } + + out0 := *abi.ConvertType(out[0], new(PriceRegistryStaticConfig)).(*PriceRegistryStaticConfig) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetStaticConfig() (PriceRegistryStaticConfig, error) { + return _PriceRegistry.Contract.GetStaticConfig(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetStaticConfig() (PriceRegistryStaticConfig, error) { + return _PriceRegistry.Contract.GetStaticConfig(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCaller) GetTokenAndGasPrices(opts *bind.CallOpts, token common.Address, destChainSelector uint64) (GetTokenAndGasPrices, + + error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getTokenAndGasPrices", token, destChainSelector) + + outstruct := new(GetTokenAndGasPrices) + if err != nil { + return *outstruct, err + } + + outstruct.TokenPrice = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.GasPriceValue = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return *outstruct, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetTokenAndGasPrices(token common.Address, destChainSelector uint64) (GetTokenAndGasPrices, + + error) { + return _PriceRegistry.Contract.GetTokenAndGasPrices(&_PriceRegistry.CallOpts, token, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetTokenAndGasPrices(token common.Address, destChainSelector uint64) (GetTokenAndGasPrices, + + error) { + return _PriceRegistry.Contract.GetTokenAndGasPrices(&_PriceRegistry.CallOpts, token, destChainSelector) +} + +func (_PriceRegistry *PriceRegistryCaller) GetTokenPrice(opts *bind.CallOpts, token common.Address) (InternalTimestampedPackedUint224, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getTokenPrice", token) + + if err != nil { + return *new(InternalTimestampedPackedUint224), err + } + + out0 := *abi.ConvertType(out[0], new(InternalTimestampedPackedUint224)).(*InternalTimestampedPackedUint224) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetTokenPrice(token common.Address) (InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetTokenPrice(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetTokenPrice(token common.Address) (InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetTokenPrice(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCaller) GetTokenPriceFeedConfig(opts *bind.CallOpts, token common.Address) (IPriceRegistryTokenPriceFeedConfig, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getTokenPriceFeedConfig", token) + + if err != nil { + return *new(IPriceRegistryTokenPriceFeedConfig), err + } + + out0 := *abi.ConvertType(out[0], new(IPriceRegistryTokenPriceFeedConfig)).(*IPriceRegistryTokenPriceFeedConfig) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetTokenPriceFeedConfig(token common.Address) (IPriceRegistryTokenPriceFeedConfig, error) { + return _PriceRegistry.Contract.GetTokenPriceFeedConfig(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetTokenPriceFeedConfig(token common.Address) (IPriceRegistryTokenPriceFeedConfig, error) { + return _PriceRegistry.Contract.GetTokenPriceFeedConfig(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCaller) GetTokenPrices(opts *bind.CallOpts, tokens []common.Address) ([]InternalTimestampedPackedUint224, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getTokenPrices", tokens) + + if err != nil { + return *new([]InternalTimestampedPackedUint224), err + } + + out0 := *abi.ConvertType(out[0], new([]InternalTimestampedPackedUint224)).(*[]InternalTimestampedPackedUint224) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetTokenPrices(tokens []common.Address) ([]InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetTokenPrices(&_PriceRegistry.CallOpts, tokens) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetTokenPrices(tokens []common.Address) ([]InternalTimestampedPackedUint224, error) { + return _PriceRegistry.Contract.GetTokenPrices(&_PriceRegistry.CallOpts, tokens) +} + +func (_PriceRegistry *PriceRegistryCaller) GetTokenTransferFeeConfig(opts *bind.CallOpts, destChainSelector uint64, token common.Address) (PriceRegistryTokenTransferFeeConfig, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getTokenTransferFeeConfig", destChainSelector, token) + + if err != nil { + return *new(PriceRegistryTokenTransferFeeConfig), err + } + + out0 := *abi.ConvertType(out[0], new(PriceRegistryTokenTransferFeeConfig)).(*PriceRegistryTokenTransferFeeConfig) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetTokenTransferFeeConfig(destChainSelector uint64, token common.Address) (PriceRegistryTokenTransferFeeConfig, error) { + return _PriceRegistry.Contract.GetTokenTransferFeeConfig(&_PriceRegistry.CallOpts, destChainSelector, token) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetTokenTransferFeeConfig(destChainSelector uint64, token common.Address) (PriceRegistryTokenTransferFeeConfig, error) { + return _PriceRegistry.Contract.GetTokenTransferFeeConfig(&_PriceRegistry.CallOpts, destChainSelector, token) +} + +func (_PriceRegistry *PriceRegistryCaller) GetValidatedFee(opts *bind.CallOpts, destChainSelector uint64, message ClientEVM2AnyMessage) (*big.Int, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getValidatedFee", destChainSelector, message) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetValidatedFee(destChainSelector uint64, message ClientEVM2AnyMessage) (*big.Int, error) { + return _PriceRegistry.Contract.GetValidatedFee(&_PriceRegistry.CallOpts, destChainSelector, message) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetValidatedFee(destChainSelector uint64, message ClientEVM2AnyMessage) (*big.Int, error) { + return _PriceRegistry.Contract.GetValidatedFee(&_PriceRegistry.CallOpts, destChainSelector, message) +} + +func (_PriceRegistry *PriceRegistryCaller) GetValidatedTokenPrice(opts *bind.CallOpts, token common.Address) (*big.Int, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "getValidatedTokenPrice", token) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) GetValidatedTokenPrice(token common.Address) (*big.Int, error) { + return _PriceRegistry.Contract.GetValidatedTokenPrice(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCallerSession) GetValidatedTokenPrice(token common.Address) (*big.Int, error) { + return _PriceRegistry.Contract.GetValidatedTokenPrice(&_PriceRegistry.CallOpts, token) +} + +func (_PriceRegistry *PriceRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) Owner() (common.Address, error) { + return _PriceRegistry.Contract.Owner(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) Owner() (common.Address, error) { + return _PriceRegistry.Contract.Owner(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCaller) ProcessMessageArgs(opts *bind.CallOpts, destChainSelector uint64, feeToken common.Address, feeTokenAmount *big.Int, extraArgs []byte) (ProcessMessageArgs, + + error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "processMessageArgs", destChainSelector, feeToken, feeTokenAmount, extraArgs) + + outstruct := new(ProcessMessageArgs) + if err != nil { + return *outstruct, err + } + + outstruct.MsgFeeJuels = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.IsOutOfOrderExecution = *abi.ConvertType(out[1], new(bool)).(*bool) + outstruct.ConvertedExtraArgs = *abi.ConvertType(out[2], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +func (_PriceRegistry *PriceRegistrySession) ProcessMessageArgs(destChainSelector uint64, feeToken common.Address, feeTokenAmount *big.Int, extraArgs []byte) (ProcessMessageArgs, + + error) { + return _PriceRegistry.Contract.ProcessMessageArgs(&_PriceRegistry.CallOpts, destChainSelector, feeToken, feeTokenAmount, extraArgs) +} + +func (_PriceRegistry *PriceRegistryCallerSession) ProcessMessageArgs(destChainSelector uint64, feeToken common.Address, feeTokenAmount *big.Int, extraArgs []byte) (ProcessMessageArgs, + + error) { + return _PriceRegistry.Contract.ProcessMessageArgs(&_PriceRegistry.CallOpts, destChainSelector, feeToken, feeTokenAmount, extraArgs) +} + +func (_PriceRegistry *PriceRegistryCaller) TypeAndVersion(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "typeAndVersion") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_PriceRegistry *PriceRegistrySession) TypeAndVersion() (string, error) { + return _PriceRegistry.Contract.TypeAndVersion(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) TypeAndVersion() (string, error) { + return _PriceRegistry.Contract.TypeAndVersion(&_PriceRegistry.CallOpts) +} + +func (_PriceRegistry *PriceRegistryCaller) ValidatePoolReturnData(opts *bind.CallOpts, destChainSelector uint64, rampTokenAmounts []InternalRampTokenAmount, sourceTokenAmounts []ClientEVMTokenAmount) error { + var out []interface{} + err := _PriceRegistry.contract.Call(opts, &out, "validatePoolReturnData", destChainSelector, rampTokenAmounts, sourceTokenAmounts) + + if err != nil { + return err + } + + return err + +} + +func (_PriceRegistry *PriceRegistrySession) ValidatePoolReturnData(destChainSelector uint64, rampTokenAmounts []InternalRampTokenAmount, sourceTokenAmounts []ClientEVMTokenAmount) error { + return _PriceRegistry.Contract.ValidatePoolReturnData(&_PriceRegistry.CallOpts, destChainSelector, rampTokenAmounts, sourceTokenAmounts) +} + +func (_PriceRegistry *PriceRegistryCallerSession) ValidatePoolReturnData(destChainSelector uint64, rampTokenAmounts []InternalRampTokenAmount, sourceTokenAmounts []ClientEVMTokenAmount) error { + return _PriceRegistry.Contract.ValidatePoolReturnData(&_PriceRegistry.CallOpts, destChainSelector, rampTokenAmounts, sourceTokenAmounts) +} + +func (_PriceRegistry *PriceRegistryTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "acceptOwnership") +} + +func (_PriceRegistry *PriceRegistrySession) AcceptOwnership() (*types.Transaction, error) { + return _PriceRegistry.Contract.AcceptOwnership(&_PriceRegistry.TransactOpts) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _PriceRegistry.Contract.AcceptOwnership(&_PriceRegistry.TransactOpts) +} + +func (_PriceRegistry *PriceRegistryTransactor) ApplyAuthorizedCallerUpdates(opts *bind.TransactOpts, authorizedCallerArgs AuthorizedCallersAuthorizedCallerArgs) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "applyAuthorizedCallerUpdates", authorizedCallerArgs) +} + +func (_PriceRegistry *PriceRegistrySession) ApplyAuthorizedCallerUpdates(authorizedCallerArgs AuthorizedCallersAuthorizedCallerArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyAuthorizedCallerUpdates(&_PriceRegistry.TransactOpts, authorizedCallerArgs) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) ApplyAuthorizedCallerUpdates(authorizedCallerArgs AuthorizedCallersAuthorizedCallerArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyAuthorizedCallerUpdates(&_PriceRegistry.TransactOpts, authorizedCallerArgs) +} + +func (_PriceRegistry *PriceRegistryTransactor) ApplyDestChainConfigUpdates(opts *bind.TransactOpts, destChainConfigArgs []PriceRegistryDestChainConfigArgs) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "applyDestChainConfigUpdates", destChainConfigArgs) +} + +func (_PriceRegistry *PriceRegistrySession) ApplyDestChainConfigUpdates(destChainConfigArgs []PriceRegistryDestChainConfigArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyDestChainConfigUpdates(&_PriceRegistry.TransactOpts, destChainConfigArgs) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) ApplyDestChainConfigUpdates(destChainConfigArgs []PriceRegistryDestChainConfigArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyDestChainConfigUpdates(&_PriceRegistry.TransactOpts, destChainConfigArgs) +} + +func (_PriceRegistry *PriceRegistryTransactor) ApplyFeeTokensUpdates(opts *bind.TransactOpts, feeTokensToAdd []common.Address, feeTokensToRemove []common.Address) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "applyFeeTokensUpdates", feeTokensToAdd, feeTokensToRemove) +} + +func (_PriceRegistry *PriceRegistrySession) ApplyFeeTokensUpdates(feeTokensToAdd []common.Address, feeTokensToRemove []common.Address) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyFeeTokensUpdates(&_PriceRegistry.TransactOpts, feeTokensToAdd, feeTokensToRemove) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) ApplyFeeTokensUpdates(feeTokensToAdd []common.Address, feeTokensToRemove []common.Address) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyFeeTokensUpdates(&_PriceRegistry.TransactOpts, feeTokensToAdd, feeTokensToRemove) +} + +func (_PriceRegistry *PriceRegistryTransactor) ApplyPremiumMultiplierWeiPerEthUpdates(opts *bind.TransactOpts, premiumMultiplierWeiPerEthArgs []PriceRegistryPremiumMultiplierWeiPerEthArgs) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "applyPremiumMultiplierWeiPerEthUpdates", premiumMultiplierWeiPerEthArgs) +} + +func (_PriceRegistry *PriceRegistrySession) ApplyPremiumMultiplierWeiPerEthUpdates(premiumMultiplierWeiPerEthArgs []PriceRegistryPremiumMultiplierWeiPerEthArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyPremiumMultiplierWeiPerEthUpdates(&_PriceRegistry.TransactOpts, premiumMultiplierWeiPerEthArgs) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) ApplyPremiumMultiplierWeiPerEthUpdates(premiumMultiplierWeiPerEthArgs []PriceRegistryPremiumMultiplierWeiPerEthArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyPremiumMultiplierWeiPerEthUpdates(&_PriceRegistry.TransactOpts, premiumMultiplierWeiPerEthArgs) +} + +func (_PriceRegistry *PriceRegistryTransactor) ApplyTokenTransferFeeConfigUpdates(opts *bind.TransactOpts, tokenTransferFeeConfigArgs []PriceRegistryTokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs []PriceRegistryTokenTransferFeeConfigRemoveArgs) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "applyTokenTransferFeeConfigUpdates", tokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs) +} + +func (_PriceRegistry *PriceRegistrySession) ApplyTokenTransferFeeConfigUpdates(tokenTransferFeeConfigArgs []PriceRegistryTokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs []PriceRegistryTokenTransferFeeConfigRemoveArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyTokenTransferFeeConfigUpdates(&_PriceRegistry.TransactOpts, tokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) ApplyTokenTransferFeeConfigUpdates(tokenTransferFeeConfigArgs []PriceRegistryTokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs []PriceRegistryTokenTransferFeeConfigRemoveArgs) (*types.Transaction, error) { + return _PriceRegistry.Contract.ApplyTokenTransferFeeConfigUpdates(&_PriceRegistry.TransactOpts, tokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs) +} + +func (_PriceRegistry *PriceRegistryTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "transferOwnership", to) +} + +func (_PriceRegistry *PriceRegistrySession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _PriceRegistry.Contract.TransferOwnership(&_PriceRegistry.TransactOpts, to) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _PriceRegistry.Contract.TransferOwnership(&_PriceRegistry.TransactOpts, to) +} + +func (_PriceRegistry *PriceRegistryTransactor) UpdatePrices(opts *bind.TransactOpts, priceUpdates InternalPriceUpdates) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "updatePrices", priceUpdates) +} + +func (_PriceRegistry *PriceRegistrySession) UpdatePrices(priceUpdates InternalPriceUpdates) (*types.Transaction, error) { + return _PriceRegistry.Contract.UpdatePrices(&_PriceRegistry.TransactOpts, priceUpdates) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) UpdatePrices(priceUpdates InternalPriceUpdates) (*types.Transaction, error) { + return _PriceRegistry.Contract.UpdatePrices(&_PriceRegistry.TransactOpts, priceUpdates) +} + +func (_PriceRegistry *PriceRegistryTransactor) UpdateTokenPriceFeeds(opts *bind.TransactOpts, tokenPriceFeedUpdates []PriceRegistryTokenPriceFeedUpdate) (*types.Transaction, error) { + return _PriceRegistry.contract.Transact(opts, "updateTokenPriceFeeds", tokenPriceFeedUpdates) +} + +func (_PriceRegistry *PriceRegistrySession) UpdateTokenPriceFeeds(tokenPriceFeedUpdates []PriceRegistryTokenPriceFeedUpdate) (*types.Transaction, error) { + return _PriceRegistry.Contract.UpdateTokenPriceFeeds(&_PriceRegistry.TransactOpts, tokenPriceFeedUpdates) +} + +func (_PriceRegistry *PriceRegistryTransactorSession) UpdateTokenPriceFeeds(tokenPriceFeedUpdates []PriceRegistryTokenPriceFeedUpdate) (*types.Transaction, error) { + return _PriceRegistry.Contract.UpdateTokenPriceFeeds(&_PriceRegistry.TransactOpts, tokenPriceFeedUpdates) +} + +type PriceRegistryAuthorizedCallerAddedIterator struct { + Event *PriceRegistryAuthorizedCallerAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryAuthorizedCallerAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryAuthorizedCallerAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryAuthorizedCallerAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryAuthorizedCallerAddedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryAuthorizedCallerAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryAuthorizedCallerAdded struct { + Caller common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterAuthorizedCallerAdded(opts *bind.FilterOpts) (*PriceRegistryAuthorizedCallerAddedIterator, error) { + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "AuthorizedCallerAdded") + if err != nil { + return nil, err + } + return &PriceRegistryAuthorizedCallerAddedIterator{contract: _PriceRegistry.contract, event: "AuthorizedCallerAdded", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchAuthorizedCallerAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryAuthorizedCallerAdded) (event.Subscription, error) { + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "AuthorizedCallerAdded") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryAuthorizedCallerAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "AuthorizedCallerAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseAuthorizedCallerAdded(log types.Log) (*PriceRegistryAuthorizedCallerAdded, error) { + event := new(PriceRegistryAuthorizedCallerAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "AuthorizedCallerAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryAuthorizedCallerRemovedIterator struct { + Event *PriceRegistryAuthorizedCallerRemoved + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryAuthorizedCallerRemovedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryAuthorizedCallerRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryAuthorizedCallerRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryAuthorizedCallerRemovedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryAuthorizedCallerRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryAuthorizedCallerRemoved struct { + Caller common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterAuthorizedCallerRemoved(opts *bind.FilterOpts) (*PriceRegistryAuthorizedCallerRemovedIterator, error) { + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "AuthorizedCallerRemoved") + if err != nil { + return nil, err + } + return &PriceRegistryAuthorizedCallerRemovedIterator{contract: _PriceRegistry.contract, event: "AuthorizedCallerRemoved", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchAuthorizedCallerRemoved(opts *bind.WatchOpts, sink chan<- *PriceRegistryAuthorizedCallerRemoved) (event.Subscription, error) { + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "AuthorizedCallerRemoved") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryAuthorizedCallerRemoved) + if err := _PriceRegistry.contract.UnpackLog(event, "AuthorizedCallerRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseAuthorizedCallerRemoved(log types.Log) (*PriceRegistryAuthorizedCallerRemoved, error) { + event := new(PriceRegistryAuthorizedCallerRemoved) + if err := _PriceRegistry.contract.UnpackLog(event, "AuthorizedCallerRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryDestChainAddedIterator struct { + Event *PriceRegistryDestChainAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryDestChainAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryDestChainAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryDestChainAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryDestChainAddedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryDestChainAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryDestChainAdded struct { + DestChainSelector uint64 + DestChainConfig PriceRegistryDestChainConfig + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterDestChainAdded(opts *bind.FilterOpts, destChainSelector []uint64) (*PriceRegistryDestChainAddedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "DestChainAdded", destChainSelectorRule) + if err != nil { + return nil, err + } + return &PriceRegistryDestChainAddedIterator{contract: _PriceRegistry.contract, event: "DestChainAdded", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchDestChainAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryDestChainAdded, destChainSelector []uint64) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "DestChainAdded", destChainSelectorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryDestChainAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "DestChainAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseDestChainAdded(log types.Log) (*PriceRegistryDestChainAdded, error) { + event := new(PriceRegistryDestChainAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "DestChainAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryDestChainConfigUpdatedIterator struct { + Event *PriceRegistryDestChainConfigUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryDestChainConfigUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryDestChainConfigUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryDestChainConfigUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryDestChainConfigUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryDestChainConfigUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryDestChainConfigUpdated struct { + DestChainSelector uint64 + DestChainConfig PriceRegistryDestChainConfig + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterDestChainConfigUpdated(opts *bind.FilterOpts, destChainSelector []uint64) (*PriceRegistryDestChainConfigUpdatedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "DestChainConfigUpdated", destChainSelectorRule) + if err != nil { + return nil, err + } + return &PriceRegistryDestChainConfigUpdatedIterator{contract: _PriceRegistry.contract, event: "DestChainConfigUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchDestChainConfigUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryDestChainConfigUpdated, destChainSelector []uint64) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "DestChainConfigUpdated", destChainSelectorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryDestChainConfigUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "DestChainConfigUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseDestChainConfigUpdated(log types.Log) (*PriceRegistryDestChainConfigUpdated, error) { + event := new(PriceRegistryDestChainConfigUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "DestChainConfigUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryFeeTokenAddedIterator struct { + Event *PriceRegistryFeeTokenAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryFeeTokenAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryFeeTokenAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryFeeTokenAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryFeeTokenAddedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryFeeTokenAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryFeeTokenAdded struct { + FeeToken common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterFeeTokenAdded(opts *bind.FilterOpts, feeToken []common.Address) (*PriceRegistryFeeTokenAddedIterator, error) { + + var feeTokenRule []interface{} + for _, feeTokenItem := range feeToken { + feeTokenRule = append(feeTokenRule, feeTokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "FeeTokenAdded", feeTokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryFeeTokenAddedIterator{contract: _PriceRegistry.contract, event: "FeeTokenAdded", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchFeeTokenAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryFeeTokenAdded, feeToken []common.Address) (event.Subscription, error) { + + var feeTokenRule []interface{} + for _, feeTokenItem := range feeToken { + feeTokenRule = append(feeTokenRule, feeTokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "FeeTokenAdded", feeTokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryFeeTokenAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "FeeTokenAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseFeeTokenAdded(log types.Log) (*PriceRegistryFeeTokenAdded, error) { + event := new(PriceRegistryFeeTokenAdded) + if err := _PriceRegistry.contract.UnpackLog(event, "FeeTokenAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryFeeTokenRemovedIterator struct { + Event *PriceRegistryFeeTokenRemoved + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryFeeTokenRemovedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryFeeTokenRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryFeeTokenRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryFeeTokenRemovedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryFeeTokenRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryFeeTokenRemoved struct { + FeeToken common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterFeeTokenRemoved(opts *bind.FilterOpts, feeToken []common.Address) (*PriceRegistryFeeTokenRemovedIterator, error) { + + var feeTokenRule []interface{} + for _, feeTokenItem := range feeToken { + feeTokenRule = append(feeTokenRule, feeTokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "FeeTokenRemoved", feeTokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryFeeTokenRemovedIterator{contract: _PriceRegistry.contract, event: "FeeTokenRemoved", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchFeeTokenRemoved(opts *bind.WatchOpts, sink chan<- *PriceRegistryFeeTokenRemoved, feeToken []common.Address) (event.Subscription, error) { + + var feeTokenRule []interface{} + for _, feeTokenItem := range feeToken { + feeTokenRule = append(feeTokenRule, feeTokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "FeeTokenRemoved", feeTokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryFeeTokenRemoved) + if err := _PriceRegistry.contract.UnpackLog(event, "FeeTokenRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseFeeTokenRemoved(log types.Log) (*PriceRegistryFeeTokenRemoved, error) { + event := new(PriceRegistryFeeTokenRemoved) + if err := _PriceRegistry.contract.UnpackLog(event, "FeeTokenRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryOwnershipTransferRequestedIterator struct { + Event *PriceRegistryOwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryOwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryOwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryOwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryOwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*PriceRegistryOwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &PriceRegistryOwnershipTransferRequestedIterator{contract: _PriceRegistry.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *PriceRegistryOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryOwnershipTransferRequested) + if err := _PriceRegistry.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseOwnershipTransferRequested(log types.Log) (*PriceRegistryOwnershipTransferRequested, error) { + event := new(PriceRegistryOwnershipTransferRequested) + if err := _PriceRegistry.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryOwnershipTransferredIterator struct { + Event *PriceRegistryOwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryOwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryOwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryOwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*PriceRegistryOwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &PriceRegistryOwnershipTransferredIterator{contract: _PriceRegistry.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *PriceRegistryOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryOwnershipTransferred) + if err := _PriceRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseOwnershipTransferred(log types.Log) (*PriceRegistryOwnershipTransferred, error) { + event := new(PriceRegistryOwnershipTransferred) + if err := _PriceRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator struct { + Event *PriceRegistryPremiumMultiplierWeiPerEthUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryPremiumMultiplierWeiPerEthUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryPremiumMultiplierWeiPerEthUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryPremiumMultiplierWeiPerEthUpdated struct { + Token common.Address + PremiumMultiplierWeiPerEth uint64 + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterPremiumMultiplierWeiPerEthUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "PremiumMultiplierWeiPerEthUpdated", tokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator{contract: _PriceRegistry.contract, event: "PremiumMultiplierWeiPerEthUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchPremiumMultiplierWeiPerEthUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryPremiumMultiplierWeiPerEthUpdated, token []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "PremiumMultiplierWeiPerEthUpdated", tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryPremiumMultiplierWeiPerEthUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "PremiumMultiplierWeiPerEthUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParsePremiumMultiplierWeiPerEthUpdated(log types.Log) (*PriceRegistryPremiumMultiplierWeiPerEthUpdated, error) { + event := new(PriceRegistryPremiumMultiplierWeiPerEthUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "PremiumMultiplierWeiPerEthUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryPriceFeedPerTokenUpdatedIterator struct { + Event *PriceRegistryPriceFeedPerTokenUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryPriceFeedPerTokenUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryPriceFeedPerTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryPriceFeedPerTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryPriceFeedPerTokenUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryPriceFeedPerTokenUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryPriceFeedPerTokenUpdated struct { + Token common.Address + PriceFeedConfig IPriceRegistryTokenPriceFeedConfig + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterPriceFeedPerTokenUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryPriceFeedPerTokenUpdatedIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "PriceFeedPerTokenUpdated", tokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryPriceFeedPerTokenUpdatedIterator{contract: _PriceRegistry.contract, event: "PriceFeedPerTokenUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchPriceFeedPerTokenUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryPriceFeedPerTokenUpdated, token []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "PriceFeedPerTokenUpdated", tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryPriceFeedPerTokenUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "PriceFeedPerTokenUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParsePriceFeedPerTokenUpdated(log types.Log) (*PriceRegistryPriceFeedPerTokenUpdated, error) { + event := new(PriceRegistryPriceFeedPerTokenUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "PriceFeedPerTokenUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryTokenTransferFeeConfigDeletedIterator struct { + Event *PriceRegistryTokenTransferFeeConfigDeleted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryTokenTransferFeeConfigDeletedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryTokenTransferFeeConfigDeleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryTokenTransferFeeConfigDeleted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryTokenTransferFeeConfigDeletedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryTokenTransferFeeConfigDeletedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryTokenTransferFeeConfigDeleted struct { + DestChainSelector uint64 + Token common.Address + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterTokenTransferFeeConfigDeleted(opts *bind.FilterOpts, destChainSelector []uint64, token []common.Address) (*PriceRegistryTokenTransferFeeConfigDeletedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "TokenTransferFeeConfigDeleted", destChainSelectorRule, tokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryTokenTransferFeeConfigDeletedIterator{contract: _PriceRegistry.contract, event: "TokenTransferFeeConfigDeleted", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchTokenTransferFeeConfigDeleted(opts *bind.WatchOpts, sink chan<- *PriceRegistryTokenTransferFeeConfigDeleted, destChainSelector []uint64, token []common.Address) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "TokenTransferFeeConfigDeleted", destChainSelectorRule, tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryTokenTransferFeeConfigDeleted) + if err := _PriceRegistry.contract.UnpackLog(event, "TokenTransferFeeConfigDeleted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseTokenTransferFeeConfigDeleted(log types.Log) (*PriceRegistryTokenTransferFeeConfigDeleted, error) { + event := new(PriceRegistryTokenTransferFeeConfigDeleted) + if err := _PriceRegistry.contract.UnpackLog(event, "TokenTransferFeeConfigDeleted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryTokenTransferFeeConfigUpdatedIterator struct { + Event *PriceRegistryTokenTransferFeeConfigUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryTokenTransferFeeConfigUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryTokenTransferFeeConfigUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryTokenTransferFeeConfigUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryTokenTransferFeeConfigUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryTokenTransferFeeConfigUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryTokenTransferFeeConfigUpdated struct { + DestChainSelector uint64 + Token common.Address + TokenTransferFeeConfig PriceRegistryTokenTransferFeeConfig + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterTokenTransferFeeConfigUpdated(opts *bind.FilterOpts, destChainSelector []uint64, token []common.Address) (*PriceRegistryTokenTransferFeeConfigUpdatedIterator, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "TokenTransferFeeConfigUpdated", destChainSelectorRule, tokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryTokenTransferFeeConfigUpdatedIterator{contract: _PriceRegistry.contract, event: "TokenTransferFeeConfigUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchTokenTransferFeeConfigUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryTokenTransferFeeConfigUpdated, destChainSelector []uint64, token []common.Address) (event.Subscription, error) { + + var destChainSelectorRule []interface{} + for _, destChainSelectorItem := range destChainSelector { + destChainSelectorRule = append(destChainSelectorRule, destChainSelectorItem) + } + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "TokenTransferFeeConfigUpdated", destChainSelectorRule, tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryTokenTransferFeeConfigUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "TokenTransferFeeConfigUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseTokenTransferFeeConfigUpdated(log types.Log) (*PriceRegistryTokenTransferFeeConfigUpdated, error) { + event := new(PriceRegistryTokenTransferFeeConfigUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "TokenTransferFeeConfigUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryUsdPerTokenUpdatedIterator struct { + Event *PriceRegistryUsdPerTokenUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryUsdPerTokenUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryUsdPerTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryUsdPerTokenUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryUsdPerTokenUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryUsdPerTokenUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryUsdPerTokenUpdated struct { + Token common.Address + Value *big.Int + Timestamp *big.Int + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterUsdPerTokenUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryUsdPerTokenUpdatedIterator, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "UsdPerTokenUpdated", tokenRule) + if err != nil { + return nil, err + } + return &PriceRegistryUsdPerTokenUpdatedIterator{contract: _PriceRegistry.contract, event: "UsdPerTokenUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchUsdPerTokenUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryUsdPerTokenUpdated, token []common.Address) (event.Subscription, error) { + + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "UsdPerTokenUpdated", tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryUsdPerTokenUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "UsdPerTokenUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseUsdPerTokenUpdated(log types.Log) (*PriceRegistryUsdPerTokenUpdated, error) { + event := new(PriceRegistryUsdPerTokenUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "UsdPerTokenUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type PriceRegistryUsdPerUnitGasUpdatedIterator struct { + Event *PriceRegistryUsdPerUnitGasUpdated + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *PriceRegistryUsdPerUnitGasUpdatedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(PriceRegistryUsdPerUnitGasUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(PriceRegistryUsdPerUnitGasUpdated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *PriceRegistryUsdPerUnitGasUpdatedIterator) Error() error { + return it.fail +} + +func (it *PriceRegistryUsdPerUnitGasUpdatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type PriceRegistryUsdPerUnitGasUpdated struct { + DestChain uint64 + Value *big.Int + Timestamp *big.Int + Raw types.Log +} + +func (_PriceRegistry *PriceRegistryFilterer) FilterUsdPerUnitGasUpdated(opts *bind.FilterOpts, destChain []uint64) (*PriceRegistryUsdPerUnitGasUpdatedIterator, error) { + + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _PriceRegistry.contract.FilterLogs(opts, "UsdPerUnitGasUpdated", destChainRule) + if err != nil { + return nil, err + } + return &PriceRegistryUsdPerUnitGasUpdatedIterator{contract: _PriceRegistry.contract, event: "UsdPerUnitGasUpdated", logs: logs, sub: sub}, nil +} + +func (_PriceRegistry *PriceRegistryFilterer) WatchUsdPerUnitGasUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryUsdPerUnitGasUpdated, destChain []uint64) (event.Subscription, error) { + + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _PriceRegistry.contract.WatchLogs(opts, "UsdPerUnitGasUpdated", destChainRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(PriceRegistryUsdPerUnitGasUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "UsdPerUnitGasUpdated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_PriceRegistry *PriceRegistryFilterer) ParseUsdPerUnitGasUpdated(log types.Log) (*PriceRegistryUsdPerUnitGasUpdated, error) { + event := new(PriceRegistryUsdPerUnitGasUpdated) + if err := _PriceRegistry.contract.UnpackLog(event, "UsdPerUnitGasUpdated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type GetTokenAndGasPrices struct { + TokenPrice *big.Int + GasPriceValue *big.Int +} +type ProcessMessageArgs struct { + MsgFeeJuels *big.Int + IsOutOfOrderExecution bool + ConvertedExtraArgs []byte +} + +func (_PriceRegistry *PriceRegistry) ParseLog(log types.Log) (generated.AbigenLog, error) { + switch log.Topics[0] { + case _PriceRegistry.abi.Events["AuthorizedCallerAdded"].ID: + return _PriceRegistry.ParseAuthorizedCallerAdded(log) + case _PriceRegistry.abi.Events["AuthorizedCallerRemoved"].ID: + return _PriceRegistry.ParseAuthorizedCallerRemoved(log) + case _PriceRegistry.abi.Events["DestChainAdded"].ID: + return _PriceRegistry.ParseDestChainAdded(log) + case _PriceRegistry.abi.Events["DestChainConfigUpdated"].ID: + return _PriceRegistry.ParseDestChainConfigUpdated(log) + case _PriceRegistry.abi.Events["FeeTokenAdded"].ID: + return _PriceRegistry.ParseFeeTokenAdded(log) + case _PriceRegistry.abi.Events["FeeTokenRemoved"].ID: + return _PriceRegistry.ParseFeeTokenRemoved(log) + case _PriceRegistry.abi.Events["OwnershipTransferRequested"].ID: + return _PriceRegistry.ParseOwnershipTransferRequested(log) + case _PriceRegistry.abi.Events["OwnershipTransferred"].ID: + return _PriceRegistry.ParseOwnershipTransferred(log) + case _PriceRegistry.abi.Events["PremiumMultiplierWeiPerEthUpdated"].ID: + return _PriceRegistry.ParsePremiumMultiplierWeiPerEthUpdated(log) + case _PriceRegistry.abi.Events["PriceFeedPerTokenUpdated"].ID: + return _PriceRegistry.ParsePriceFeedPerTokenUpdated(log) + case _PriceRegistry.abi.Events["TokenTransferFeeConfigDeleted"].ID: + return _PriceRegistry.ParseTokenTransferFeeConfigDeleted(log) + case _PriceRegistry.abi.Events["TokenTransferFeeConfigUpdated"].ID: + return _PriceRegistry.ParseTokenTransferFeeConfigUpdated(log) + case _PriceRegistry.abi.Events["UsdPerTokenUpdated"].ID: + return _PriceRegistry.ParseUsdPerTokenUpdated(log) + case _PriceRegistry.abi.Events["UsdPerUnitGasUpdated"].ID: + return _PriceRegistry.ParseUsdPerUnitGasUpdated(log) + + default: + return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + } +} + +func (PriceRegistryAuthorizedCallerAdded) Topic() common.Hash { + return common.HexToHash("0xeb1b9b92e50b7f88f9ff25d56765095ac6e91540eee214906f4036a908ffbdef") +} + +func (PriceRegistryAuthorizedCallerRemoved) Topic() common.Hash { + return common.HexToHash("0xc3803387881faad271c47728894e3e36fac830ffc8602ca6fc07733cbda77580") +} + +func (PriceRegistryDestChainAdded) Topic() common.Hash { + return common.HexToHash("0xa937382a486d993de71c220bc8b559242deb4e286a353fa732330b4aa7d13577") +} + +func (PriceRegistryDestChainConfigUpdated) Topic() common.Hash { + return common.HexToHash("0xa7b607fc10d28a1caf39ab7d27f4c94945db708a576d572781a455c5894fad93") +} + +func (PriceRegistryFeeTokenAdded) Topic() common.Hash { + return common.HexToHash("0xdf1b1bd32a69711488d71554706bb130b1fc63a5fa1a2cd85e8440f84065ba23") +} + +func (PriceRegistryFeeTokenRemoved) Topic() common.Hash { + return common.HexToHash("0x1795838dc8ab2ffc5f431a1729a6afa0b587f982f7b2be0b9d7187a1ef547f91") +} + +func (PriceRegistryOwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (PriceRegistryOwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (PriceRegistryPremiumMultiplierWeiPerEthUpdated) Topic() common.Hash { + return common.HexToHash("0xbb77da6f7210cdd16904228a9360133d1d7dfff99b1bc75f128da5b53e28f97d") +} + +func (PriceRegistryPriceFeedPerTokenUpdated) Topic() common.Hash { + return common.HexToHash("0x08a5f7f5bb38a81d8e43aca13ecd76431dbf8816ae4699affff7b00b2fc1c464") +} + +func (PriceRegistryTokenTransferFeeConfigDeleted) Topic() common.Hash { + return common.HexToHash("0x4de5b1bcbca6018c11303a2c3f4a4b4f22a1c741d8c4ba430d246ac06c5ddf8b") +} + +func (PriceRegistryTokenTransferFeeConfigUpdated) Topic() common.Hash { + return common.HexToHash("0x94967ae9ea7729ad4f54021c1981765d2b1d954f7c92fbec340aa0a54f46b8b5") +} + +func (PriceRegistryUsdPerTokenUpdated) Topic() common.Hash { + return common.HexToHash("0x52f50aa6d1a95a4595361ecf953d095f125d442e4673716dede699e049de148a") +} + +func (PriceRegistryUsdPerUnitGasUpdated) Topic() common.Hash { + return common.HexToHash("0xdd84a3fa9ef9409f550d54d6affec7e9c480c878c6ab27b78912a03e1b371c6e") +} + +func (_PriceRegistry *PriceRegistry) Address() common.Address { + return _PriceRegistry.address +} + +type PriceRegistryInterface interface { + ConvertTokenAmount(opts *bind.CallOpts, fromToken common.Address, fromTokenAmount *big.Int, toToken common.Address) (*big.Int, error) + + GetAllAuthorizedCallers(opts *bind.CallOpts) ([]common.Address, error) + + GetDestChainConfig(opts *bind.CallOpts, destChainSelector uint64) (PriceRegistryDestChainConfig, error) + + GetDestinationChainGasPrice(opts *bind.CallOpts, destChainSelector uint64) (InternalTimestampedPackedUint224, error) + + GetFeeTokens(opts *bind.CallOpts) ([]common.Address, error) + + GetPremiumMultiplierWeiPerEth(opts *bind.CallOpts, token common.Address) (uint64, error) + + GetStaticConfig(opts *bind.CallOpts) (PriceRegistryStaticConfig, error) + + GetTokenAndGasPrices(opts *bind.CallOpts, token common.Address, destChainSelector uint64) (GetTokenAndGasPrices, + + error) + + GetTokenPrice(opts *bind.CallOpts, token common.Address) (InternalTimestampedPackedUint224, error) + + GetTokenPriceFeedConfig(opts *bind.CallOpts, token common.Address) (IPriceRegistryTokenPriceFeedConfig, error) + + GetTokenPrices(opts *bind.CallOpts, tokens []common.Address) ([]InternalTimestampedPackedUint224, error) + + GetTokenTransferFeeConfig(opts *bind.CallOpts, destChainSelector uint64, token common.Address) (PriceRegistryTokenTransferFeeConfig, error) + + GetValidatedFee(opts *bind.CallOpts, destChainSelector uint64, message ClientEVM2AnyMessage) (*big.Int, error) + + GetValidatedTokenPrice(opts *bind.CallOpts, token common.Address) (*big.Int, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + ProcessMessageArgs(opts *bind.CallOpts, destChainSelector uint64, feeToken common.Address, feeTokenAmount *big.Int, extraArgs []byte) (ProcessMessageArgs, + + error) + + TypeAndVersion(opts *bind.CallOpts) (string, error) + + ValidatePoolReturnData(opts *bind.CallOpts, destChainSelector uint64, rampTokenAmounts []InternalRampTokenAmount, sourceTokenAmounts []ClientEVMTokenAmount) error + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + ApplyAuthorizedCallerUpdates(opts *bind.TransactOpts, authorizedCallerArgs AuthorizedCallersAuthorizedCallerArgs) (*types.Transaction, error) + + ApplyDestChainConfigUpdates(opts *bind.TransactOpts, destChainConfigArgs []PriceRegistryDestChainConfigArgs) (*types.Transaction, error) + + ApplyFeeTokensUpdates(opts *bind.TransactOpts, feeTokensToAdd []common.Address, feeTokensToRemove []common.Address) (*types.Transaction, error) + + ApplyPremiumMultiplierWeiPerEthUpdates(opts *bind.TransactOpts, premiumMultiplierWeiPerEthArgs []PriceRegistryPremiumMultiplierWeiPerEthArgs) (*types.Transaction, error) + + ApplyTokenTransferFeeConfigUpdates(opts *bind.TransactOpts, tokenTransferFeeConfigArgs []PriceRegistryTokenTransferFeeConfigArgs, tokensToUseDefaultFeeConfigs []PriceRegistryTokenTransferFeeConfigRemoveArgs) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + UpdatePrices(opts *bind.TransactOpts, priceUpdates InternalPriceUpdates) (*types.Transaction, error) + + UpdateTokenPriceFeeds(opts *bind.TransactOpts, tokenPriceFeedUpdates []PriceRegistryTokenPriceFeedUpdate) (*types.Transaction, error) + + FilterAuthorizedCallerAdded(opts *bind.FilterOpts) (*PriceRegistryAuthorizedCallerAddedIterator, error) + + WatchAuthorizedCallerAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryAuthorizedCallerAdded) (event.Subscription, error) + + ParseAuthorizedCallerAdded(log types.Log) (*PriceRegistryAuthorizedCallerAdded, error) + + FilterAuthorizedCallerRemoved(opts *bind.FilterOpts) (*PriceRegistryAuthorizedCallerRemovedIterator, error) + + WatchAuthorizedCallerRemoved(opts *bind.WatchOpts, sink chan<- *PriceRegistryAuthorizedCallerRemoved) (event.Subscription, error) + + ParseAuthorizedCallerRemoved(log types.Log) (*PriceRegistryAuthorizedCallerRemoved, error) + + FilterDestChainAdded(opts *bind.FilterOpts, destChainSelector []uint64) (*PriceRegistryDestChainAddedIterator, error) + + WatchDestChainAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryDestChainAdded, destChainSelector []uint64) (event.Subscription, error) + + ParseDestChainAdded(log types.Log) (*PriceRegistryDestChainAdded, error) + + FilterDestChainConfigUpdated(opts *bind.FilterOpts, destChainSelector []uint64) (*PriceRegistryDestChainConfigUpdatedIterator, error) + + WatchDestChainConfigUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryDestChainConfigUpdated, destChainSelector []uint64) (event.Subscription, error) + + ParseDestChainConfigUpdated(log types.Log) (*PriceRegistryDestChainConfigUpdated, error) + + FilterFeeTokenAdded(opts *bind.FilterOpts, feeToken []common.Address) (*PriceRegistryFeeTokenAddedIterator, error) + + WatchFeeTokenAdded(opts *bind.WatchOpts, sink chan<- *PriceRegistryFeeTokenAdded, feeToken []common.Address) (event.Subscription, error) + + ParseFeeTokenAdded(log types.Log) (*PriceRegistryFeeTokenAdded, error) + + FilterFeeTokenRemoved(opts *bind.FilterOpts, feeToken []common.Address) (*PriceRegistryFeeTokenRemovedIterator, error) + + WatchFeeTokenRemoved(opts *bind.WatchOpts, sink chan<- *PriceRegistryFeeTokenRemoved, feeToken []common.Address) (event.Subscription, error) + + ParseFeeTokenRemoved(log types.Log) (*PriceRegistryFeeTokenRemoved, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*PriceRegistryOwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *PriceRegistryOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*PriceRegistryOwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*PriceRegistryOwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *PriceRegistryOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*PriceRegistryOwnershipTransferred, error) + + FilterPremiumMultiplierWeiPerEthUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryPremiumMultiplierWeiPerEthUpdatedIterator, error) + + WatchPremiumMultiplierWeiPerEthUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryPremiumMultiplierWeiPerEthUpdated, token []common.Address) (event.Subscription, error) + + ParsePremiumMultiplierWeiPerEthUpdated(log types.Log) (*PriceRegistryPremiumMultiplierWeiPerEthUpdated, error) + + FilterPriceFeedPerTokenUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryPriceFeedPerTokenUpdatedIterator, error) + + WatchPriceFeedPerTokenUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryPriceFeedPerTokenUpdated, token []common.Address) (event.Subscription, error) + + ParsePriceFeedPerTokenUpdated(log types.Log) (*PriceRegistryPriceFeedPerTokenUpdated, error) + + FilterTokenTransferFeeConfigDeleted(opts *bind.FilterOpts, destChainSelector []uint64, token []common.Address) (*PriceRegistryTokenTransferFeeConfigDeletedIterator, error) + + WatchTokenTransferFeeConfigDeleted(opts *bind.WatchOpts, sink chan<- *PriceRegistryTokenTransferFeeConfigDeleted, destChainSelector []uint64, token []common.Address) (event.Subscription, error) + + ParseTokenTransferFeeConfigDeleted(log types.Log) (*PriceRegistryTokenTransferFeeConfigDeleted, error) + + FilterTokenTransferFeeConfigUpdated(opts *bind.FilterOpts, destChainSelector []uint64, token []common.Address) (*PriceRegistryTokenTransferFeeConfigUpdatedIterator, error) + + WatchTokenTransferFeeConfigUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryTokenTransferFeeConfigUpdated, destChainSelector []uint64, token []common.Address) (event.Subscription, error) + + ParseTokenTransferFeeConfigUpdated(log types.Log) (*PriceRegistryTokenTransferFeeConfigUpdated, error) + + FilterUsdPerTokenUpdated(opts *bind.FilterOpts, token []common.Address) (*PriceRegistryUsdPerTokenUpdatedIterator, error) + + WatchUsdPerTokenUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryUsdPerTokenUpdated, token []common.Address) (event.Subscription, error) + + ParseUsdPerTokenUpdated(log types.Log) (*PriceRegistryUsdPerTokenUpdated, error) + + FilterUsdPerUnitGasUpdated(opts *bind.FilterOpts, destChain []uint64) (*PriceRegistryUsdPerUnitGasUpdatedIterator, error) + + WatchUsdPerUnitGasUpdated(opts *bind.WatchOpts, sink chan<- *PriceRegistryUsdPerUnitGasUpdated, destChain []uint64) (event.Subscription, error) + + ParseUsdPerUnitGasUpdated(log types.Log) (*PriceRegistryUsdPerUnitGasUpdated, error) + + ParseLog(log types.Log) (generated.AbigenLog, error) + + Address() common.Address +} + +var PriceRegistryZKBin = ("0x0003000000000002002c000000000002000200000001035500000000030100190000006003300270000008430030019d000008430330019700000001002001900000007a0000c13d0000008004000039000000400040043f000000040030008c0000009b0000413d000000000201043b000000e0022002700000088a0020009c000000a70000a13d0000088b0020009c000001110000213d000008950020009c000002e30000a13d000008960020009c000003250000213d000008990020009c000004c50000613d0000089a0020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000502043b000008490050009c0000009b0000213d0000002302500039000000000032004b0000009b0000813d0000000402500039000000000221034f000000000202043b000008490020009c000000a10000213d00000005042002100000003f044000390000084a04400197000008b00040009c000000a10000213d0000008004400039000000400040043f000000800020043f000000060220021000000024042001bf0000000002540019000000000032004b0000009b0000213d000000240040008c00000da70000c13d000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d000000800100043d000000000001004b000003230000613d002400000000001d0000002402000029000000000021004b00001ad60000a13d0000000501200210000000a0011000390000000001010433000000002101043400000848011001970000000002020433002200000002001d002300000001001d000000000010043f0000000701000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000022020000290000084902200197000000000101043b000000000301041a0000087803300197000000000323019f000000000031041b000000400100043d0000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d02000039000000020300003900000879040000410000002305000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d000000800100043d000000240010006b000000440000413d000003230000013d000000e004000039000000400040043f0000000002000416000000000002004b0000009b0000c13d0000001f023000390000084402200197000000e002200039000000400020043f0000001f0530018f0000084506300198000000e0026000390000008c0000613d000000000701034f000000007807043c0000000004840436000000000024004b000000880000c13d000000000005004b000000990000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000001200030008c0000009d0000813d00000000010000190000210a00010430000000400100043d002400000001001d000008460010009c000001330000a13d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a000104300000089e0020009c000002630000a13d0000089f0020009c000002cc0000a13d000008a00020009c000003040000213d000008a30020009c000004090000613d000008a40020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008490010009c0000009b0000213d000002a002000039000000400020043f000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000001400000043f000001600000043f000001800000043f000001a00000043f000001c00000043f000001e00000043f000002000000043f000002200000043f000002400000043f000002600000043f000002800000043f000000000010043f0000000801000039000000200010043f210820d30000040f002400000001001d000002a00100003921081b9e0000040f0000002403000029000000000103041a000000ff001001900000000002000039000000010200c039000002a00020043f00000008021002700000ffff0220018f000002c00020043f00000018021002700000084302200197000002e00020043f00000038021002700000084302200197000003000020043f00000058021002700000084302200197000003200020043f00000078021002700000ffff0220018f000003400020043f00000088021002700000084302200197000003600020043f000000a8021002700000ffff0220018f000003800020043f000000b8021002700000ffff0220018f000003a00020043f000000c8021002700000ffff0220018f000003c00020043f000000d8011002700000084301100197000003e00010043f0000000101300039000000000101041a0000084302100197000004000020043f00000020021002700000084302200197000004200020043f00000040021002700000084902200197000004400020043f00000080021002700000084302200197000004600020043f0000085f001001980000000002000039000000010200c039000004800020043f00000038011002100000086101100197000004a00010043f000000400100043d002400000001001d000002a00200003921081b3c0000040f00000a8d0000013d0000088c0020009c000002f10000a13d0000088d0020009c0000038d0000213d000008900020009c000005910000613d000008910020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000601043b000008480060009c0000009b0000213d000000000100041a00000848011001970000000005000411000000000015004b00000a970000c13d000000000056004b00000aa10000c13d0000088801000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000008b501000041000000c40010043f000008b3010000410000210a0001043000000024010000290000006001100039000000400010043f000000e00100043d000008470010009c0000009b0000213d00000024020000290000000001120436002300000001001d000001000100043d000008480010009c0000009b0000213d00000023020000290000000000120435000001200100043d000008430010009c0000009b0000213d00000024020000290000004002200039002200000002001d0000000000120435000001400200043d000008490020009c0000009b0000213d000000e001300039000000ff04200039000000000014004b0000009b0000813d000000e0042000390000000004040433000008490040009c000000a10000213d00000005054002100000003f065000390000084a06600197000000400700043d0000000006670019002100000007001d000000000076004b00000000070000390000000107004039000008490060009c000000a10000213d0000000100700190000000a10000c13d000000400060043f0000002106000029000000000046043500000100022000390000000005250019000000000015004b0000009b0000213d000000000004004b000001710000613d00000021040000290000000026020434000008480060009c0000009b0000213d00000020044000390000000000640435000000000052004b0000016a0000413d000001600200043d000008490020009c0000009b0000213d0000001f04200039000000000034004b00000000050000190000084b050080410000084b04400197000000000004004b00000000060000190000084b060040410000084b0040009c000000000605c019000000000006004b0000009b0000c13d000000e0042000390000000004040433000008490040009c000000a10000213d00000005054002100000003f065000390000084a06600197000000400700043d0000000006670019002000000007001d000000000076004b00000000070000390000000107004039000008490060009c000000a10000213d0000000100700190000000a10000c13d000000400060043f00000020060000290000000006460436001c00000006001d00000100022000390000000005250019000000000015004b0000009b0000213d000000000004004b000001a30000613d00000020040000290000000026020434000008480060009c0000009b0000213d00000020044000390000000000640435000000000052004b0000019c0000413d000001800200043d000008490020009c0000009b0000213d0000001f04200039000000000034004b00000000050000190000084b050080410000084b04400197000000000004004b00000000060000190000084b060040410000084b0040009c000000000605c019000000000006004b0000009b0000c13d000000e0042000390000000005040433000008490050009c000000a10000213d00000005045002100000003f044000390000084a04400197000000400600043d0000000004460019001b00000006001d000000000064004b00000000060000390000000106004039000008490040009c000000a10000213d0000000100600190000000a10000c13d000000400040043f0000001b040000290000000004540436001a00000004001d000001000220003900000060045000c90000000004240019000000000014004b0000009b0000213d000000000005004b000011df0000c13d000001a00200043d000008490020009c0000009b0000213d0000001f04200039000000000034004b00000000050000190000084b050080410000084b04400197000000000004004b00000000060000190000084b060040410000084b0040009c000000000605c019000000000006004b0000009b0000c13d000000e004200039001f00000004001d0000000007040433000008490070009c000000a10000213d00000005067002100000003f046000390000084a05400197000000400400043d0000000005540019000000000045004b00000000080000390000000108004039000008490050009c000000a10000213d0000000100800190000000a10000c13d000000400050043f002c00000004001d00000000007404350000010005200039001e00000056001d0000001e0010006b0000009b0000213d000000000007004b000012d60000c13d000001c00200043d000008490020009c0000009b0000213d0000001f04200039000000000034004b00000000050000190000084b050040410000084b04400197000000000004004b00000000060000190000084b060020410000084b0040009c000000000605c019000000000006004b0000009b0000613d000000e0042000390000000005040433000008490050009c000000a10000213d00000005045002100000003f044000390000084a04400197000000400600043d0000000004460019001800000006001d000000000064004b00000000060000390000000106004039000008490040009c000000a10000213d0000000100600190000000a10000c13d000000400040043f0000001804000029002b00000004001d0000000000540435000001000220003900000006045002100000000004240019000000000014004b0000009b0000213d000000000005004b000015d30000c13d000001e00200043d000008490020009c0000009b0000213d0000001f04200039000000000034004b00000000030000190000084b030040410000084b04400197000000000004004b00000000050000190000084b050020410000084b0040009c000000000503c019000000000005004b0000009b0000613d000000e0032000390000000004030433000008490040009c000000a10000213d00000005034002100000003f033000390000084a03300197000000400500043d0000000003350019001700000005001d000000000053004b00000000050000390000000105004039000008490030009c000000a10000213d0000000100500190000000a10000c13d000000400030043f00000017030000290000000003430436001600000003001d000001000220003900000240034000c90000000003230019000000000013004b0000009b0000213d000000000004004b000015ec0000c13d000000400100043d001d00000001001d0000000001000411000000000001004b0000166f0000c13d0000001d0300002900000044013000390000088702000041000000000021043500000024013000390000001802000039000000000021043500000888010000410000000000130435000000040130003900000020020000390000000000210435000008430030009c0000084303008041000000400130021000000889011001c70000210a00010430000008a80020009c000002a00000213d000008ac0020009c000003d10000613d000008ad0020009c000003ab0000613d000008ae0020009c0000009b0000c13d0000000001000416000000000001004b0000009b0000c13d000000800000043f000000a00000043f000000c00000043f0000014001000039000000400010043f0000000001000412002a00000001001d002900000000003d0000800501000039000000440300003900000000040004150000002a0440008a0000000504400210000008d102000041210820e00000040f0000084701100197002400000001001d000000e00010043f0000000001000412002800000001001d002700200000003d0000000004000415000000280440008a00000005044002100000800501000039000008d1020000410000004403000039210820e00000040f0000084801100197002300000001001d000001000010043f0000000001000412002600000001001d002500400000003d0000000004000415000000260440008a00000005044002100000800501000039000008d1020000410000004403000039210820e00000040f0000084301100197000001200010043f0000002402000029000001400020043f0000002302000029000001600020043f000001800010043f000008e001000041000021090001042e000008a90020009c000003f50000613d000008aa0020009c000003bd0000613d000008ab0020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b001e00000001001d000008490010009c0000009b0000213d0000001e0130006a0000084c0010009c0000009b0000213d000000440010008c0000009b0000413d0000000001000411000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a000000000001004b00000ab40000c13d000000400100043d000008dc02000041000000000021043500000004021000390000000003000411000006090000013d000008a50020009c000007fc0000613d000008a60020009c000007780000613d000008a70020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008480010009c0000009b0000213d21081f560000040f000000400200043d0000000000120435000008430020009c00000843020080410000004001200210000008c8011001c7000021090001042e0000089b0020009c000008630000613d0000089c0020009c000007b70000613d0000089d0020009c0000009b0000c13d0000000001000416000000000001004b0000009b0000c13d000000000100041a0000084801100197000000800010043f000008d601000041000021090001042e000008920020009c000009340000613d000008930020009c000007f10000613d000008940020009c0000009b0000c13d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008480010009c0000009b0000213d21081c150000040f000000400200043d002400000002001d000004260000013d000008a10020009c0000042d0000613d000008a20020009c0000009b0000c13d0000000001000416000000000001004b0000009b0000c13d0000000101000039000000000201041a00000848032001970000000006000411000000000036004b00000a720000c13d000000000300041a0000085104300197000000000464019f000000000040041b0000085102200197000000000021041b00000000010004140000084805300197000008430010009c0000084301008041000000c0011002100000085a011001c70000800d020000390000000303000039000008d904000041210820fe0000040f00000001002001900000009b0000613d0000000001000019000021090001042e000008970020009c0000060f0000613d000008980020009c0000009b0000c13d000000840030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b002400000002001d000008490020009c0000009b0000213d0000002402100370000000000202043b002300000002001d000008480020009c0000009b0000213d0000004402100370000000000202043b002200000002001d0000006402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b0000009b0000813d002000040020003d0000002001100360000000000101043b002100000001001d000008490010009c0000009b0000213d0000002101200029001f00240010003d0000001f0030006b0000009b0000213d000008d101000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000008430010009c0000084301008041000000c001100210000008d2011001c70000800502000039210821030000040f0000000100200190000015770000613d000000000201043b001e00000002001d000000230120014f00000848001001980000036e0000613d000000230100002921081f560000040f00230022001000bd000000220000006b000003690000613d000000230300002900000022023000fa000000000012004b000015cd0000c13d0000001e0100002921081f560000040f000000000001004b000003ef0000613d0022002300100101000008d10100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008430010009c0000084301008041000000c001100210000008d2011001c70000800502000039210821030000040f0000000100200190000015770000613d000000000101043b0000084701100197000000220010006b00000f200000a13d000000400200043d00000024032000390000000000130435000008d4010000410000000000120435000000040120003900000022030000290000000000310435000008430020009c0000084302008041000000400120021000000882011001c70000210a000104300000088e0020009c0000062f0000613d0000088f0020009c0000009b0000c13d000000440030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000302043b000008480030009c0000009b0000213d0000002401100370000000000201043b000008490020009c0000009b0000213d000000000103001921081d820000040f0000085002200197000000400300043d0000002004300039000000000024043500000850011001970000000000130435000008430030009c00000843030080410000004001300210000008af011001c7000021090001042e000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008480010009c0000009b0000213d000000000010043f0000000701000039000000200010043f210820d30000040f000000000101041a0000084901100197000000800010043f000008d601000041000021090001042e0000000001000416000000000001004b0000009b0000c13d0000000202000039000000000102041a000000800010043f000000000020043f000000000001004b000007fa0000613d000000a004000039000008dd0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000003c90000413d00000a860000013d000000640030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008480020009c0000009b0000213d0000004401100370000000000101043b002400000001001d000008480010009c0000009b0000213d000000000102001921081f560000040f00000024020000390000000202200367000000000202043b00000000031200a9000000000002004b000003ea0000613d00000000022300d9000000000012004b000015cd0000c13d002300000003001d000000240100002921081f560000040f000000000001004b00000ab20000c13d000008d701000041000000000010043f0000001201000039000000040010043f00000877010000410000210a000104300000000001000416000000000001004b0000009b0000c13d000000c001000039000000400010043f0000001701000039000000800010043f000008de01000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003921081bc60000040f000000c00110008a000008430010009c00000843010080410000006001100210000008df011001c7000021090001042e000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008490010009c0000009b0000213d000000c002000039000000400020043f000000800000043f000000a00000043f000000000010043f0000000401000039000000200010043f210820d30000040f002400000001001d000000c00100003921081b930000040f0000002401000029000000000101041a0000085002100197000000c00020043f000000e001100270000000e00010043f000000400200043d002400000002001d000000c00100003921081be80000040f0000002401000029000008430010009c00000843010080410000004001100210000008af011001c7000021090001042e000000440030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b002300000002001d000008490020009c0000009b0000213d00000023020000290000002302200039000000000032004b0000009b0000813d00000023020000290000000402200039000000000221034f000000000202043b000008490020009c000000a10000213d00000005052002100000003f045000390000084a04400197000008b00040009c000000a10000213d0000008004400039000000400040043f000000800020043f00000023040000290000002404400039002200000045001d000000220030006b0000009b0000213d000000000002004b00000c6d0000c13d0000002402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b00000000050000190000084b050040410000084b04400197000000000004004b00000000060000190000084b060020410000084b0040009c000000000605c019000000000006004b0000009b0000613d0000000404200039000000000441034f000000000504043b000008490050009c000000a10000213d00000005045002100000003f044000390000084a04400197000000400600043d0000000004460019001e00000006001d000000000064004b00000000060000390000000106004039000008490040009c000000a10000213d0000000100600190000000a10000c13d000000400040043f0000001e040000290000000004540436001d00000004001d000000240220003900000006045002100000000004240019000000000034004b0000009b0000213d000000000005004b00000ff70000c13d000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d000000800100043d000000000001004b000010a40000c13d0000001e010000290000000001010433000000000001004b000003230000613d002400000000001d000000240100002900000005011002100000001d01100029000000000101043300000020021000390000000002020433002300000002001d00000000010104330000084901100197002200000001001d000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000023020000290000084802200197000000000101043b002300000002001d000000000020043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b0000000001000414000008430010009c0000084301008041000000c0011002100000085a011001c70000800d020000390000000303000039000008830400004100000022050000290000002306000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d0000001e010000290000000001010433000000240010006b0000048a0000413d000003230000013d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008490020009c0000009b0000213d00000000042300490000084c0040009c0000009b0000213d000000440040008c0000009b0000413d000000c005000039000000400050043f0000000404200039000000000641034f000000000606043b000008490060009c0000009b0000213d00000000062600190000002307600039000000000037004b0000009b0000813d0000000407600039000000000771034f000000000807043b000008490080009c000000a10000213d00000005078002100000003f097000390000084a099001970000084e0090009c000000a10000213d000000c009900039000000400090043f000000c00080043f00000024066000390000000007670019000000000037004b0000009b0000213d000000000008004b000004fa0000613d000000000861034f000000000808043b000008480080009c0000009b0000213d000000200550003900000000008504350000002006600039000000000076004b000004f10000413d000000c005000039000000800050043f0000002004400039000000000441034f000000000404043b000008490040009c0000009b0000213d00000000022400190000002304200039000000000034004b00000000050000190000084b050080410000084b04400197000000000004004b00000000060000190000084b060040410000084b0040009c000000000605c019000000000006004b0000009b0000c13d0000000404200039000000000441034f000000000404043b000008490040009c000000a10000213d00000005054002100000003f065000390000084a06600197000000400700043d0000000006670019002200000007001d000000000076004b00000000070000390000000107004039000008490060009c000000a10000213d0000000100700190000000a10000c13d000000400060043f00000022060000290000000004460436002100000004001d00000024022000390000000004250019000000000034004b0000009b0000213d000000000042004b000005340000813d0000002203000029000000000521034f000000000505043b000008480050009c0000009b0000213d000000200330003900000000005304350000002002200039000000000042004b0000052b0000413d0000002201000029000000a00010043f000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d00000022010000290000000001010433000000000001004b000011730000c13d000000800100043d002100000001001d0000000021010434002200000002001d000000000001004b000003230000613d002400000000001d00000024010000290000000501100210000000220110002900000000010104330000084801100198000017a00000613d002300000001001d000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a000000000001004b000005780000c13d0000000201000039000000000101041a000008490010009c000000a10000213d00000001021000390000000203000039000000000023041b000008570110009a0000002302000029000000000021041b000000000103041a002000000001001d000000000020043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002002000029000000000021041b000000400100043d00000023020000290000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d0200003900000001030000390000085804000041210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d00000021010000290000000001010433000000240010006b000005460000413d000003230000013d000000440030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b002400000002001d000008490020009c0000009b0000213d0000002401100370000000000101043b000008490010009c0000009b0000213d00000000011300490000084c0010009c0000009b0000213d000000a40010008c0000009b0000413d0000002401000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400500043d0000084f0050009c000000a10000213d000000000101043b0000022002500039000000400020043f000000000401041a000000d80240027000000843022001970000014003500039002300000003001d0000000000230435000000c8024002700000ffff0220018f0000012003500039002200000003001d0000000000230435000000b8024002700000ffff0220018f000001000f50003900000000002f0435000000a8024002700000ffff0220018f000000e00e50003900000000002e043500000088024002700000084302200197000000c00d50003900000000002d043500000078024002700000ffff0220018f000000a00b50003900000000002b043500000058024002700000084302200197000000800c50003900000000002c04350000003802400270000008430220019700000060095000390000000000290435000000180240027000000843022001970000004003500039000000000023043500000008024002700000ffff0620018f00000020025000390000000000620435000000ff064001900000000004000039000000010400c03900000000004504350000000101100039000000000101041a00000160075000390000084304100197002100000007001d000000000047043500000038041002100000086107400197000002000450003900000000007404350000085f001001980000000007000039000000010700c039000001e00a50003900000000007a043500000080071002700000084307700197000001c008500039002000000008001d000000000078043500000040071002700000084907700197000001a00850003900000000007804350000018005500039000000200110027000000843011001970000000000150435000000000006004b00000bb40000c13d000000400100043d000008cd020000410000000000210435000000040210003900000024030000290000000000320435000008430010009c0000084301008041000000400110021000000877011001c70000210a00010430000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000401100370000000000101043b000008480010009c0000009b0000213d000000c002000039000000400020043f000000800000043f000000a00000043f000000000010043f0000000601000039000000200010043f210820d30000040f002400000001001d000000c00100003921081b930000040f0000002401000029000000000101041a0000084802100197000000c00020043f000000a001100270000000ff0110018f000000e00010043f000000400100043d002400000001001d000000c00200003921081c0d0000040f00000a8d0000013d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000502043b000008490050009c0000009b0000213d0000002302500039000000000032004b0000009b0000813d0000000402500039000000000221034f000000000202043b000008490020009c000000a10000213d00000005042002100000003f044000390000084a04400197000008b00040009c000000a10000213d0000008004400039000000400040043f000000800020043f00000240022000c900000024042001bf0000000002540019000000000032004b0000009b0000213d000000240040008c00000cff0000c13d000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d000000800100043d000000000001004b000003230000613d002400000000001d000000240010006c000000240100002900001ad60000a13d0000000501100210000000a00110003900000000010104330000000012010434000008490420019800000f1a0000613d00000000030104330000018001300039002300000001001d0000000001010433000008430110019800000f1a0000613d0000020002300039002200000002001d00000000020204330000086102200197000008620020009c00000f1a0000c13d0000016002300039002100000002001d0000000002020433000008450020019800000f1a0000613d0000006002300039002000000002001d00000000020204330000084302200197000000000021004b00000f1a0000213d001e00000003001d000000000040043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039001f00000004001d210821030000040f00000001002001900000009b0000613d0000001f06000029000000000101043b0000000101100039000000000101041a0000001e050000290000000042050434000000000002004b0000000003000039000000010300c039000000400200043d0000000003320436001d00000004001d00000000040404330000ffff0440018f00000000004304350000004003500039001c00000003001d0000000003030433000008430330019700000040042000390000000000340435000000200300002900000000030304330000084303300197000000600420003900000000003404350000008003500039001b00000003001d0000000003030433000008430330019700000080042000390000000000340435000000a003500039001a00000003001d00000000030304330000ffff0330018f000000a0042000390000000000340435000000c003500039001900000003001d00000000030304330000084303300197000000c0042000390000000000340435000000e003500039001800000003001d00000000030304330000ffff0330018f000000e00420003900000000003404350000010003500039001700000003001d00000000030304330000ffff0330018f000001000420003900000000003404350000012003500039001500000003001d00000000030304330000ffff0330018f000001200420003900000000003404350000014003500039001300000003001d00000000030304330000084303300197000001400420003900000000003404350000002103000029000000000303043300000843033001970000016004200039000000000034043500000023030000290000000003030433000008430330019700000180042000390000000000340435000001a003500039001600000003001d00000000030304330000084903300197000001a0042000390000000000340435000001c003500039001400000003001d00000000030304330000084303300197000001c0042000390000000000340435000001e003500039001200000003001d0000000003030433000000000003004b0000000003000039000000010300c039000001e004200039000000000034043500000022030000290000000003030433000008610330019700000200042000390000000000340435000008430020009c000008430200804100000040022002100000086300100198000006fc0000613d0000000001000414000008430010009c0000084301008041000000c001100210000000000121019f000008b1011001c70000800d0200003900000002030000390000086404000041000007050000013d0000000001000414000008430010009c0000084301008041000000c001100210000000000121019f000008b1011001c70000800d02000039000000020300003900000865040000410000000005060019210820fe0000040f00000001002001900000009b0000613d0000001f01000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d0000001e020000290000000002020433000000000002004b000000000101043b000000000201041a0000086602200197000000010220c1bf0000001d03000029000000000303043300000008033002100000086703300197000000000232019f0000001c03000029000000000303043300000018033002100000086803300197000000000232019f0000002003000029000000000303043300000038033002100000086903300197000000000232019f0000001b03000029000000000303043300000058033002100000086a03300197000000000232019f0000001a03000029000000000303043300000078033002100000086b03300197000000000232019f0000001903000029000000000303043300000088033002100000086c03300197000000000232019f00000018030000290000000003030433000000a8033002100000086d03300197000000000232019f00000017030000290000000003030433000000b8033002100000086e03300197000000000232019f00000015030000290000000003030433000000c8033002100000086f03300197000000000232019f00000013030000290000000003030433000000d8033002100000087003300197000000000232019f000000000021041b0000000101100039000000210200002900000000020204330000084302200197000000000301041a0000087103300197000000000223019f0000002303000029000000000303043300000020033002100000087203300197000000000232019f0000001603000029000000000303043300000040033002100000087303300197000000000232019f0000001403000029000000000303043300000080033002100000087403300197000000000232019f00000012030000290000000003030433000000000003004b00000875030000410000000003006019000000000232019f0000002203000029000000000303043300000038033002700000086303300197000000000232019f000000000021041b0000002402000029002400010020003d000000800100043d000000240010006b000006580000413d000003230000013d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b0000009b0000813d0000000404200039000000000141034f000000000101043b002100000001001d000008490010009c0000009b0000213d002000240020003d000000210100002900000005021002100000002001200029000000000031004b0000009b0000213d0000003f012000390000084a03100197000008b00030009c000000a10000213d0000008001300039000000400010043f0000002104000029000000800040043f000000000004004b00000d960000c13d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b000007ae0000613d000000a0040000390000000005000019000000004604043400000000760604340000085006600197000000000662043600000000070704330000084307700197000000000076043500000040022000390000000105500039000000000035004b000007a30000413d0000000002120049000008430020009c00000843020080410000006002200210000008430010009c00000843010080410000004001100210000000000112019f000021090001042e000000440030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008490020009c0000009b0000213d0000002401100370000000000101043b002400000001001d000008480010009c0000009b0000213d0000014001000039000000400010043f000000800000043f000000a00000043f000000c00000043f000000e00000043f000001000000043f000001200000043f000000000020043f0000000901000039000000200010043f210820d30000040f0000002402000029000000000020043f000000200010043f210820d30000040f002400000001001d000001400100003921081ba90000040f0000002401000029000000000101041a0000084302100197000001400020043f00000020021002700000084302200197000001600020043f00000040021002700000ffff0220018f000001800020043f00000050021002700000084302200197000001a00020043f00000070021002700000084302200197000001c00020043f000008b8001001980000000001000039000000010100c039000001e00010043f000000400100043d002400000001001d000001400200003921081bef0000040f00000a8d0000013d0000000001000416000000000001004b0000009b0000c13d0000000a02000039000000000102041a000000800010043f000000000020043f000000000001004b00000a7c0000c13d000000200200003900000a870000013d000000240030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b0000009b0000813d0000000404200039000000000441034f000000000504043b000008490050009c000000a10000213d00000005045002100000003f044000390000084a04400197000008b00040009c000000a10000213d0000008004400039000000400040043f000000800050043f000000240220003900000060045000c90000000004240019000000000034004b0000009b0000213d000000000005004b00000dc30000c13d000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d000000800100043d000000000001004b000003230000613d002400000000001d00000024010000290000000501100210000000a001100039000000000101043300000020021000390000000002020433002200000002001d00000000010104330000084801100197002300000001001d000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000201041a0000085e02200197000000220500002900000020035000390000000004030433000000a0044002100000085f04400197000000000242019f00000000040504330000084804400197000000000242019f000000000021041b000000400100043d00000000024104360000000003030433000000ff0330018f0000000000320435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000853011001c70000800d02000039000000020300003900000860040000410000002305000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d000000800100043d000000240010006b000008250000413d000003230000013d000000440030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b000008490020009c0000009b0000213d0000002305200039000000000035004b0000009b0000813d0000000405200039000000000551034f000000000605043b000008490060009c000000a10000213d00000005056002100000003f075000390000084a07700197000008b00070009c000000a10000213d0000008007700039000000400070043f000000800060043f00000024022000390000000005250019000000000035004b0000009b0000213d000000000006004b0000088b0000613d000000000621034f000000000606043b000008480060009c0000009b0000213d000000200440003900000000006404350000002002200039000000000052004b000008820000413d0000002402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b00000000050000190000084b050080410000084b04400197000000000004004b00000000060000190000084b060040410000084b0040009c000000000605c019000000000006004b0000009b0000c13d0000000404200039000000000441034f000000000404043b000008490040009c000000a10000213d00000005054002100000003f065000390000084a06600197000000400700043d0000000006670019002000000007001d000000000076004b00000000070000390000000107004039000008490060009c000000a10000213d0000000100700190000000a10000c13d000000400060043f00000020060000290000000006460436001f00000006001d00000024022000390000000005250019000000000035004b0000009b0000213d000000000004004b000008c10000613d0000002003000029000000000421034f000000000404043b000008480040009c0000009b0000213d000000200330003900000000004304350000002002200039000000000052004b000008b80000413d000000000100041a00000848011001970000000002000411000000000012004b00000ba30000c13d000000800100043d000000000001004b000010120000c13d00000020010000290000000001010433000000000001004b000003230000613d002400000000001d000008d50000013d0000002402000029002400010020003d00000020010000290000000001010433000000240010006b000003230000813d000000240100002900000005011002100000001f01100029002200000001001d00000000010104330000084801100197002300000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000301041a000000000003004b000008cf0000613d0000000a01000039000000000201041a000000000002004b000015cd0000613d000000010130008a000000000023004b0000090e0000613d000000000012004b00001ad60000a13d0000085c0130009a0000085c0220009a000000000202041a000000000021041b000000000020043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039002100000003001d210821030000040f000000210300002900000001002001900000009b0000613d000000000101043b000000000031041b0000000a01000039000000000301041a000000000003004b00001adc0000613d000000010130008a0000085c0230009a000000000002041b0000000a02000039000000000012041b0000002301000029000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b00000020010000290000000001010433000000240010006c00001ad60000a13d0000002201000029000000000101043300000000020004140000084805100197000008430020009c0000084302008041000000c0012002100000085a011001c70000800d0200003900000002030000390000085d04000041210820fe0000040f0000000100200190000008cf0000c13d0000009b0000013d000000640030008c0000009b0000413d0000000002000416000000000002004b0000009b0000c13d0000000402100370000000000202043b001b00000002001d000008490020009c0000009b0000213d0000002402100370000000000202043b002400000002001d000008490020009c0000009b0000213d00000024020000290000002302200039000000000032004b0000009b0000813d00000024020000290000000402200039000000000221034f000000000202043b002100000002001d000008490020009c0000009b0000213d00000024020000290000002405200039000000210200002900000005022002100000000002520019000000000032004b0000009b0000213d0000004402100370000000000202043b000008490020009c0000009b0000213d0000002304200039000000000034004b0000009b0000813d0000000404200039000000000141034f000000000101043b002000000001001d000008490010009c0000009b0000213d001f00240020003d000000200100002900000006011002100000001f01100029000000000031004b0000009b0000213d0000001b01000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039001a00000005001d210821030000040f0000001a0b00002900000001002001900000009b0000613d000000210000006b000003230000613d000000000101043b0000000101100039000000000101041a001e08630010019b000000200c00008a000000000d000019000009830000013d000000010dd000390000002100d0006c000003230000813d0000002000d0006c00001ad60000813d0000000601d002100000001f011000290000000202000367000000000112034f000000000101043b002300000001001d000008480010009c0000009b0000213d0000000501d002100022000000b1001d0000002201200360000000000101043b0000000003000031000000240430006a000000a30440008a0000084b054001970000084b06100197000000000756013f000000000056004b00000000050000190000084b05004041000000000041004b00000000060000190000084b060080410000084b0070009c000000000506c019000000000005004b0000009b0000c13d0000000005b100190000004006500039000000000662034f000000000606043b00000000075300490000001f0770008a0000084b087001970000084b09600197000000000a89013f000000000089004b00000000080000190000084b08004041000000000076004b00000000070000190000084b070080410000084b00a0009c000000000807c019000000000008004b0000009b0000c13d0000000005560019000000000652034f000000000906043b000008490090009c0000009b0000213d00000000069300490000002005500039000000000065004b00000000070000190000084b070020410000084b066001970000084b05500197000000000865013f000000000065004b00000000050000190000084b050040410000084b0080009c000000000507c019000000000005004b0000009b0000c13d000000210090008c000009f60000413d0000001b01000029000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039001d0000000d001d001c00000009001d210821030000040f00000001002001900000009b0000613d000000000101043b0000002302000029000000000020043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f0000001c030000290000001d0d000029000000200c00008a0000001a0b00002900000001002001900000009b0000613d000000000101043b000000000101041a00000070011002700000084301100197000000000013004b000011d90000213d0000000003000031000000240130006a00000002020003670000002205200360000000a30410008a000000000105043b000000000041004b00000000050000190000084b050080410000084b044001970000084b06100197000000000746013f000000000046004b00000000040000190000084b040040410000084b0070009c000000000405c019000000000004004b0000009b0000c13d0000000001b100190000002004100039000000000442034f000000000404043b00000000051300490000001f0550008a0000084b065001970000084b07400197000000000867013f000000000067004b00000000060000190000084b06004041000000000054004b00000000050000190000084b050080410000084b0080009c000000000605c019000000000006004b0000009b0000c13d0000000001140019000000000412034f000000000404043b000008490040009c0000009b0000213d000000000543004900000020061000390000084b015001970000084b07600197000000000817013f000000000017004b00000000010000190000084b01004041000000000056004b00000000050000190000084b050020410000084b0080009c000000000105c019000000000001004b0000009b0000c13d0000001f014000390000000001c1016f0000003f011000390000000005c1016f000000400100043d0000000005510019000000000015004b00000000070000390000000107004039000008490050009c000000a10000213d0000000100700190000000a10000c13d000000400050043f00000000054104360000000007640019000000000037004b0000009b0000213d000000000362034f0000000006c40170000000000265001900000a460000613d000000000703034f0000000008050019000000007907043c0000000008980436000000000028004b00000a420000c13d0000001f0740019000000a530000613d000000000363034f0000000306700210000000000702043300000000076701cf000000000767022f000000000303043b0000010006600089000000000363022f00000000036301cf000000000373019f0000000000320435000000000245001900000000000204350000001e02000029000008cf0020009c000009800000c13d0000000002010433000000200020008c00000a5f0000c13d0000000002050433000004000220008a000008b60020009c000009800000a13d000000400400043d002400000004001d000008b7020000410000000000240435000000040240003900000020030000390000000000320435000000240240003921081bc60000040f00000024020000290000000001210049000008430010009c0000084301008041000008430020009c000008430200804100000060011002100000004002200210000000000121019f0000210a000104300000088801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000008d801000041000000c40010043f000008b3010000410000210a00010430000000a004000039000008ce0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b00000a7f0000413d000000600250008a000000800100003921081bb40000040f000000400100043d002400000001001d000000800200003921081bd80000040f00000024020000290000000001210049000008430010009c00000843010080410000006001100210000008430020009c00000843020080410000004002200210000000000121019f000021090001042e0000088801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000008b201000041000000c40010043f000008b3010000410000210a000104300000000101000039000000000201041a0000085102200197000000000262019f000000000021041b0000000001000414000008430010009c0000084301008041000000c0011002100000085a011001c70000800d020000390000000303000039000008b404000041210820fe0000040f00000001002001900000009b0000613d000003230000013d00000023011000f9000002dc0000013d0000001e04000029002400040040003d00000002020003670000002401200360000000000301043b00000000010000310000000004410049000000230440008a0000084b054001970000084b06300197000000000756013f000000000056004b00000000050000190000084b05004041000000000043004b00000000040000190000084b040080410000084b0070009c000000000504c019000000000005004b0000009b0000c13d0000002403300029000000000232034f000000000202043b001b00000002001d000008490020009c0000009b0000213d0000001b02000029000000060220021000000000012100490000002002300039000000000012004b00000000030000190000084b030020410000084b011001970000084b02200197000000000412013f000000000012004b00000000010000190000084b010040410000084b0040009c000000000103c019000000000001004b0000009b0000c13d000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f0000000100200190000015770000613d000000000101043b001c00000001001d001d08430010019b0000001b0000006b00000f720000c13d0000002401000029001b00200010003d00000002020003670000001b01200360000000000301043b00000000010000310000001e0410006a000000230440008a0000084b054001970000084b06300197000000000756013f000000000056004b00000000050000190000084b05004041000000000043004b00000000040000190000084b040080410000084b0070009c000000000504c019000000000005004b0000009b0000c13d0000002403300029000000000232034f000000000202043b001a00000002001d000008490020009c0000009b0000213d0000001a02000029000000060220021000000000012100490000002002300039000000000012004b00000000030000190000084b030020410000084b011001970000084b02200197000000000412013f000000000012004b00000000010000190000084b010040410000084b0040009c000000000103c019000000000001004b0000009b0000c13d0000001a0000006b000003230000613d000000000900001900000002010003670000001b02100360000000000302043b00000000020000310000001e0420006a000000230440008a0000084b054001970000084b06300197000000000756013f000000000056004b00000000050000190000084b05004041000000000043004b00000000040000190000084b040080410000084b0070009c000000000504c019000000000005004b0000009b0000c13d0000002404300029000000000341034f000000000303043b000008490030009c0000009b0000213d0000000605300210000000000552004900000020044000390000084b065001970000084b07400197000000000867013f000000000067004b00000000060000190000084b06004041000000000054004b00000000050000190000084b050020410000084b0080009c000000000605c019000000000006004b0000009b0000c13d000000000039004b00001ad60000813d0000000603900210000000000334001900000000023200490000084c0020009c0000009b0000213d000000400020008c0000009b0000413d000000400400043d0000084d0040009c000000a10000213d0000004002400039000000400020043f000000000231034f000000000202043b000008490020009c0000009b0000213d00000000052404360000002002300039000000000121034f000000000101043b000008500010009c0000009b0000213d002300000005001d0000000000150435000000400300043d0000084d0030009c000000a10000213d0000004002300039000000400020043f002000000003001d00000000021304360000001d01000029001f00000002001d000000000012043500000000010404330000084901100197000000000010043f0000000401000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039002100000009001d002200000004001d210821030000040f0000002204000029000000010020019000000023050000290000009b0000613d0000002002000029000000000202043300000850022001970000001f030000290000000003030433000000e003300210000000000223019f000000000101043b000000000021041b00000000020404330000000001050433000000400300043d00000020043000390000001c05000029000000000054043500000850011001970000000000130435000008430030009c000008430300804100000040013002100000000003000414000008430030009c0000084303008041000000c003300210000000000113019f00000853011001c700000849052001970000800d020000390000000203000039000008db04000041210820fe0000040f000000210900002900000001002001900000009b0000613d00000001099000390000001a0090006c00000b1f0000413d000003230000013d000000400100043d0000004402100039000008b203000041000000000032043500000024021000390000001603000039000000000032043500000888020000410000000000210435000000040210003900000020030000390000000000320435000008430010009c0000084301008041000000400110021000000889011001c70000210a00010430001f0000000f001d001b0000000e001d001c0000000d001d001e0000000c001d001d0000000b001d001700000005001d00180000000a001d001900000009001d001a00000008001d00000002050003670000002401500370000000000801043b0000004407800039000000000175034f000000000b01043b00000000060000310000000001860049000000230110008a0000084b091001970000084b0ab00197000000000c9a013f00000000009a004b000000000a0000190000084b0a00404100000000001b004b000000000d0000190000084b0d0080410000084b00c0009c000000000a0dc01900000000000a004b0000009b0000c13d000000040a8000390000000008ab0019000000000b85034f000000000b0b043b00160000000b001d0000084900b0009c0000009b0000213d000000160b000029000000060bb00210000000000bb6004900000020088000390000000000b8004b000000000c0000190000084b0c0020410000084b0bb001970000084b08800197000000000db8013f0000000000b8004b00000000080000190000084b080040410000084b00d0009c00000000080cc019000000000008004b0000009b0000c13d000000200870008a000000000785034f000000000707043b0000084b0b700197000000000c9b013f00000000009b004b000000000b0000190000084b0b004041000000000017004b000000000d0000190000084b0d0080410000084b00c0009c000000000b0dc01900000000000b004b0000009b0000c13d000000000ba700190000000007b5034f000000000707043b000008490070009c0000009b0000213d000000000c760049000000200bb000390000000000cb004b000000000d0000190000084b0d0020410000084b0cc001970000084b0bb00197000000000ecb013f0000000000cb004b000000000b0000190000084b0b0040410000084b00e0009c000000000b0dc01900000000000b004b0000009b0000c13d000000200880008a000000000b85034f000000000b0b043b0000084b0cb00197000000000d9c013f00000000009c004b00000000090000190000084b0900404100000000001b004b00000000010000190000084b010080410000084b00d0009c000000000901c019000000000009004b0000009b0000c13d0000000001ab0019000000000915034f000000000909043b000008490090009c0000009b0000213d000000000a960049000000200b1000390000084b01a001970000084b0cb00197000000000d1c013f00000000001c004b00000000010000190000084b010040410000000000ab004b000000000a0000190000084b0a0020410000084b00d0009c00000000010ac019000000000001004b0000009b0000c13d0000001f01900039000008e1011001970000003f01100039000008e10a100197000000400100043d000000000aa1001900000000001a004b000000000c000039000000010c0040390000084900a0009c000000a10000213d0000000100c00190000000a10000c13d0000004000a0043f000000000a910436000000000cb9001900000000006c004b0000009b0000213d0015000000b50353000008e10c9001980000001f0d90018f0000000006ca001900000c4e0000613d000000150e00035f000000000f0a001900000000eb0e043c000000000fbf043600000000006f004b00000c4a0000c13d00000000000d004b00000c5b0000613d000000150bc0035f000000030cd00210000000000d060433000000000dcd01cf000000000dcd022f000000000b0b043b000001000cc00089000000000bcb022f000000000bcb01cf000000000bdb019f0000000000b6043500000000069a0019000000000006043500000000030304330000084303300197000000000037004b000012160000a13d000000400100043d00000024021000390000000000720435000008cc02000041000000000021043500000004021000390000000000320435000008430010009c0000084301008041000000400110021000000882011001c70000210a00010430000000a006000039002100240030009200000c760000013d00000024020000290000000000a2043500000000068604360000002004400039000000220040006c000004500000813d000000000241034f000000000202043b000008490020009c0000009b0000213d000000230220002900000021052000690000084c0050009c0000009b0000213d000000400050008c0000009b0000413d000000400800043d0000084d0080009c000000a10000213d0000004005800039000000400050043f0000002405200039000000000751034f000000000707043b000008490070009c0000009b0000213d0000000007780436002400000007001d0000002005500039000000000551034f000000000505043b000008490050009c0000009b0000213d00000000022500190000004305200039000000000035004b00000000070000190000084b070080410000084b05500197000000000005004b00000000090000190000084b090040410000084b0050009c000000000907c019000000000009004b0000009b0000c13d0000002405200039000000000551034f000000000c05043b0000084900c0009c000000a10000213d0000000505c002100000003f055000390000084a05500197000000400a00043d000000000b5a00190000000000ab004b000000000500003900000001050040390000084900b0009c000000a10000213d0000000100500190000000a10000c13d0000004000b0043f0000000000ca0435000000440b200039000000e002c000c9000000000cb2001900000000003c004b0000009b0000213d0000000000cb004b00000c700000813d000000000d0a00190000000002b300490000084c0020009c0000009b0000213d000000e00020008c0000009b0000413d000000400e00043d0000084d00e0009c000000a10000213d0000004002e00039000000400020043f0000000002b1034f000000000202043b000008480020009c0000009b0000213d000000000f2e0436000000400200043d0000084e0020009c000000a10000213d000000c005200039000000400050043f0000002005b00039000000000751034f000000000707043b000008430070009c0000009b0000213d00000000077204360000002005500039000000000951034f000000000909043b000008430090009c0000009b0000213d00000000009704350000002005500039000000000751034f000000000707043b0000ffff0070008c0000009b0000213d000000400920003900000000007904350000002005500039000000000751034f000000000707043b000008430070009c0000009b0000213d000000600920003900000000007904350000002005500039000000000751034f000000000707043b000008430070009c0000009b0000213d000000800920003900000000007904350000002005500039000000000551034f000000000505043b000000000005004b0000000007000039000000010700c039000000000075004b0000009b0000c13d000000200dd00039000000a007200039000000000057043500000000002f04350000000000ed0435000000e00bb000390000000000cb004b00000cb90000413d00000c700000013d000000a004000039000000240550003900000000065300490000084c0060009c0000009b0000213d000002400060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f000000000751034f000000000707043b000008490070009c0000009b0000213d0000000007760436000000400800043d0000084f0080009c000000a10000213d0000022009800039000000400090043f0000002009500039000000000a91034f000000000a0a043b00000000000a004b000000000b000039000000010b00c0390000000000ba004b0000009b0000c13d000000000aa804360000002009900039000000000b91034f000000000b0b043b0000ffff00b0008c0000009b0000213d0000000000ba04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000000400b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000000600b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000000800b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000ffff00a0008c0000009b0000213d000000a00b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000000c00b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000ffff00a0008c0000009b0000213d000000e00b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000ffff00a0008c0000009b0000213d000001000b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000ffff00a0008c0000009b0000213d000001200b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000001400b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000001600b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000001800b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084900a0009c0000009b0000213d000001a00b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b0000084300a0009c0000009b0000213d000001c00b8000390000000000ab04350000002009900039000000000a91034f000000000a0a043b00000000000a004b000000000b000039000000010b00c0390000000000ba004b0000009b0000c13d000001e00b8000390000000000ab04350000002009900039000000000991034f000000000909043b00000850009001980000009b0000c13d000002000a80003900000000009a0435000000000087043500000000046404360000024005500039000000000025004b00000d010000413d0000064f0000013d0000084e0030009c000000a10000213d00000000030000190000004004100039000000400040043f000000200410003900000000000404350000000000010435000000a00430003900000000001404350000002003300039000000000023004b00000dea0000813d000000400100043d0000084d0010009c00000d990000a13d000000a10000013d000000a004000039000000240550003900000000065300490000084c0060009c0000009b0000213d000000400060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f000000000751034f000000000707043b000008480070009c0000009b0000213d00000000077604360000002008500039000000000881034f000000000808043b000008490080009c0000009b0000213d000000000087043500000000046404360000004005500039000000000025004b00000da90000413d0000003b0000013d000000a00500003900000000062300490000084c0060009c0000009b0000213d000000600060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f000000000721034f000000000707043b000008480070009c0000009b0000213d0000000007760436000000400800043d0000084d0080009c000000a10000213d0000004009800039000000400090043f0000002009200039000000000a91034f000000000a0a043b0000084800a0009c0000009b0000213d000000000aa804360000002009900039000000000991034f000000000909043b000000ff0090008c0000009b0000213d00000000009a0435000000000087043500000000056504360000006002200039000000000042004b00000dc40000413d0000081c0000013d0000000002000019002300000002001d0000000502200210002200000002001d00000020012000290000000201100367000000000101043b002400000001001d000008480010009c0000009b0000213d000000400100043d0000084d0010009c000000a10000213d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000002401000029000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400200043d0000084d0020009c000000a10000213d000000000101043b0000004003200039000000400030043f000000000101041a00000848031001980000000003320436000000a001100270000000ff0110018f000000000013043500000e2c0000613d002400000003001d000000400100043d0000084d0010009c000000a10000213d0000004003100039000000400030043f0000002003100039000000000003043500000000000104350000000002020433000000400b00043d000008ba0100004100000000051b043600000000010004140000084802200197000000040020008c00000e440000c13d0000000103000031000000a00030008c000000a004000039000000000403401900000e730000013d0000002401000029000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400300043d0000084d0030009c000000a10000213d000000000101043b0000004002300039000000400020043f000000000101041a00000850021001970000000000230435000000e00110027000000f060000013d001d00000005001d0000084300b0009c000008430300004100000000030b40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c7001e00000002001d001f0000000b001d210821030000040f0000001f0b000029000000000301001900000060033002700000084303300197000000a00030008c000000a0040000390000000004034019000000e00640019000000000056b001900000e610000613d000000000701034f00000000080b0019000000007907043c0000000008980436000000000058004b00000e5d0000c13d0000001f0740019000000e6e0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0000000100200190000011410000613d0000001e020000290000001d050000290000001f01400039000001e00110018f000000000ab1001900000000001a004b000000000100003900000001010040390000084900a0009c000000a10000213d0000000100100190000000a10000c13d0000004000a0043f000000a00030008c0000009b0000413d00000000010b0433000008bb0010009c0000009b0000213d0000008001b000390000000001010433000008bb0010009c0000009b0000213d00000000060504330000084c0060009c000011330000213d000008bc0100004100000000001a04350000000001000414000000040020008c000000200400003900000ebd0000613d001e00000006001d0000084300a0009c000008430300004100000000030a40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c7001f0000000a001d210821030000040f0000001f0a000029000000000301001900000060033002700000084303300197000000200030008c00000020040000390000000004034019000000200640019000000000056a001900000eac0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b00000ea80000c13d0000001f0740019000000eb90000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00000001002001900000114d0000613d0000001e060000290000001f01400039000000600110018f0000000005a10019000008490050009c000000a10000213d000000400050043f000000200030008c0000009b0000413d00000000010a0433000000ff0010008c0000009b0000213d00000024020000290000000002020433000000ff0220018f0000000002120019000000ff0020008c000015cd0000213d000000240120008c00000ee20000213d000000010100003900000edb0000613d00000024022000890000000a03000039000000010020019000000000043300a9000000010300603900000000011300a90000000102200272000000000304001900000ed40000c13d000000000006004b00000f160000613d00000000026100a900000000036200d9000000000013004b00000ef00000613d000015cd0000013d0000004d0010008c000015cd0000213d00000001020000390000000a03000039000000010010019000000000043300a9000000010300603900000000022300a90000000101100272000000000304001900000ee60000c13d000000000002004b000003ef0000613d00000000022600d9000008500020009c0000113a0000213d0000084d0050009c000000a10000213d0000004001500039000000400010043f002400000005001d0000000000250435000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f0000000100200190000015770000613d000000000101043b0000084301100197000000240300002900000020023000390000000000120435000000800100043d0000002302000029000000000021004b00001ad60000a13d0000002201000029000000a0011000390000000000310435000000800100043d000000000021004b00001ad60000a13d0000000102200039000000210020006c00000deb0000413d0000105c0000013d00000000020000190000084d0050009c00000ef40000a13d000000a10000013d000000400100043d00000876020000410000000000210435000000040210003900000000004204350000060a0000013d0000002401000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000400200043d0000084d0020009c000000a10000213d0000000101100039000000000101041a0000004003200039000000400030043f000000200320003900000000000304350000000000020435000000210000006b0000105e0000c13d000000400300043d0000084d0030009c000000a10000213d000000200110027000000843011001970000004002300039000000400020043f00000000001304350000000001000019000000000200001900000020043000390000000000240435000000400600043d0000002002600039000008c60500004100000000005204350000000002030433000000240360003900000000002304350000000002040433000000000002004b0000000002000039000000010200c03900000044036000390000000000230435000000440200003900000000002604350000000005060019000008b00060009c000000a10000213d002300000005001d0000008004500039002400000004001d000000400040043f000000c00250003900000060030000390000000000320435000000010110018f000000a002500039000000000012043500000022010000290000000000140435000000e002500039000000000105001921081bc60000040f000000230110006a000000800110008a0000002402000029000008430020009c0000084302008041000008430010009c000008430100804100000040022002100000006001100210000000000121019f000021090001042e000000000900001900000002010003670000002402100360000000000302043b00000000020000310000001e0420006a000000230440008a0000084b054001970000084b06300197000000000756013f000000000056004b00000000050000190000084b05004041000000000043004b00000000040000190000084b040080410000084b0070009c000000000504c019000000000005004b0000009b0000c13d0000002404300029000000000341034f000000000303043b000008490030009c0000009b0000213d0000000605300210000000000552004900000020044000390000084b065001970000084b07400197000000000867013f000000000067004b00000000060000190000084b06004041000000000054004b00000000050000190000084b050020410000084b0080009c000000000605c019000000000006004b0000009b0000c13d000000000039004b00001ad60000813d0000000603900210000000000334001900000000023200490000084c0020009c0000009b0000213d000000400020008c0000009b0000413d000000400400043d0000084d0040009c000000a10000213d0000004002400039000000400020043f000000000231034f000000000202043b000008480020009c0000009b0000213d00000000052404360000002002300039000000000121034f000000000101043b000008500010009c0000009b0000213d002300000005001d0000000000150435000000400300043d0000084d0030009c000000a10000213d0000004002300039000000400020043f002000000003001d00000000021304360000001d01000029001f00000002001d000000000012043500000000010404330000084801100197000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039002100000009001d002200000004001d210821030000040f0000002204000029000000010020019000000023050000290000009b0000613d0000002002000029000000000202043300000850022001970000001f030000290000000003030433000000e003300210000000000223019f000000000101043b000000000021041b00000000020404330000000001050433000000400300043d00000020043000390000001c05000029000000000054043500000850011001970000000000130435000008430030009c000008430300804100000040013002100000000003000414000008430030009c0000084303008041000000c003300210000000000113019f00000853011001c700000848052001970000800d020000390000000203000039000008da04000041210820fe0000040f000000210900002900000001002001900000009b0000613d00000001099000390000001b0090006c00000f730000413d00000af00000013d0000001d0500002900000000062300490000084c0060009c0000009b0000213d000000400060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f000000000721034f000000000707043b000008490070009c0000009b0000213d00000000077604360000002008200039000000000881034f000000000808043b000008480080009c0000009b0000213d000000000087043500000000056504360000004002200039000000000042004b00000ff80000413d0000047d0000013d0000000002000019000010190000013d00000024020000290000000102200039000000800100043d000000000012004b000008c90000813d002400000002001d0000000501200210000000a001100039002200000001001d00000000010104330000084801100197002300000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a000000000001004b000010140000c13d0000000a03000039000000000103041a000008490010009c000000a10000213d0000000102100039000000000023041b000008590110009a0000002302000029000000000021041b000000000103041a002100000001001d000000000020043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002102000029000000000021041b000000800100043d000000240010006c00001ad60000a13d0000002201000029000000000101043300000000020004140000084805100197000008430020009c0000084302008041000000c0012002100000085a011001c70000800d0200003900000002030000390000085b04000041210820fe0000040f0000000100200190000010140000c13d0000009b0000013d000000400100043d0000079a0000013d000000200100002900000020051000390000000204000367000000000154034f000000000301043b0000002101000029000000040610008c0000009b0000413d00000021010000290000001b01100039000008e1011001970000003f01100039000008e102100197000000400100043d0000000002210019000000000012004b00000000080000390000000108004039000008490020009c000000a10000213d0000000100800190000000a10000c13d000000400020043f00000000026104360000001f09000029000000000090007c0000009b0000213d0000000405500039000000000554034f000008e1076001980000001f0660018f0000000004720019000010850000613d000000000805034f0000000009020019000000008a08043c0000000009a90436000000000049004b000010810000c13d0000086103300197000000000006004b000010930000613d000000000575034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000021041000290000001c044000390000000000040435000008c60030009c000012020000613d000008c70030009c000016e40000c13d00000000010104330000084c0010009c0000009b0000213d000000200010008c0000009b0000413d000000400300043d0000084d0030009c000000a10000213d000000000102043300000f3f0000013d0000000005000019000010a90000013d0000000105500039000000000015004b000004850000813d0000000502500210000000a00220003900000000030204330000002002300039001f00000002001d00000000020204330000000004020433000000000004004b000010a60000613d001c00000005001d0000000001030433002308490010019b0000000003000019002000000003001d00000005013002100000000001120019000000200110003900000000010104330000000021010434002408480010019b0000000001020433002100000001001d0000008001100039002200000001001d000000000101043300000843011001970000001f0010008c0000116b0000a13d0000002301000029000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000000024030000290000009b0000613d000000000101043b000000000030043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000240600002900000001002001900000009b0000613d000000000101043b000000000201041a0000087a02200197000000210a0000290000002003a00039000000000403043300000020044002100000087204400197000000000242019f0000004004a00039000000000504043300000040055002100000087b05500197000000000252019f0000006005a00039000000000705043300000050077002100000087c07700197000000000272019f0000002209000029000000000709043300000070077002100000087d07700197000000000272019f000000a008a000390000000007080433000000000007004b0000087e070000410000000007006019000000000272019f00000000070a04330000084307700197000000000272019f000000000021041b000000400100043d000000000271043600000000030304330000084303300197000000000032043500000000020404330000ffff0220018f00000040031000390000000000230435000000000205043300000843022001970000006003100039000000000023043500000000020904330000084302200197000000800310003900000000002304350000000002080433000000000002004b0000000002000039000000010200c039000000a0031000390000000000230435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f0000087f011001c70000800d02000039000000030300003900000880040000410000002305000029210820fe0000040f00000001002001900000009b0000613d000000200300002900000001033000390000001f0100002900000000020104330000000001020433000000000013004b000010b60000413d000000800100043d0000001c05000029000010a60000013d000008bd0100004100000000001a04350000084300a0009c000008430a0080410000004001a0021000000886011001c70000210a00010430000008bd010000410000000000150435000008430050009c0000084305008041000000400150021000000886011001c70000210a000104300000001f0530018f0000084506300198000000400200043d0000000004620019000011580000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011480000c13d000011580000013d0000001f0530018f0000084506300198000000400200043d0000000004620019000011580000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011540000c13d000000000005004b000011650000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008430020009c00000843020080410000004002200210000000000112019f0000210a00010430000000400200043d000000240320003900000000001304350000088101000041000000000012043500000004012000390000002403000029000003870000013d00000000020000190000117b0000013d0000002302000029000000010220003900000022010000290000000001010433000000000012004b0000053f0000813d002300000002001d0000000501200210000000210110002900000000010104330000084801100197002400000001001d000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000301041a000000000003004b000011750000613d0000000201000039000000000201041a000000000002004b000015cd0000613d000000010130008a000000000032004b000011b30000613d000000000012004b00001ad60000a13d000008540130009a000008540220009a000000000202041a000000000021041b000000000020043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039002000000003001d210821030000040f000000200300002900000001002001900000009b0000613d000000000101043b000000000031041b0000000201000039000000000301041a000000000003004b00001adc0000613d000000010130008a000008540230009a000000000002041b0000000202000039000000000012041b0000002401000029000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b000000400100043d00000024020000290000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d0200003900000001030000390000085604000041210820fe0000040f0000000100200190000011750000c13d0000009b0000013d000000400100043d000008d002000041000000000021043500000004021000390000002303000029000006090000013d0000001a0500002900000000062100490000084c0060009c0000009b0000213d000000600060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f0000000097020434000008480070009c0000009b0000213d0000000007760436000000400800043d0000084d0080009c000000a10000213d000000400a8000390000004000a0043f0000000009090433000008480090009c0000009b0000213d0000000009980436000000400a200039000000000a0a0433000000ff00a0008c0000009b0000213d0000000000a90435000000000087043500000000056504360000006002200039000000000042004b000011e00000413d000001ce0000013d00000000030104330000084c0030009c0000009b0000213d000000400030008c0000009b0000413d000000400300043d0000084d0030009c000000a10000213d0000004004300039000000400040043f0000000002020433000000000023043500000040011000390000000002010433000000000002004b0000000001000039000000010100c039000000000012004b00000f440000613d0000009b0000013d00000000020204330000ffff0220018f000000160020006b0000121d0000a13d000000400100043d000008cb02000041000017a20000013d00000000020404330000086102200197000008620020009c000012280000c13d0000000002010433000000200020008c00000a5f0000c13d00000000020a0433000004000220008a000008b60020009c00000a5f0000213d0000006001800039000000000115034f000000000101043b000008480010009c0000009b0000213d000000000010043f0000000701000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000002020003670000002403200370000000000303043b0000006403300039000000000232034f000000000101043b000000000101041a000200000001001d000000000102043b000008480010009c0000009b0000213d000000240200002921081d820000040f000700000001001d000100000002001d000000160000006b000013590000c13d000000200100002900000000010104330000084301100197001508b9001000d5001100000000001d001200000000001d00000002020003670000002401200370000000000701043b0000002401700039000000000112034f00000000040000310000000003740049000000230630008a000000000501043b0000001f0100002900000000010104330000ffff031001900000000001000019000015780000c13d000000000065004b00000000030000190000084b030080410000084b086001970000084b09500197000000000a89013f000000000089004b00000000090000190000084b090040410000084b00a0009c000000000903c019000000000009004b0000009b0000c13d0000001e03000029000000000303043300000004097000390000000005950019000000000a52034f000000000a0a043b0000084900a0009c0000009b0000213d000000000ba4004900000020055000390000000000b5004b000000000c0000190000084b0c0020410000084b0bb001970000084b05500197000000000db5013f0000000000b5004b00000000050000190000084b050040410000084b00d0009c00000000050cc019000000000005004b0000009b0000c13d0000001d0500002900000000050504330000ffff0b50018f0000000005ab00a900000000000a004b0000128d0000613d000008c50aa00197000008c50c500197000000000aac00d90000000000ab004b000015cd0000c13d0000008407700039000000000772034f000000000707043b0000084b0a700197000000000b8a013f00000000008a004b00000000080000190000084b08004041000000000067004b00000000060000190000084b060080410000084b00b0009c000000000806c019000000000008004b0000009b0000c13d0000000007970019000000000672034f000000000606043b000008490060009c0000009b0000213d000000000864004900000020097000390000084b078001970000084b0a900197000000000b7a013f00000000007a004b00000000070000190000084b07004041000000000089004b00000000080000190000084b080020410000084b00b0009c000000000708c019000000000007004b0000009b0000c13d000000400700043d0000084d0070009c000000a10000213d0000004008700039000000400080043f000000200870003900000000000804350000000000070435000000400800043d0000084d0080009c000000a10000213d00000017070000290000000007070433000000400a8000390000004000a0043f000000200a80003900000000000a04350000000000080435000000000006004b000016a30000c13d000000400400043d0000084d0040009c000000a10000213d00000843027001970000004006400039000000400060043f0000000000240435000000000600001900000020044000390000000000640435000000190400002900000000040404330000084304400197000000000042004b000017b30000a13d000000400100043d000008ca02000041000017a20000013d001d00c00030003d000012dd0000013d00000020044000390000000000a9043500000000008404350000001e0050006c000001f70000813d0000000052050434000008490020009c0000009b0000213d0000001f022000290000001d062000690000084c0060009c0000009b0000213d000000400060008c0000009b0000413d000000400800043d0000084d0080009c000000a10000213d0000004006800039000000400060043f00000020062000390000000006060433000008490060009c0000009b0000213d000000000968043600000040062000390000000006060433000008490060009c0000009b0000213d00000000022600190000003f06200039000000000016004b00000000070000190000084b070080410000084b06600197000000000006004b000000000a0000190000084b0a0040410000084b0060009c000000000a07c01900000000000a004b0000009b0000c13d0000002006200039000000000c0604330000084900c0009c000000a10000213d0000000506c002100000003f066000390000084a06600197000000400a00043d00000000066a00190000000000a6004b00000000070000390000000107004039000008490060009c000000a10000213d0000000100700190000000a10000c13d000000400060043f0000000000ca0435000000400b200039000000e002c000c9000000000cb2001900000000001c004b0000009b0000213d0000000000cb004b000012d80000813d000000000d0a00190000000002b100490000084c0020009c0000009b0000213d000000e00020008c0000009b0000413d000000400e00043d0000084d00e0009c000000a10000213d0000004002e00039000000400020043f00000000620b0434000008480020009c0000009b0000213d000000000f2e0436000000400200043d0000084e0020009c000000a10000213d000000c007200039000000400070043f0000000006060433000008430060009c0000009b0000213d00000000066204360000004007b000390000000007070433000008430070009c0000009b0000213d00000000007604350000006006b0003900000000060604330000ffff0060008c0000009b0000213d000000400720003900000000006704350000008006b000390000000006060433000008430060009c0000009b0000213d00000060072000390000000000670435000000a006b000390000000006060433000008430060009c0000009b0000213d00000080072000390000000000670435000000c006b000390000000006060433000000000006004b0000000007000039000000010700c039000000000076004b0000009b0000c13d000000200dd00039000000a007200039000000000067043500000000002f04350000000000ed0435000000e00bb000390000000000cb004b0000131b0000413d000012d80000013d00000002010003670000002402100370000000000202043b0000006403200039000000000431034f000000000404043b000600000004001d000008480040009c0000009b0000213d000000200330008a000000000331034f000000000403043b00000000030000310000000005230049000000230550008a0000084b065001970000084b07400197000000000867013f000000000067004b00000000060000190000084b06004041000000000054004b00000000050000190000084b050080410000084b0080009c000000000605c019000000000006004b0000009b0000c13d00000000024200190000000402200039000000000121034f000000000101043b000b00000001001d000008490010009c0000009b0000213d0000000b010000290000000601100210000000000113004900000020052000390000084b021001970000084b03500197000000000423013f000000000023004b00000000020000190000084b02004041000a00000005001d000000000015004b00000000010000190000084b010020410000084b0040009c000000000201c019000000000002004b0000009b0000c13d0000000b0000006b001100000000001d001200000000001d001500000000001d000012500000613d001400000000001d001500000000001d001100000000001d001200000000001d000013a00000013d000000150010002a000015cd0000413d001500150010002d00000014020000290000000102200039001400000002001d0000000b0020006c000012500000813d000000140100002900000006011002100000000a0110002900000000021000790000084c0020009c0000009b0000213d000000400020008c0000009b0000413d000000400200043d002000000002001d0000084d0020009c000000a10000213d00000020020000290000004002200039000000400020043f0000000202000367000000000312034f000000000303043b000008480030009c0000009b0000213d000000200400002900000000033404360000002001100039000000000112034f000000000101043b000f00000003001d00000000001304350000002401000029000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000200200002900000000020204330000084802200197000000000020043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400200043d001300000002001d0000084e0020009c000000a10000213d000000000101043b0000001304000029000000c002400039000000400020043f000000000101041a000000a002400039000008b8001001980000000003000039000000010300c039000000000032043500000843021001970000000003240436000000700210027000000843022001970000008005400039001000000005001d000000000025043500000020021002700000084302200197000c00000003001d0000000000230435000000500210027000000843022001970000006003400039000e00000003001d0000000000230435000000400340003900000040011002700000ffff0110018f000d00000003001d00000000001304350000143f0000613d000000000001004b000014580000613d000000200100002900000000010104330000084802100197000800000002001d000000060020006c0000000701000029000015420000613d000000400100043d0000084d0010009c000000a10000213d0000004002100039000000400020043f0000002002100039000000000002043500000000000104350000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400200043d0000084d0020009c000000a10000213d000000000101043b0000004003200039000000400030043f000000000101041a00000848031001980000000003320436000000a001100270000000ff0110018f000400000003001d00000000001304350000145a0000613d000000400100043d0000084d0010009c000000a10000213d0000004003100039000000400030043f0000002003100039000000000003043500000000000104350000000002020433000000400300043d000008ba01000041002000000003001d0000000001130436000300000001001d00000000010004140000084802200197000500000002001d000000040020008c000014740000c13d0000000103000031000000a00030008c000000a00400003900000000040340190000149e0000013d000000220100002900000000010104330000ffff0110018f000008b9011000d1000000150010002a000015cd0000413d000000110200002900000843022001970000002303000029000000000303043300000843033001970000000002230019001100000002001d000008430020009c000015cd0000213d000000120200002900000843022001970000002103000029000000000303043300000843033001970000000002230019001200000002001d000008430020009c0000139a0000a13d000015cd0000013d0000000001000019000015520000013d0000000801000029000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000400200043d002000000002001d0000084d0020009c000000a10000213d000000000101043b00000020030000290000004002300039000000400020043f000000000101041a00000850021001970000000000230435000000e001100270000015390000013d0000002002000029000008430020009c00000843020080410000004002200210000008430010009c0000084301008041000000c001100210000000000121019f00000886011001c70000000502000029210821030000040f000000000301001900000060033002700000084303300197000000a00030008c000000a0040000390000000004034019000000e00640019000000020056000290000148e0000613d000000000701034f0000002008000029000000007907043c0000000008980436000000000058004b0000148a0000c13d0000001f074001900000149b0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0000000100200190000017bc0000613d0000001f01400039000001e00110018f0000002002100029000000000012004b00000000010000390000000101004039000900000002001d000008490020009c000000a10000213d0000000100100190000000a10000c13d0000000901000029000000400010043f000000a00030008c0000009b0000413d00000020010000290000000001010433000008bb0010009c0000009b0000213d000000200100002900000080011000390000000001010433000008bb0010009c0000009b0000213d00000003010000290000000001010433000300000001001d0000084c0010009c000017a80000213d000008bc010000410000000902000029000000000012043500000000010004140000000502000029000000040020008c0000002004000039000014ed0000613d0000000902000029000008430020009c00000843020080410000004002200210000008430010009c0000084301008041000000c001100210000000000121019f00000886011001c70000000502000029210821030000040f000000000301001900000060033002700000084303300197000000200030008c0000002004000039000000000403401900000020064001900000000905600029000014dd0000613d000000000701034f0000000908000029000000007907043c0000000008980436000000000058004b000014d90000c13d0000001f07400190000014ea0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0000000100200190000017c80000613d0000001f01400039000000600110018f0000000901100029002000000001001d000008490010009c000000a10000213d0000002001000029000000400010043f000000200030008c0000009b0000413d00000009010000290000000001010433000000ff0010008c0000009b0000213d00000004020000290000000002020433000000ff0220018f0000000002120019000000ff0020008c000015cd0000213d000000240120008c000015150000213d00000001010000390000150e0000613d00000024022000890000000a03000039000000010020019000000000043300a9000000010300603900000000011300a900000001022002720000000003040019000015070000c13d000000030000006b000015720000613d00000003021000b900000003032000fa000000000013004b000015230000613d000015cd0000013d0000004d0010008c000015cd0000213d00000001020000390000000a03000039000000010010019000000000043300a9000000010300603900000000022300a900000001011002720000000003040019000015190000c13d000000000002004b000003ef0000613d00000003022000f9000008500020009c000017ab0000213d00000020010000290000084d0010009c000000a10000213d00000020030000290000004001300039000000400010043f0000000000230435000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f0000000100200190000015770000613d000000000101043b0000084301100197000000200200002900000020022000390000000000120435000000000001004b0000169d0000613d0000002001000029000000000101043300000850011001980000169d0000613d0000000f020000290000000002020433000008500310019800000000013200a90000154a0000613d00000000033100d9000000000023004b000015cd0000c13d000008c10110012a0000000d0200002900000000020204330000ffff0220018f00000000011200a90000000e020000290000000002020433000008c20110012a0000001103000029000008430330019700000843022001970000000002320019001100000002001d000008430020009c000015cd0000213d000000120200002900000843022001970000001003000029000000000303043300000843033001970000000002230019001200000002001d000008430020009c000015cd0000213d000000130200002900000000020204330000084302200197000008b9022000d1000000000021004b0000156e0000413d0000000c0200002900000000020204330000084302200197000008b9022000d1000000000021004b000013980000a13d000000150020002a000015cd0000413d001500150020002d0000139b0000013d000000000200001900000020010000290000084d0010009c000015280000a13d000000a10000013d000000000001042f000000000065004b00000000010000190000084b010080410000084b086001970000084b09500197000000000a89013f000000000089004b00000000080000190000084b080040410000084b00a0009c000000000801c019000000000008004b0000009b0000c13d00000000015700190000000408100039000000000182034f000000000101043b000008490010009c0000009b0000213d00000000091400490000002008800039000000000098004b000000000a0000190000084b0a0020410000084b099001970000084b08800197000000000b98013f000000000098004b00000000080000190000084b080040410000084b00b0009c00000000080ac019000000000008004b0000009b0000c13d000000160900002900000140089000c9000000000009004b000015a10000613d00000016098000fa000001400090008c000015cd0000c13d000001c001100039000000000081001a000015cd0000413d0000000001810019000000120010002a000015cd0000413d000000120810002a0000001b0100002900000000010104330000ffff0910018f00000000018900a9000015b00000613d00000000088100d9000000000098004b000015cd0000c13d0000001c0800002900000000080804330000084308800197000000000018001a000015cd0000413d000000000918001a00000000010000190000125e0000613d00000001010000290000007001100270000008c30110019700000000081900a900000000099800d9000000000019004b000015cd0000c13d000000000008004b00000000010000190000125e0000613d00000000093800a900000000018900d9000000000031004b000015cd0000c13d000000000009004b00000000010000190000125e0000613d000008c4019000d100000000039100d9000008c40030009c0000125e0000613d000008d701000041000000000010043f0000001101000039000000040010043f00000877010000410000210a00010430000000180500002900000000062100490000084c0060009c0000009b0000213d000000400060008c0000009b0000413d000000400600043d0000084d0060009c000000a10000213d0000004007600039000000400070043f0000000087020434000008480070009c0000009b0000213d00000000077604360000000008080433000008490080009c0000009b0000213d0000002005500039000000000087043500000000006504350000004002200039000000000042004b000015d40000413d000002220000013d000000160400002900000000052100490000084c0050009c0000009b0000213d000002400050008c0000009b0000413d000000400500043d0000084d0050009c000000a10000213d0000004006500039000000400060043f0000000086020434000008490060009c0000009b0000213d0000000006650436000000400700043d0000084f0070009c000000a10000213d0000022009700039000000400090043f0000000008080433000000000008004b0000000009000039000000010900c039000000000098004b0000009b0000c13d0000000008870436000000400920003900000000090904330000ffff0090008c0000009b0000213d000000000098043500000060082000390000000008080433000008430080009c0000009b0000213d0000004009700039000000000089043500000080082000390000000008080433000008430080009c0000009b0000213d00000060097000390000000000890435000000a0082000390000000008080433000008430080009c0000009b0000213d00000080097000390000000000890435000000c00820003900000000080804330000ffff0080008c0000009b0000213d000000a0097000390000000000890435000000e0082000390000000008080433000008430080009c0000009b0000213d000000c0097000390000000000890435000001000820003900000000080804330000ffff0080008c0000009b0000213d000000e0097000390000000000890435000001200820003900000000080804330000ffff0080008c0000009b0000213d00000100097000390000000000890435000001400820003900000000080804330000ffff0080008c0000009b0000213d0000012009700039000000000089043500000160082000390000000008080433000008430080009c0000009b0000213d0000014009700039000000000089043500000180082000390000000008080433000008430080009c0000009b0000213d00000160097000390000000000890435000001a0082000390000000008080433000008430080009c0000009b0000213d00000180097000390000000000890435000001c0082000390000000008080433000008490080009c0000009b0000213d000001a0097000390000000000890435000001e0082000390000000008080433000008430080009c0000009b0000213d000001c009700039000000000089043500000200082000390000000008080433000000000008004b0000000009000039000000010900c039000000000098004b0000009b0000c13d000001e00970003900000000008904350000022008200039000000000808043300000850008001980000009b0000c13d00000200097000390000000000890435000000000076043500000000045404360000024002200039000000000032004b000015ed0000413d0000024d0000013d000000000200041a0000085102200197000000000112019f000000000010041b0000001d01000029000008520010009c000000a10000213d0000001d010000290000002002100039001900000002001d000000400020043f0000000000010435000000400100043d001500000001001d0000084d0010009c000000a10000213d00000015030000290000004001300039000000400010043f00000020013000390000001d020000290000000000210435000000210100002900000000001304350000000001020433000000000001004b000016e70000c13d00000021010000290000000001010433000000000001004b000017520000c13d0000002301000029000000000101043300000848011001980000169a0000613d0000002402000029000000000202043300000847002001980000169a0000613d000000220200002900000000020204330000084300200198000018030000c13d000000400100043d0000088502000041000017a20000013d000000400100043d000008c002000041000000000021043500000004021000390000000803000029000006090000013d000000000792034f000000000a07043b000000040b60008c0000009b0000413d0000001b07600039000008e1077001970000003f07700039000008e108700197000000400700043d0000000008870019000000000078004b000000000c000039000000010c004039000008490080009c000000a10000213d0000000100c00190000000a10000c13d000000400080043f0000000008b70436000000000c96001900000000004c004b0000009b0000213d0000000404900039000000000442034f000008e109b001980000001f0bb0018f0000000002980019000016c50000613d000000000c04034f000000000d08001900000000ce0c043c000000000ded043600000000002d004b000016c10000c13d000008610aa0019700000000000b004b000016d30000613d000000000494034f0000000309b00210000000000b020433000000000b9b01cf000000000b9b022f000000000404043b0000010009900089000000000494022f00000000049401cf0000000004b4019f000000000042043500000000027600190000001c022000390000000000020435000008c600a0009c000018660000613d000008c700a0009c000016e40000c13d00000000020704330000084c0020009c0000009b0000213d000000200020008c0000009b0000413d000000400400043d0000084d0040009c000000a10000213d0000000002080433000012c80000013d000000400100043d000008d302000041000017a20000013d001f00000000001d000016ef0000013d0000001f02000029001f00010020003d0000001d0100002900000000010104330000001f0010006b000017d40000813d0000001f010000290000000501100210000000190110002900000000010104330000084801100197001e00000001001d000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a002100000001001d000000000001004b000016e90000613d0000000201000039000000000201041a000000000002004b000015cd0000613d0000002103000029000000010130008a000000000032004b0000172b0000613d000000000012004b00001ad60000a13d0000002101000029000008540110009a000008540220009a000000000202041a000000000021041b000000000020043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002102000029000000000021041b0000000201000039000000000101041a002100000001001d000000000001004b00001adc0000613d0000002101000029000000010110008a0000002102000029000008540220009a000000000002041b0000000202000039000000000012041b0000001e01000029000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b000000400100043d0000001e020000290000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d0200003900000001030000390000085604000041210820fe0000040f0000000100200190000016e90000c13d0000009b0000013d0000002101000029001d00200010003d001e00000000001d0000001e0100002900000005011002100000001d011000290000000001010433001f08480010019c000017a00000613d0000001f01000029000000000010043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a000000000001004b000017870000c13d0000000201000039000000000101041a000008490010009c000000a10000213d00000001021000390000000203000039000000000023041b000008570110009a0000001f02000029000000000021041b000000000103041a001900000001001d000000000020043f0000000301000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000001902000029000000000021041b000000400100043d0000001f020000290000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d0200003900000001030000390000085804000041210820fe0000040f00000001002001900000009b0000613d0000001e02000029001e00010020003d000000210100002900000000010104330000001e0010006b000017550000413d0000168e0000013d000000400100043d000008d5020000410000000000210435000008430010009c0000084301008041000000400110021000000886011001c70000210a00010430000008bd010000410000000902000029000017ad0000013d000008bd0100004100000020020000290000000000120435000008430020009c0000084302008041000000400120021000000886011001c70000210a00010430000000000006004b000017d80000c13d00000018040000290000000004040433000000000004004b000017d80000613d000000400100043d000008c902000041000017a20000013d0000001f0530018f0000084506300198000000400200043d0000000004620019000011580000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017c30000c13d000011580000013d0000001f0530018f0000084506300198000000400200043d0000000004620019000011580000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017cf0000c13d000011580000013d00000015010000290000000001010433002100000001001d0000168a0000013d000008430330019700000011033000290000000004530019000000000042001a000015cd0000413d0000000103000029000008c3053001980000000003000019000017f00000613d000000000342001900000000025300a900000000045200d9000000000034004b000015cd0000c13d000000000002004b0000000003000019000017f00000613d0000001a030000290000000003030433000008490430019700000000032400a900000000022300d9000000000042004b000015cd0000c13d0000000202000029000008490420019700000015024000b9000000150000006b000017f80000613d00000015052000fa000000000045004b000015cd0000c13d000000000023001a000015cd0000413d0000000002230019000000000012001a000015cd0000413d00000007030000290000085003300198000003ef0000613d000000000112001900000000013100d9000002dc0000013d000000a00010043f000000240100002900000000010104330000084701100197000000800010043f000000220100002900000000010104330000084301100197000000c00010043f000000400100043d001f00000001001d000008520010009c000000a10000213d0000001f010000290000002002100039001e00000002001d000000400020043f000000000001043500000020010000290000000001010433000000000001004b0000187e0000613d002400000000001d000018210000013d0000002402000029002400010020003d00000020010000290000000001010433000000240010006b0000187a0000813d000000240100002900000005011002100000001c01100029002200000001001d00000000010104330000084801100197002300000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a000000000001004b0000181b0000c13d0000000a01000039000000000101041a000008490010009c000000a10000213d00000001021000390000000a03000039000000000023041b000008590110009a0000002302000029000000000021041b000000000103041a002100000001001d000000000020043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002102000029000000000021041b00000020010000290000000001010433000000240010006c00001ad60000a13d0000002201000029000000000101043300000000020004140000084805100197000008430020009c0000084302008041000000c0012002100000085a011001c70000800d0200003900000002030000390000085b04000041210820fe0000040f00000001002001900000181b0000c13d0000009b0000013d00000000020704330000084c0020009c0000009b0000213d000000400020008c0000009b0000413d000000400400043d0000084d0040009c000000a10000213d0000004002400039000000400020043f0000000002080433000000000024043500000040067000390000000006060433000000000006004b0000000007000039000000010700c039000000000076004b000012cc0000613d0000009b0000013d0000001f010000290000000001010433000000000001004b00001a6a0000c13d0000001b010000290000000001010433000000000001004b000018c10000613d002400000000001d000000240100002900000005011002100000001a01100029000000000101043300000020021000390000000002020433002200000002001d00000000010104330000084801100197002300000001001d000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000201041a0000085e02200197000000220500002900000020035000390000000004030433000000a0044002100000085f04400197000000000242019f00000000040504330000084804400197000000000242019f000000000021041b000000400100043d00000000024104360000000003030433000000ff0330018f0000000000320435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000853011001c70000800d02000039000000020300003900000860040000410000002305000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d0000001b010000290000000001010433000000240010006b000018830000413d00000017010000290000000001010433000000000001004b0000198f0000613d002200000000001d00000022010000290000000501100210000000160110002900000000010104330000000012010434002308490020019c00001ae20000613d0000000001010433002400000001001d0000018001100039002000000001001d0000000001010433000008430110019800001ae20000613d00000024020000290000020002200039002100000002001d00000000020204330000086102200197000008620020009c00001ae20000c13d00000024020000290000016002200039001f00000002001d0000000002020433000008450020019800001ae20000613d00000024020000290000006002200039001e00000002001d00000000020204330000084302200197000000000021004b00001ae20000213d0000002301000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000000101100039000000000101041a001d00000001001d000000400100043d001c00000001001d000000240200002921081b3c0000040f0000001c020000290000000001210049000008430020009c0000084302008041000008430010009c000008430100804100000040022002100000006001100210000000000121019f0000001d020000290000086300200198000019130000613d0000000002000414000008430020009c0000084302008041000000c002200210000000000112019f0000085a011001c70000800d02000039000000020300003900000864040000410000191c0000013d0000000002000414000008430020009c0000084302008041000000c002200210000000000112019f0000085a011001c70000800d02000039000000020300003900000865040000410000002305000029210820fe0000040f00000001002001900000009b0000613d0000002301000029000000000010043f0000000801000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000024040000290000000032040434000000000002004b000000000101043b000000000201041a0000086602200197000000010220c1bf000000000303043300000008033002100000086703300197000000000232019f0000004003400039000000000303043300000018033002100000086803300197000000000232019f0000001e03000029000000000303043300000038033002100000086903300197000000000232019f0000008003400039000000000303043300000058033002100000086a03300197000000000232019f000000a003400039000000000303043300000078033002100000086b03300197000000000232019f000000c003400039000000000303043300000088033002100000086c03300197000000000232019f000000e0034000390000000003030433000000a8033002100000086d03300197000000000232019f00000100034000390000000003030433000000b8033002100000086e03300197000000000232019f00000120034000390000000003030433000000c8033002100000086f03300197000000000232019f00000140034000390000000003030433000000d8033002100000087003300197000000000232019f000000000021041b00000001011000390000001f0200002900000000020204330000084302200197000000000301041a0000087103300197000000000223019f0000002003000029000000000303043300000020033002100000087203300197000000000232019f000001a003400039000000000303043300000040033002100000087303300197000000000232019f000001c003400039000000000303043300000080033002100000087403300197000000000232019f000001e0034000390000000003030433000000000003004b00000875030000410000000003006019000000000232019f0000002103000029000000000303043300000038033002700000086303300197000000000232019f000000000021041b0000002202000029002200010020003d00000017010000290000000001010433000000220010006b000018c60000413d0018002b0000002d00000018010000290000000001010433000000000001004b000019cb0000613d0000001801000029002100200010003d002400000000001d000000240100002900000005011002100000002101100029000000000101043300000020021000390000000002020433002200000002001d00000000010104330000084801100197002300000001001d000000000010043f0000000701000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000022020000290000084902200197000000000101043b000000000301041a0000087803300197000000000323019f000000000031041b000000400100043d0000000000210435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f00000855011001c70000800d02000039000000020300003900000879040000410000002305000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d00000018010000290000000001010433000000240010006b000019960000413d000000400100043d001b00000001001d000008520010009c000000a10000213d0000001b010000290000002002100039001a00000002001d000000400020043f00000000000104350000002c01000029001c00000001001d0000000021010434001d00000002001d000000000001004b00001b240000613d001e00000000001d000019e00000013d0000001e02000029001e00010020003d0000001e0010006b00001ae50000813d0000001e0200002900000005022002100000001d0220002900000000030204330000002002300039001f00000002001d00000000020204330000000004020433000000000004004b000019dc0000613d0000000001030433002208490010019b002400000000001d000000240100002900000005011002100000000001120019000000200110003900000000010104330000000021010434002308480010019b0000000001020433002000000001001d0000008001100039002100000001001d000000000101043300000843011001970000001f0010008c00001b340000a13d0000002201000029000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002302000029000000000020043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000201041a0000087a0220019700000020090000290000002003900039000000000403043300000020044002100000087204400197000000000242019f0000004004900039000000000504043300000040055002100000087b05500197000000000252019f0000006005900039000000000605043300000050066002100000087c06600197000000000262019f0000002108000029000000000608043300000070066002100000087d06600197000000000262019f000000a0069000390000000007060433000000000007004b0000087e070000410000000007006019000000000272019f00000000070904330000084307700197000000000272019f000000000021041b000000400100043d000000000271043600000000030304330000084303300197000000000032043500000000020404330000ffff0220018f00000040031000390000000000230435000000000205043300000843022001970000006003100039000000000023043500000000020804330000084302200197000000800310003900000000002304350000000002060433000000000002004b0000000002000039000000010200c039000000a0031000390000000000230435000008430010009c000008430100804100000040011002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f0000087f011001c70000800d020000390000000303000039000008800400004100000022050000290000002306000029210820fe0000040f00000001002001900000009b0000613d0000002403000029002400010030003d0000001f0100002900000000020104330000000001020433000000240010006b000019ed0000413d0000001c010000290000000001010433000019dc0000013d002400000000001d00001a720000013d0000002402000029002400010020003d0000001f010000290000000001010433000000240010006b0000187e0000813d000000240100002900000005011002100000001e01100029002200000001001d00000000010104330000084801100197002100000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000101041a002300000001001d000000000001004b00001a6c0000613d0000000a01000039000000000201041a000000000002004b000015cd0000613d0000002303000029000000010130008a000000000023004b00001aaf0000613d000000000012004b00001ad60000a13d00000023010000290000085c0110009a0000085c0220009a000000000202041a000000000021041b000000000020043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b0000002302000029000000000021041b0000000a01000039000000000101041a002300000001001d000000000001004b00001adc0000613d0000002301000029000000010110008a00000023020000290000085c0220009a000000000002041b0000000a02000039000000000012041b0000002101000029000000000010043f0000000b01000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b0000001f010000290000000001010433000000240010006c00001ad60000a13d0000002201000029000000000101043300000000020004140000084805100197000008430020009c0000084302008041000000c0012002100000085a011001c70000800d0200003900000002030000390000085d04000041210820fe0000040f000000010020019000001a6c0000c13d0000009b0000013d000008d701000041000000000010043f0000003201000039000000040010043f00000877010000410000210a00010430000008d701000041000000000010043f0000003101000039000000040010043f00000877010000410000210a00010430000000400100043d0000087602000041000011db0000013d0000001b010000290000000001010433000000000001004b00001b240000613d002400000000001d000000240100002900000005011002100000001a01100029000000000101043300000020021000390000000002020433002300000002001d00000000010104330000084901100197002200000001001d000000000010043f0000000901000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d00000023020000290000084802200197000000000101043b002300000002001d000000000020043f000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f00000001002001900000009b0000613d000000000101043b000000000001041b0000000001000414000008430010009c0000084301008041000000c0011002100000085a011001c70000800d020000390000000303000039000008830400004100000022050000290000002306000029210820fe0000040f00000001002001900000009b0000613d0000002402000029002400010020003d0000001b010000290000000001010433000000240010006b00001aea0000413d000000800100043d00000140000004430000016000100443000000a00100043d00000020020000390000018000200443000001a000100443000000c00100043d0000004003000039000001c000300443000001e0001004430000010000200443000000030100003900000120001004430000088401000041000021090001042e000000400200043d000000240320003900000000001304350000088101000041000000000012043500000004012000390000002303000029000003870000013d0000000043020434000000000003004b0000000003000039000000010300c039000000000331043600000000040404330000ffff0440018f0000000000430435000000400320003900000000030304330000084303300197000000400410003900000000003404350000006003200039000000000303043300000843033001970000006004100039000000000034043500000080032000390000000003030433000008430330019700000080041000390000000000340435000000a00320003900000000030304330000ffff0330018f000000a0041000390000000000340435000000c00320003900000000030304330000084303300197000000c0041000390000000000340435000000e00320003900000000030304330000ffff0330018f000000e0041000390000000000340435000001000320003900000000030304330000ffff0330018f00000100041000390000000000340435000001200320003900000000030304330000ffff0330018f00000120041000390000000000340435000001400320003900000000030304330000084303300197000001400410003900000000003404350000016003200039000000000303043300000843033001970000016004100039000000000034043500000180032000390000000003030433000008430330019700000180041000390000000000340435000001a00320003900000000030304330000084903300197000001a0041000390000000000340435000001c00320003900000000030304330000084303300197000001c0041000390000000000340435000001e0032000390000000003030433000000000003004b0000000003000039000000010300c039000001e0041000390000000000340435000002000220003900000000020204330000086102200197000002000310003900000000002304350000022001100039000000000001042d000008e20010009c00001b980000813d0000004001100039000000400010043f000000000001042d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a00010430000008e30010009c00001ba30000813d0000022001100039000000400010043f000000000001042d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a00010430000008e40010009c00001bae0000813d000000c001100039000000400010043f000000000001042d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a000104300000001f02200039000008e1022001970000000001120019000000000021004b00000000020000390000000102004039000008490010009c00001bc00000213d000000010020019000001bc00000c13d000000400010043f000000000001042d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a0001043000000000430104340000000001320436000000000003004b00001bd20000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001bcb0000413d000000000231001900000000000204350000001f02300039000008e1022001970000000001210019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b00001be70000613d000000000400001900000020022000390000000005020433000008480550019700000000015104360000000104400039000000000034004b00001be00000413d000000000001042d000000003101043400000850011001970000000001120436000000000203043300000843022001970000000000210435000000000001042d000000004302043400000843033001970000000003310436000000000404043300000843044001970000000000430435000000400320003900000000030304330000ffff0330018f000000400410003900000000003404350000006003200039000000000303043300000843033001970000006004100039000000000034043500000080032000390000000003030433000008430330019700000080041000390000000000340435000000a0022000390000000002020433000000000002004b0000000002000039000000010200c039000000a0031000390000000000230435000000c001100039000000000001042d0000000032020434000008480220019700000000022104360000000003030433000000ff0330018f00000000003204350000004001100039000000000001042d0004000000000002000000400200043d000008e20020009c00001d350000813d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000084801100197000400000001001d000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000001d3b0000613d000000400200043d0000084d0020009c00001d350000213d000000000101043b0000004003200039000000400030043f000000000101041a00000848031001980000000003320436000000a001100270000000ff0110018f000000000013043500001c4f0000613d000400000003001d000000400100043d0000084d0010009c00001d350000213d0000004003100039000000400030043f0000002003100039000000000003043500000000000104350000000002020433000000400c00043d000008ba0100004100000000051c043600000000010004140000084802200197000000040020008c00001c670000c13d0000000103000031000000a00030008c000000a004000039000000000403401900001c970000013d0000000401000029000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000001d3b0000613d000000400300043d0000084d0030009c00001d350000213d000000000101043b0000004002300039000000400020043f000000000101041a00000850021001970000000000230435000000e00110027000001d2e0000013d000100000005001d0000084300c0009c000008430300004100000000030c40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c7000200000002001d00030000000c001d210821030000040f000000030c000029000000000301001900000060033002700000084303300197000000a00030008c000000a00400003900000000040340190000001f0640018f000000e00740019000000000057c001900001c850000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001c810000c13d000000000006004b00001c920000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000001d520000613d000000020200002900000001050000290000001f01400039000001e00110018f000000000bc1001900000000001b004b000000000100003900000001010040390000084900b0009c00001d350000213d000000010010019000001d350000c13d0000004000b0043f000000a00030008c00001d3b0000413d00000000010c0433000008bb0010009c00001d3b0000213d0000008001c000390000000001010433000008bb0010009c00001d3b0000213d00000000050504330000084c0050009c00001d430000213d000008bc0100004100000000001b04350000000001000414000000040020008c00001cb50000c13d000000200400003900001ce30000013d000200000005001d0000084300b0009c000008430300004100000000030b40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c700030000000b001d210821030000040f000000030b000029000000000301001900000060033002700000084303300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001cd20000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001cce0000c13d000000000006004b00001cdf0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000001d5e0000613d00000002050000290000001f01400039000000600110018f0000000006b10019000008490060009c00001d350000213d000000400060043f000000200030008c00001d3b0000413d00000000010b0433000000ff0010008c00001d3b0000213d00000004020000290000000002020433000000ff0220018f0000000002120019000000ff0020008c00001d3d0000213d000000240120008c00001cf90000213d00001d080000c13d000000010100003900001d120000013d0000004d0010008c00001d3d0000213d0000000a030000390000000102000039000000010010019000000000043300a9000000010300603900000000022300a90000000101100272000000000304001900001cfd0000c13d000000000002004b00001d7c0000613d00000000022500d900001d180000013d0000000a0300003900000001010000390000002402200089000000010020019000000000043300a9000000010300603900000000011300a90000000102200272000000000304001900001d0b0000c13d000000000005004b00001d320000613d00000000025100a900000000035200d9000000000013004b00001d3d0000c13d000008500020009c00001d4b0000213d0000084d0060009c00001d350000213d0000004001600039000000400010043f000400000006001d0000000000260435000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f000000010020019000001d4a0000613d000000000101043b00000843011001970000000403000029000000200230003900000000001204350000000001030019000000000001042d00000000020000190000084d0060009c00001d1c0000a13d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a0001043000000000010000190000210a00010430000008d701000041000000000010043f0000001101000039000000040010043f00000877010000410000210a00010430000008bd0100004100000000001b04350000084300b0009c000008430b0080410000004001b0021000000886011001c70000210a00010430000000000001042f000008bd010000410000000000160435000008430060009c0000084306008041000000400160021000000886011001c70000210a000104300000001f0530018f0000084506300198000000400200043d000000000462001900001d690000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d590000c13d00001d690000013d0000001f0530018f0000084506300198000000400200043d000000000462001900001d690000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d650000c13d000000000005004b00001d760000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008430020009c00000843020080410000004002200210000000000121019f0000210a00010430000008d701000041000000000010043f0000001201000039000000040010043f00000877010000410000210a000104300006000000000002000400000001001d0000084901200197000300000001001d000000000010043f0000000401000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000001ef00000613d000000400200043d000600000002001d000008e20020009c00001eea0000813d000000000101043b00000006030000290000004002300039000000400020043f000000000101041a00000850021001970000000002230436000000e001100272000500000001001d000000000012043500001eff0000613d000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f000000010020019000001ef20000613d000000000101043b000500050010007400001ef30000413d000008d101000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008430010009c0000084301008041000000c001100210000008d2011001c70000800502000039210821030000040f000000010020019000001ef20000613d000000400200043d000000000101043b00000843011001970000000504000029000000000014004b00001f0a0000213d0000084d0020009c00001eea0000213d0000004001200039000000400010043f00000020012000390000000000010435000000000002043500000004010000290000084801100197000500000001001d000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000001ef00000613d000000400200043d0000084d0020009c00001eea0000213d000000000101043b0000004003200039000000400030043f000000000101041a00000848031001980000000003320436000000a001100270000000ff0110018f000000000013043500001dfd0000613d000400000003001d000000400100043d0000084d0010009c00001eea0000213d0000004003100039000000400030043f0000002003100039000000000003043500000000000104350000000002020433000000400c00043d000008ba0100004100000000051c043600000000010004140000084802200197000000040020008c00001e150000c13d0000000103000031000000a00030008c000000a004000039000000000403401900001e450000013d0000000501000029000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f000000010020019000001ef00000613d000000400300043d0000084d0030009c00001eea0000213d000000000101043b0000004002300039000000400020043f000000000101041a00000850021001970000000000230435000000e00110027000001edc0000013d000100000005001d0000084300c0009c000008430300004100000000030c40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c7000200000002001d00030000000c001d210821030000040f000000030c000029000000000301001900000060033002700000084303300197000000a00030008c000000a00400003900000000040340190000001f0640018f000000e00740019000000000057c001900001e330000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001e2f0000c13d000000000006004b00001e400000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000001f260000613d000000020200002900000001050000290000001f01400039000001e00110018f000000000bc1001900000000001b004b000000000100003900000001010040390000084900b0009c00001eea0000213d000000010010019000001eea0000c13d0000004000b0043f000000a00030008c00001ef00000413d00000000010c0433000008bb0010009c00001ef00000213d0000008001c000390000000001010433000008bb0010009c00001ef00000213d00000000050504330000084c0050009c00001f180000213d000008bc0100004100000000001b04350000000001000414000000040020008c00001e630000c13d000000200400003900001e910000013d000200000005001d0000084300b0009c000008430300004100000000030b40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c700030000000b001d210821030000040f000000030b000029000000000301001900000060033002700000084303300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001e800000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001e7c0000c13d000000000006004b00001e8d0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000000010020019000001f320000613d00000002050000290000001f01400039000000600110018f0000000006b10019000008490060009c00001eea0000213d000000400060043f000000200030008c00001ef00000413d00000000010b0433000000ff0010008c00001ef00000213d00000004020000290000000002020433000000ff0220018f0000000002120019000000ff0020008c00001ef30000213d000000240120008c00001ea70000213d00001eb60000c13d000000010100003900001ec00000013d0000004d0010008c00001ef30000213d0000000a030000390000000102000039000000010010019000000000043300a9000000010300603900000000022300a90000000101100272000000000304001900001eab0000c13d000000000002004b00001f500000613d00000000022500d900001ec60000013d0000000a0300003900000001010000390000002402200089000000010020019000000000043300a9000000010300603900000000011300a90000000102200272000000000304001900001eb90000c13d000000000005004b00001ee70000613d00000000025100a900000000035200d9000000000013004b00001ef30000c13d000008500020009c00001f1f0000213d0000084d0060009c00001eea0000213d0000004001600039000000400010043f000400000006001d0000000000260435000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f000000010020019000001ef20000613d000000000101043b0000084301100197000000040300002900000020023000390000000000120435000000000001004b00001ef90000613d0000000001030433000008500110019800001ef90000613d000000060200002900000000020204330000085002200197000000000001042d00000000020000190000084d0060009c00001eca0000a13d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a0001043000000000010000190000210a00010430000000000001042f000008d701000041000000000010043f0000001101000039000000040010043f00000877010000410000210a00010430000000400100043d000008c00200004100000000002104350000000402100039000000050300002900001f040000013d000000400100043d000008e6020000410000000000210435000000040210003900000003030000290000000000320435000008430010009c0000084301008041000000400110021000000877011001c70000210a000104300000004403200039000000000043043500000024032000390000000000130435000008e5010000410000000000120435000000040120003900000003030000290000000000310435000008430020009c0000084302008041000000400120021000000889011001c70000210a00010430000008bd0100004100000000001b04350000084300b0009c000008430b0080410000004001b0021000000886011001c70000210a00010430000008bd010000410000000000160435000008430060009c0000084306008041000000400160021000000886011001c70000210a000104300000001f0530018f0000084506300198000000400200043d000000000462001900001f3d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f2d0000c13d00001f3d0000013d0000001f0530018f0000084506300198000000400200043d000000000462001900001f3d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f390000c13d000000000005004b00001f4a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008430020009c00000843020080410000004002200210000000000112019f0000210a00010430000008d701000041000000000010043f0000001201000039000000040010043f00000877010000410000210a000104300005000000000002000000400200043d000008e20020009c0000207a0000813d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000084801100197000500000001001d000000000010043f0000000601000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f0000000100200190000020800000613d000000400200043d0000084d0020009c0000207a0000213d000000000101043b0000004003200039000000400030043f000000000101041a00000848031001980000000003320436000000a001100270000000ff0110018f000000000013043500001f900000613d000400000003001d000000400100043d0000084d0010009c0000207a0000213d0000004003100039000000400030043f0000002003100039000000000003043500000000000104350000000002020433000000400c00043d000008ba0100004100000000051c043600000000010004140000084802200197000000040020008c00001fa80000c13d0000000103000031000000a00030008c000000a004000039000000000403401900001fd80000013d0000000501000029000000000010043f0000000501000039000000200010043f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f0000000100200190000020800000613d000000400300043d0000084d0030009c0000207a0000213d000000000101043b0000004002300039000000400020043f000000000101041a00000850021001970000000000230435000000e0011002700000206f0000013d000100000005001d0000084300c0009c000008430300004100000000030c40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c7000200000002001d00030000000c001d210821030000040f000000030c000029000000000301001900000060033002700000084303300197000000a00030008c000000a00400003900000000040340190000001f0640018f000000e00740019000000000057c001900001fc60000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001fc20000c13d000000000006004b00001fd30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000020a20000613d000000020200002900000001050000290000001f01400039000001e00110018f000000000bc1001900000000001b004b000000000100003900000001010040390000084900b0009c0000207a0000213d00000001001001900000207a0000c13d0000004000b0043f000000a00030008c000020800000413d00000000010c0433000008bb0010009c000020800000213d0000008001c000390000000001010433000008bb0010009c000020800000213d00000000050504330000084c0050009c000020930000213d000008bc0100004100000000001b04350000000001000414000000040020008c00001ff60000c13d0000002004000039000020240000013d000200000005001d0000084300b0009c000008430300004100000000030b40190000004003300210000008430010009c0000084301008041000000c001100210000000000131019f00000886011001c700030000000b001d210821030000040f000000030b000029000000000301001900000060033002700000084303300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000020130000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000200f0000c13d000000000006004b000020200000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000020ae0000613d00000002050000290000001f01400039000000600110018f0000000006b10019000008490060009c0000207a0000213d000000400060043f000000200030008c000020800000413d00000000010b0433000000ff0010008c000020800000213d00000004020000290000000002020433000000ff0220018f0000000002120019000000ff0020008c0000208d0000213d000000240120008c0000203a0000213d000020490000c13d0000000101000039000020530000013d0000004d0010008c0000208d0000213d0000000a030000390000000102000039000000010010019000000000043300a9000000010300603900000000022300a9000000010110027200000000030400190000203e0000c13d000000000002004b000020cc0000613d00000000022500d9000020590000013d0000000a0300003900000001010000390000002402200089000000010020019000000000043300a9000000010300603900000000011300a9000000010220027200000000030400190000204c0000c13d000000000005004b000020770000613d00000000025100a900000000035200d9000000000013004b0000208d0000c13d000008500020009c0000209b0000213d0000084d0060009c0000207a0000213d0000004001600039000000400010043f000400000006001d0000000000260435000008be0100004100000000001004430000000001000414000008430010009c0000084301008041000000c001100210000008bf011001c70000800b02000039210821030000040f00000001002001900000209a0000613d000000000101043b0000084301100197000000040300002900000020023000390000000000120435000000000001004b000020820000613d00000000010304330000085001100198000020820000613d000000000001042d00000000020000190000084d0060009c0000205d0000a13d000008d701000041000000000010043f0000004101000039000000040010043f00000877010000410000210a0001043000000000010000190000210a00010430000000400100043d000008c0020000410000000000210435000000040210003900000005030000290000000000320435000008430010009c0000084301008041000000400110021000000877011001c70000210a00010430000008d701000041000000000010043f0000001101000039000000040010043f00000877010000410000210a00010430000008bd0100004100000000001b04350000084300b0009c000008430b0080410000004001b0021000000886011001c70000210a00010430000000000001042f000008bd010000410000000000160435000008430060009c0000084306008041000000400160021000000886011001c70000210a000104300000001f0530018f0000084506300198000000400200043d0000000004620019000020b90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020a90000c13d000020b90000013d0000001f0530018f0000084506300198000000400200043d0000000004620019000020b90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020b50000c13d000000000005004b000020c60000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008430020009c00000843020080410000004002200210000000000112019f0000210a00010430000008d701000041000000000010043f0000001201000039000000040010043f00000877010000410000210a00010430000000000001042f0000000001000414000008430010009c0000084301008041000000c00110021000000853011001c70000801002000039210821030000040f0000000100200190000020de0000613d000000000101043b000000000001042d00000000010000190000210a0001043000000000050100190000000000200443000000050030008c000020ee0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000020e60000413d000008430030009c000008430300804100000060013002100000000002000414000008430020009c0000084302008041000000c002200210000000000112019f000008e7011001c70000000002050019210821030000040f0000000100200190000020fd0000613d000000000101043b000000000001042d000000000001042f00002101002104210000000102000039000000000001042d0000000002000019000000000001042d00002106002104230000000102000039000000000001042d0000000002000019000000000001042d0000210800000432000021090001042e0000210a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f0000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000000000000000000000000000fffffffffffffddf00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf0200000000000000000000000000000000000040000000000000000000000000bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a5330200000000000000000000000000000000000020000000000000000000000000c3803387881faad271c47728894e3e36fac830ffc8602ca6fc07733cbda77580bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a532eb1b9b92e50b7f88f9ff25d56765095ac6e91540eee214906f4036a908ffbdef39a5844729cae3e308f36a5ce933956d7c6367997d26743ca06a70b77c062d580200000000000000000000000000000000000000000000000000000000000000df1b1bd32a69711488d71554706bb130b1fc63a5fa1a2cd85e8440f84065ba2339a5844729cae3e308f36a5ce933956d7c6367997d26743ca06a70b77c062d591795838dc8ab2ffc5f431a1729a6afa0b587f982f7b2be0b9d7187a1ef547f91ffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000008a5f7f5bb38a81d8e43aca13ecd76431dbf8816ae4699affff7b00b2fc1c464ffffffff000000000000000000000000000000000000000000000000000000002812d52c0000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000a7b607fc10d28a1caf39ab7d27f4c94945db708a576d572781a455c5894fad93a937382a486d993de71c220bc8b559242deb4e286a353fa732330b4aa7d13577ff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000ffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000c35aa79d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000bb77da6f7210cdd16904228a9360133d1d7dfff99b1bc75f128da5b53e28f97dffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff0000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000002000000000000000000000000000000000000c000000000000000000000000094967ae9ea7729ad4f54021c1981765d2b1d954f7c92fbec340aa0a54f46b8b524ecdc020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004de5b1bcbca6018c11303a2c3f4a4b4f22a1c741d8c4ba430d246ac06c5ddf8b0000000200000000000000000000000000000100000001000000000000000000d794ef9500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000007afac32100000000000000000000000000000000000000000000000000000000cc88924b00000000000000000000000000000000000000000000000000000000d8694ccc00000000000000000000000000000000000000000000000000000000f700042900000000000000000000000000000000000000000000000000000000f700042a00000000000000000000000000000000000000000000000000000000ffdb4b3700000000000000000000000000000000000000000000000000000000d8694ccd00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000cc88924c00000000000000000000000000000000000000000000000000000000cdc73d5100000000000000000000000000000000000000000000000000000000d02641a00000000000000000000000000000000000000000000000000000000091a2749900000000000000000000000000000000000000000000000000000000bf78e03e00000000000000000000000000000000000000000000000000000000bf78e03f00000000000000000000000000000000000000000000000000000000c4276bfc0000000000000000000000000000000000000000000000000000000091a2749a00000000000000000000000000000000000000000000000000000000a69c64c0000000000000000000000000000000000000000000000000000000007afac3220000000000000000000000000000000000000000000000000000000082b49eb0000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000407e108500000000000000000000000000000000000000000000000000000000514e8cfe00000000000000000000000000000000000000000000000000000000770e2dc300000000000000000000000000000000000000000000000000000000770e2dc40000000000000000000000000000000000000000000000000000000079ba509700000000000000000000000000000000000000000000000000000000514e8cff000000000000000000000000000000000000000000000000000000006def4ce700000000000000000000000000000000000000000000000000000000407e10860000000000000000000000000000000000000000000000000000000045ac924d000000000000000000000000000000000000000000000000000000004ab35b0b00000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000002451a627000000000000000000000000000000000000000000000000000000003937306f000000000000000000000000000000000000000000000000000000000041e5be00000000000000000000000000000000000000000000000000000000061877e30000000000000000000000000000000000000000000000000000000006285c690000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000002200000000000000000000000004f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000000000000000000000064000000800000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c66000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffbff8d666f600000000000000000000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000000000000000000000000000002386f26fc10000feaf968c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff313ce5670000000000000000000000000000000000000000000000000000000010cb51d100000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d95539132020000020000000000000000000000000000000400000000000000000000000006439c6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000ffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000005af3107a400000000000000000000000000000000000ffffffffffffffffffffffffffffffff181dcf100000000000000000000000000000000000000000000000000000000097a657c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ee433e99000000000000000000000000000000000000000000000000000000004c4fc93a000000000000000000000000000000000000000000000000000000004c056b6a00000000000000000000000000000000000000000000000000000000869337890000000000000000000000000000000000000000000000000000000099ac52f200000000000000000000000000000000000000000000000000000000c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8000000000000002812d52c00000000000000000000000000000000000000000036f536ca00000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000005247fdce000000000000000000000000000000000000000000000000000000006a92a483000000000000000000000000000000000000000000000000000000008579befe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000008000000000000000004e487b71000000000000000000000000000000000000000000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e052f50aa6d1a95a4595361ecf953d095f125d442e4673716dede699e049de148add84a3fa9ef9409f550d54d6affec7e9c480c878c6ab27b78912a03e1b371c6ed86ad9cf00000000000000000000000000000000000000000000000000000000405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5072696365526567697374727920312e362e302d6465760000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000060000001400000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc0000000000000000000000000000000000000000000000000fffffffffffffde0000000000000000000000000000000000000000000000000ffffffffffffff40f08bcb3e000000000000000000000000000000000000000000000000000000002e59db3a0000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/registry_module_owner_custom/registry_module_owner_custom.go b/core/gethwrappers/ccip/generated/registry_module_owner_custom/registry_module_owner_custom.go index 121135075d..acfd19b8e4 100644 --- a/core/gethwrappers/ccip/generated/registry_module_owner_custom/registry_module_owner_custom.go +++ b/core/gethwrappers/ccip/generated/registry_module_owner_custom/registry_module_owner_custom.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package registry_module_owner_custom import ( @@ -39,7 +36,7 @@ var RegistryModuleOwnerCustomABI = RegistryModuleOwnerCustomMetaData.ABI var RegistryModuleOwnerCustomBin = RegistryModuleOwnerCustomMetaData.Bin -func DeployRegistryModuleOwnerCustom(auth *bind.TransactOpts, backend bind.ContractBackend, tokenAdminRegistry common.Address) (common.Address, *types.Transaction, *RegistryModuleOwnerCustom, error) { +func DeployRegistryModuleOwnerCustom(auth *bind.TransactOpts, backend bind.ContractBackend, tokenAdminRegistry common.Address) (common.Address, *generated.Transaction, *RegistryModuleOwnerCustom, error) { parsed, err := RegistryModuleOwnerCustomMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -47,12 +44,16 @@ func DeployRegistryModuleOwnerCustom(auth *bind.TransactOpts, backend bind.Contr if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(RegistryModuleOwnerCustomZKBin), backend, tokenAdminRegistry) + contractReturn := &RegistryModuleOwnerCustom{address: address, abi: *parsed, RegistryModuleOwnerCustomCaller: RegistryModuleOwnerCustomCaller{contract: contractBind}, RegistryModuleOwnerCustomTransactor: RegistryModuleOwnerCustomTransactor{contract: contractBind}, RegistryModuleOwnerCustomFilterer: RegistryModuleOwnerCustomFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RegistryModuleOwnerCustomBin), backend, tokenAdminRegistry) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &RegistryModuleOwnerCustom{address: address, abi: *parsed, RegistryModuleOwnerCustomCaller: RegistryModuleOwnerCustomCaller{contract: contract}, RegistryModuleOwnerCustomTransactor: RegistryModuleOwnerCustomTransactor{contract: contract}, RegistryModuleOwnerCustomFilterer: RegistryModuleOwnerCustomFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &RegistryModuleOwnerCustom{address: address, abi: *parsed, RegistryModuleOwnerCustomCaller: RegistryModuleOwnerCustomCaller{contract: contract}, RegistryModuleOwnerCustomTransactor: RegistryModuleOwnerCustomTransactor{contract: contract}, RegistryModuleOwnerCustomFilterer: RegistryModuleOwnerCustomFilterer{contract: contract}}, nil } type RegistryModuleOwnerCustom struct { @@ -388,3 +389,5 @@ type RegistryModuleOwnerCustomInterface interface { Address() common.Address } + +var RegistryModuleOwnerCustomZKBin = ("0x000100000000000200010000000000020000000003010019000000600330027000000068033001970000000100200190000000230000c13d0000008002000039000000400020043f000000040030008c000000de0000413d000000000201043b000000e0022002700000006f0020009c000000500000613d000000700020009c000000910000613d000000710020009c000000de0000c13d0000000001000416000000000001004b000000de0000c13d000000c001000039000000400010043f0000001f01000039000000800010043f0000007502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f0000011f0000043f00000076010000410000019b0001042e0000000002000416000000000002004b000000de0000c13d0000001f023000390000006902200197000000a002200039000000400020043f0000001f0430018f0000006a05300198000000a002500039000000340000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000300000c13d000000000004004b000000410000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000000de0000413d000000a00100043d0000006b0010009c000000de0000213d0000006b01100198000000a50000c13d000000400100043d0000006d020000410000000000210435000000680010009c000000680100804100000040011002100000006e011001c70000019c00010430000000240030008c000000de0000413d0000000002000416000000000002004b000000de0000c13d0000000401100370000000000101043b0000006b0010009c000000de0000213d0000006b021001970000007203000041000000800030043f0000000003000414000000040020008c000000a00000613d000100000001001d000000680030009c0000006803008041000000c00130021000000073011001c7019a01950000040f000000000301001900000060033002700000006803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000750000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000000710000c13d000000000006004b000000820000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000000d40000c13d0000001f0530018f0000006a06300198000000400200043d0000000004620019000000ee0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000008c0000c13d000000ee0000013d000000240030008c000000de0000413d0000000002000416000000000002004b000000de0000c13d0000000401100370000000000101043b0000006b0010009c000000de0000213d0000006b021001970000007403000041000000800030043f0000000003000414000000040020008c000000ae0000c13d0000000003000031000000200030008c00000020040000390000000004034019000000d50000013d000000800010043f0000014000000443000001600010044300000020010000390000010000100443000000010100003900000120001004430000006c010000410000019b0001042e000100000001001d000000680030009c0000006803008041000000c00130021000000073011001c7019a01950000040f000000800a000039000000000301001900000060033002700000006803300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000c40000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000000c00000c13d000000000006004b000000d10000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000000e30000613d00000001010000290000001f02400039000000600220018f00000080022001bf000000400020043f000000200030008c000000de0000413d000000800200043d0000006b0020009c000000e00000a13d00000000010000190000019c00010430019a01010000040f00000000010000190000019b0001042e0000001f0530018f0000006a06300198000000400200043d0000000004620019000000ee0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000000ea0000c13d000000000005004b000000fb0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000680020009c00000068020080410000004002200210000000000112019f0000019c000104300003000000000002000200000001001d0003006b0020019b0000000001000411000000030010006b0000015b0000c13d000000790100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000680010009c0000006801008041000000c0011002100000007a011001c70000800502000039019a01950000040f0000000100200190000001580000613d000000000101043b0000007b0200004100000000002004430000006b01100197000100000001001d00000004001004430000000001000414000000680010009c0000006801008041000000c0011002100000007c011001c70000800202000039019a01950000040f0000000100200190000001580000613d000000000101043b000000000001004b000001590000613d000000400400043d0000002401400039000000030200002900000000002104350000007d01000041000000000014043500000002010000290000006b051001970000000401400039000000000051043500000000010004140000000102000029000000040020008c000001480000613d000000680040009c000000680300004100000000030440190000004003300210000000680010009c0000006801008041000000c001100210000000000131019f00000078011001c7000200000005001d000100000004001d019a01900000040f0000000104000029000000020500002900000000030100190000006003300270000000680030019d0000000100200190000001700000613d0000007e0040009c0000016a0000813d000000400040043f0000000001000414000000680010009c0000006801008041000000c0011002100000007f011001c70000800d02000039000000030300003900000080040000410000000306000029019a01900000040f0000000100200190000001590000613d000000000001042d000000000001042f00000000010000190000019c0001043000000002010000290000006b01100197000000400200043d0000002403200039000000000013043500000077010000410000000000120435000000040120003900000003030000290000000000310435000000680020009c0000006802008041000000400120021000000078011001c70000019c000104300000008101000041000000000010043f0000004101000039000000040010043f00000082010000410000019c0001043000000068033001970000001f0530018f0000006a06300198000000400200043d00000000046200190000017c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000001780000c13d000000000005004b000001890000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000680020009c00000068020080410000004002200210000000000112019f0000019c00010430000000000001042f00000193002104210000000102000039000000000001042d0000000002000019000000000001042d00000198002104230000000102000039000000000001042d0000000002000019000000000001042d0000019a000004320000019b0001042e0000019c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000002000000000000000000000000000000800000010000000000000000009fabe1c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000ff12c3540000000000000000000000000000000000000000000000000000000096ea2f7a00000000000000000000000000000000000000000000000000000000181f5a778fd6a6ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000052656769737472794d6f64756c654f776e6572437573746f6d20312e352e30000000000000000000000000000000000000000060000000c00000000000000000c454d182000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000e677ae37000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000020000000000000000000000000000000000000000000000000000000000000009590fb70af4b833346363965e043a9339e8c7d378b8a2b903c75c277faec4f94e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/rmn_contract/rmn_contract.go b/core/gethwrappers/ccip/generated/rmn_contract/rmn_contract.go index e314f0243a..92d8d34247 100644 --- a/core/gethwrappers/ccip/generated/rmn_contract/rmn_contract.go +++ b/core/gethwrappers/ccip/generated/rmn_contract/rmn_contract.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package rmn_contract import ( @@ -77,7 +74,7 @@ var RMNContractABI = RMNContractMetaData.ABI var RMNContractBin = RMNContractMetaData.Bin -func DeployRMNContract(auth *bind.TransactOpts, backend bind.ContractBackend, config RMNConfig) (common.Address, *types.Transaction, *RMNContract, error) { +func DeployRMNContract(auth *bind.TransactOpts, backend bind.ContractBackend, config RMNConfig) (common.Address, *generated.Transaction, *RMNContract, error) { parsed, err := RMNContractMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -85,12 +82,16 @@ func DeployRMNContract(auth *bind.TransactOpts, backend bind.ContractBackend, co if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(RMNContractZKBin), backend, config) + contractReturn := &RMNContract{address: address, abi: *parsed, RMNContractCaller: RMNContractCaller{contract: contractBind}, RMNContractTransactor: RMNContractTransactor{contract: contractBind}, RMNContractFilterer: RMNContractFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RMNContractBin), backend, config) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &RMNContract{address: address, abi: *parsed, RMNContractCaller: RMNContractCaller{contract: contract}, RMNContractTransactor: RMNContractTransactor{contract: contract}, RMNContractFilterer: RMNContractFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &RMNContract{address: address, abi: *parsed, RMNContractCaller: RMNContractCaller{contract: contract}, RMNContractTransactor: RMNContractTransactor{contract: contract}, RMNContractFilterer: RMNContractFilterer{contract: contract}}, nil } type RMNContract struct { @@ -2847,3 +2848,5 @@ type RMNContractInterface interface { Address() common.Address } + +var RMNContractZKBin = ("0x00020000000000020017000000000002000100000001035500000000030100190000006003300270000005ba0030019d0000008004000039000000400040043f000005ba033001970000000100200190000006e10000c13d000000040030008c00000bed0000413d000000000201043b000000e002200270000005ea0020009c000001900000c13d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000141034f000000000101043b000a00000001001d000005bd0010009c00000bed0000213d000900240020003d0000000a0100002900000006011002100000000901100029000000000031004b00000bed0000213d0000000b01000039000000000101041a000005bd00100198000000350000613d0000061a01000041000000000010043f0000000a01000039000000200010043f0000061b01000041000000000101041a000006160010019800000b650000c13d0000000401000039000000000101041a000f00000001001d0000000001000411000000000010043f0000000501000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000005bf0020009c00000b1b0000213d0000000f03000029000005ba04300197000000000101043b0000006003200039000000400030043f000000000101041a0000002803100270000000ff0330018f0000004005200039000800000005001d0000000000350435000005ba0310019700000000023204360000002001100270000000ff0110018f000300000002001d0000000000120435000c00000004001d000000000043004b00000cc90000c13d0000000a0000006b000001880000613d0000000002000019000700000000001d000d00000002001d000000060120021000000009011000290000000002100079000005be0020009c00000bed0000213d000000400020008c00000bed0000413d000000400200043d000f00000002001d000006140020009c00000b1b0000213d0000000f020000290000004002200039000000400020043f0000000103000367000000000213034f000000000202043b000005c20020009c00000bed0000213d0000002001100039000000000113034f0000000f030000290000000004230436000000000301043b000e00000004001d0000000000340435000000400100043d00000040041000390000000000340435000000400300003900000000033104360000000000230435000005bf0010009c00000b1b0000213d0000006002100039000000400020043f000005ba0030009c000005ba0300804100000040023002100000000001010433000005ba0010009c000005ba010080410000006001100210000000000121019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000b00000001001d000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400500043d000005c10050009c00000b1b0000213d000000000101043b0000008002500039000000400020043f000000000301041a000000ff003001900000000001000039000000010100c039000000000715043600000060065000390000003801300270000000000016043500000028023002700000ffff0220018f000000400850003900000000002804350000000803300270000005ba033001970000000000370435000000d00000613d0000000f010000290000000001010433000005c201100197000000400200043d00000000011204360000000e0300002900000000030304330000000000310435000005ba0020009c000005ba0200804100000040012002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005ca011001c70000800d0200003900000003030000390000062504000041000000ee0000013d0000000c0030006c000000f80000c13d00000008030000290000000003030433000000ff0330018f0000000f0030008c000008be0000213d000000000431022f00000001004001900000010c0000613d0000000f010000290000000001010433000005c201100197000000400200043d00000000011204360000000e0300002900000000030304330000000000310435000005ba0020009c000005ba0200804100000040012002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005ca011001c70000800d02000039000000030300003900000620040000410000000c05000029000000000600041116e216d80000040f000000010020019000000bed0000613d0000000d0200002900000001022000390000000a0020006c000000600000413d000001830000013d000000400500043d000005c10050009c00000b1b0000213d0000008001500039000000400010043f00000020075000390000000c0100002900000000001704350000006006500039000000000006043500000000000504350000004008500039000000000008043500000008010000290000000001010433000000ff0310018f0000000f0030008c00000000010000190000000002000019000008be0000213d000000010330020f000000000113019f000000000016043500000003030000290000000001030433000000ff0110018f00000000012100190000ffff0010008c000012640000213d000400000007001d000500000006001d000600000005001d000700000008001d000000000018043500000000010304330000000f020000290000000002020433000005c202200197000000400300043d00000000022304360000000e040000290000000004040433000000ff0110018f000000400530003900000000001504350000000000420435000005ba0030009c000005ba0300804100000040013002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000618011001c70000800d02000039000000030300003900000621040000410000000c05000029000000000600041116e216d80000040f000000010020019000000bed0000613d000000070100002900000000010104330000ffff0110018f0000000302000039000000000202041a0000ffff0220018f000000000021004b0000015c0000413d0000000102000039000000060300002900000000002304350000000f020000290000000002020433000005c202200197000000400300043d00000000022304360000000e040000290000000004040433000000400530003900000000001504350000000000420435000005ba0030009c000005ba0300804100000040013002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000618011001c70000800d02000039000000020300003900000622040000410000000c0500002916e216d80000040f000000010020019000000bed0000613d0000000b01000029000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d00000006020000290000000002020433000000000002004b0000000402000029000000000202043300000008022002100000062302200197000000010220c1bf0000000703000029000000000303043300000028033002100000062403300197000000000232019f000000050300002900000000030304330000003803300210000000000232019f000000000101043b000000000021041b0000000d03000029000000010330003900000000020300190000000a0030006c000700010000003d000000600000413d000001860000013d00000007010000290000000100100190000001880000613d0000000001000019000016e30001042e000000400100043d00000626020000410000000000210435000005ba0010009c000005ba010080410000004001100210000005e6011001c7000016e400010430000005eb0020009c0000029c0000a13d000005ec0020009c000002af0000a13d000005ed0020009c000003110000213d000005f10020009c000008c40000613d000005f20020009c0000074e0000613d000005f30020009c00000bed0000c13d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000401100370000000000101043b000006110010019800000bed0000c13d0000000402000039000000000202041a000f00000002001d000000e002000039000000400020043f0000000203000039000000000303041a000005bd0030009c00000b1b0000213d00000005043002100000003f04400039000005c005400197000006120050009c00000b1b0000213d000000e004500039000000400040043f000000e00030043f000000000003004b00000c080000c13d000000e002000039000000800020043f0000000302000039000000000202041a0000ffff0320018f000000a00030043f00000010022002700000ffff0220018f000000c00020043f000005e201100197000000000010043f0000000a01000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d0000000f02000029000705ba0020019b000000000101043b000000000301041a000005ba02300197000000070020006c00000000020000390000000102008039000100000003001d0000004003300270000b00ff0030019400000001022061bf0000006008000039000800010000003d000c00010010003d000a000100200193000600000000001d000900000000001d0000000006080019000001e70000013d000000000004004b0000000801000029000000020010008c000800010010003d0000110f0000813d000500000008001d000300200080003d000400000006001d000200200060003d000000800100043d00000000020104330000000003020019000001f50000013d0000000f03000029000000000003004b000002630000613d000000800100043d0000000002010433000000010330008a000000000023004b000f00000003001d000002030000813d000000050230021000000000012100190000002001100039000000000101043300000060021000390000000002020433000d00ff0020019300000020011000390000000001010433000005c201100197000002050000013d000005c201000041000d00000000001d000e00000001001d000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400300043d000006140030009c00000b1b0000213d000000000101043b0000004002300039000000400020043f000000000201041a0000002001300039000005c6042001970000000000410435000005ba0420019700000000004304350000000a0000006b0000000b03000029000002240000613d000000070040006c0000000103000039000002530000c13d001100000003001d0000000003000415000000110330008a0000000503300210000005ba0020009c0000000503300270000000000300003f000000010300203f000006150020009c000001ef0000413d0000000802000029000005be02200197000000010020008c0000025c0000613d000000020020008c00000bed0000c13d00000006020000290000ffff0220018f0000000d02200029000600000002001d0000ffff0020008c0000000904000029000012640000213d000000000004004b000012640000613d000000010440008a00000005020000290000000002020433000000000042004b000010860000a13d000000050240021000000003032000290000000e05000029000000000053043500000004030000290000000003030433000000000043004b000010860000a13d000900000004001d00000002022000290000000001010433000005c60110019700000000001204350000000f03000029000000000003004b000001f20000c13d000011110000013d0000000003000415000000100330008a00000005033002100000000e04000029000005c20040009c001000000000003d001000010000603d000001ef0000c13d000002280000013d0000000901000029000900010010003e000012640000613d0000000f03000029000000000003004b000001f20000c13d000002680000013d0000000801000029000000010010008c00000005080000290000000406000029000001e30000c13d0000000901000029000005bd0010009c00000b1b0000213d000000090100002900000005011002100000003f02100039000005c003200197000000400400043d00000000023400190000000008040019000000000042004b00000000040000390000000104004039000005bd0020009c00000b1b0000213d000000010040019000000b1b0000c13d000000400020043f0000000902000029000000000428043600000000020000310000000102200367000000000001004b000002860000613d0000000005140019000000000602034f000000006706043c0000000004740436000000000054004b000002820000c13d0000001f04100190000000400500043d00000000033500190000000006050019000000000053004b00000000050000390000000105004039000005bd0030009c00000b1b0000213d000000010050019000000b1b0000c13d000000400030043f00000009030000290000000003360436000000000001004b000001e20000613d0000000001130019000000002502043c0000000003530436000000000013004b000002970000c13d000001e20000013d000005fa0020009c000002bf0000213d000006010020009c000005e30000a13d000006020020009c000008cc0000613d000006030020009c0000080a0000613d000006040020009c00000bed0000c13d0000000001000416000000000001004b00000bed0000c13d0000000b01000039000000000101041a000005bd01100197000000800010043f0000062701000041000016e30001042e000005f40020009c000003d70000a13d000005f50020009c000008dc0000613d000005f60020009c0000081a0000613d000005f70020009c00000bed0000c13d0000000001000416000000000001004b00000bed0000c13d000000000100041a000005c201100197000000800010043f0000062701000041000016e30001042e000005fb0020009c0000061f0000a13d000005fc0020009c00000add0000613d000005fd0020009c000008330000613d000005fe0020009c00000bed0000c13d000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d000000c002000039000000400020043f0000000402100370000000000202043b000005c20020009c00000bed0000213d000000800020043f0000002401100370000000000101043b000000a00010043f000000e00020043f000001000010043f0000004001000039000000c00010043f0000012001000039000000400010043f0000000001000414000005ba0010009c000005ba01008041000000c00110021000000607011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000000ff011001900000030c0000c13d00000004010000390000000101100367000000000101043b000005c20010009c00000bed0000213d000000000010043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001004b0000000001000039000000010100c039000000400200043d00000b990000013d000005ee0020009c00000b020000613d000005ef0020009c000008720000613d000005f00020009c00000bed0000c13d000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d000000c002000039000000400020043f0000000402100370000000000202043b000005c20020009c00000bed0000213d000000800020043f0000002401100370000000000101043b000000a00010043f000000e00020043f000001000010043f0000004001000039000000c00010043f0000012001000039000000400010043f0000000001000414000005ba0010009c000005ba01008041000000c00110021000000607011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400400043d000005c10040009c00000b1b0000213d000000000101043b0000008002400039000000400020043f000000000501041a00000060014000390000003802500270000000000021043500000028015002700000ffff0310018f000000400140003900000000003104350000000801500270000005ba0110019700000020064000390000000000160435000000ff005001900000000006000039000000010600c039000e00000006001d000000000064043500000060040000390000000406000039000000000606041a000005ba06600197000000000061004b000f00000000001d0000000001040019000003c10000c13d000006080050009c000008be0000213d000006090050009c0000000005000019000003710000413d000000000602001900000000010200190000000005000019000000ff0550018f000000ff0050008c000012640000613d000000010660008a000000000116016f0000000105500039000005c406100198000003690000c13d00000005065002100000003f0160003900003fe00810018f000000400100043d0000000007180019000000000087004b00000000080000390000000108004039000005bd0070009c00000b1b0000213d000000010080019000000b1b0000c13d000000400070043f00000000055104360000001f0760018f000000000006004b0000038a0000613d0000000006650019000000000800003100000001088003670000000009050019000000008a08043c0000000009a90436000000000069004b000003860000c13d000000000007004b0000000209000039000000000809041a000005bd0080009c00000b1b0000213d00000005068002100000003f06600039000005c007600197000000400600043d0000000007760019000000000067004b000000000a000039000000010a004039000005bd0070009c00000b1b0000213d0000000100a0019000000b1b0000c13d000000400070043f0000000007860436000000000090043f000000000008004b000003bd0000613d0000060a09000041000000000a000019000000000b060019000000400c00043d000005c100c0009c00000b1b0000213d000000800dc000390000004000d0043f000000000d09041a000005c20dd00197000000000ddc0436000000010e9001bf000000000e0e041a000005c20fe001970000000000fd0435000000a80de00270000000ff0dd0018f000000600fc000390000000000df0435000000a00de00270000000ff0dd0018f000000400ec000390000000000de0435000000200bb000390000000000cb04350000000209900039000000010aa0003900000000008a004b000003a30000413d0000000009060433000000000009004b0000106b0000c13d000f00000003001d000000400300043d000c00000003001d0000000002430436000d00000002001d000000600230003916e213da0000040f0000000c0400002900000040024000390000000e0300002900000000003204350000000f020000290000000d0300002900000000002304350000000001410049000005ba0010009c000005ba010080410000006001100210000005ba0040009c000005ba040080410000004002400210000000000121019f000016e30001042e000005f80020009c0000088d0000613d000005f90020009c00000bed0000c13d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000441034f000000000504043b000005bd0050009c00000b1b0000213d00000005045002100000003f04400039000005c004400197000005c10040009c00000b1b0000213d0000008004400039000000400040043f000000800050043f000000240220003900000007045002100000000004240019000000000034004b00000bed0000213d000000000005004b00000c270000c13d000000000100041a000005c2011001970000000002000411000000000012004b00000c730000c13d000000800100043d000000000001004b0000061c0000613d0000000401000039000000000101041a000e05ba0010019b0000000002000019000800000000001d000700000000001d0000043e0000013d0000000002000415000000120220008a0000000502200210000000000006004b001200000000003d001200010000603d00000000040000190000000103000039000a00000000001d0000053b0000613d0000000d0200002900000000320204340000000003030433000005c601100197000000400400043d00000020054000390000000000150435000005c60130019700000040034000390000000000130435000005e2012001970000000000140435000005ba0040009c000005ba0400804100000040014002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000618011001c70000800d0200003900000002030000390000063a04000041000000000506001916e216d80000040f0000000100200190000c00000000001d00000bed0000613d000000070000006b0000000c03000029000000070300c029000000080000006b0000000a04000029000000080400c02900000006020000290000000102200039000000800100043d000000000012004b000800000004001d000700000003001d000010fc0000813d000600000002001d0000000501200210000000a0011000390000000001010433000a00000001001d0000002001100039000900000001001d00000000010104330000000001010433000005e201100197000000000010043f0000000a01000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000401043b000000000104041a000005ba021001970000000e0020006b000b00000004001d000c00010040003d000004a20000613d000005c6021001970000000e022001af0000000b05000029000000000025041b0000000302000039000000000202041a00000010022002100000062d022001970000062e03100197000000000223019f0000000e022001af000000000025041b0000061600100198000004a20000613d0000000201000039000000000101041a000000000001004b000004a20000613d00000000020000190000047a0000013d0000062f0110019700000030022002100000063002200197000000000112019f000000000014041b0000000f0200002900000001022000390000000201000039000000000101041a000000000012004b000004a20000813d000f00000002001d0000000101200210000005cc0110009a000d00000001001d000000000101041a000005c201100197000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006150020009c000004740000413d000005ba032001970000000e0030006c000004740000813d000005c6022001970000000e022001af000000000021041b0000000d01000029000000000101041a000000a801100270000000ff0210018f0000000b04000029000000000104041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c0000046f0000a13d000012640000013d00000009010000290000000001010433000d00000001001d0000000a0200002900000040012000390000000001010433000900000001001d0000000001020433000005c201100197000f00000001001d000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000a00000001001d0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400400043d000006140040009c00000b1b0000213d000000000101043b0000004002400039000000400020043f000000000201041a000005ba032001970000000007340436000005c60120019700000000001704350000000a04000029000000000404041a000000ff004001900000000f060000290000040a0000613d000005c20060009c000004dc0000c13d0000000004000415000000150440008a0000000504400210001500010000003d000004e30000013d0000000004000415000000140440008a00000005044002100000000e0030006c001400000000003d001400010000603d0000040a0000c13d000005ba0020009c0000000503400270000000000300003f000000010300203f000006150020009c0000040a0000413d0000000d030000290000002003300039000500000003001d0000000003030433000000000223013f000006150020009c000004f20000413d000000090000006b0000040a0000613d000400000007001d000000000060043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b0000000a01000029000000000101041a0000000801100270000000ff0110018f0000000b04000029000000000204041a00000030032002700000ffff0330018f00000000011300490000ffff0010008c000012640000213d0000062f0220019700000030031002100000063003300197000000000223019f000000000024041b0000000d0200002900000000020204330000000a03000029000000000303041a00000005040000290000000004040433000000400500043d00000060065000390000000000160435000005c601400197000000400450003900000000001404350000000801300270000000ff0110018f00000020035000390000000000130435000005e2012001970000000000150435000005ba0050009c000005ba0500804100000040015002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000636011001c70000800d02000039000000030300003900000637040000410000000e050000290000000f0600002916e216d80000040f000000010020019000000bed0000613d0000000002000415000000130220008a0000000502200210001300010000003d000000010400003900000000030000190000000407000029000a00000003001d000400000007001d000500000004001d0000000b01000029000000000101041a00000040011002700000000502200270000000ff02100195000000ff00100190000005810000613d000005c201000041000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000005ba0010009c000005810000213d0000000b01000029000000000101041a00000020021002700000ffff0220018f00000030031002700000ffff0330018f000000000023004b000005810000813d00000633011001970000000b02000029000000000012041b0000000b01000039000000000101041a000005bd00100198000012640000613d0000062e02100197000000010110008a000005bd01100197000000000121019f0000000b02000039000000000012041b0000000d010000290000000001010433000005e201100197000000400200043d0000000000120435000005ba0020009c000005ba0200804100000040012002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000638011001c70000800d020000390000000103000039000006390400004116e216d80000040f0000000100200190000c00010000003d000005890000c13d00000bed0000013d0000000a0000006b000005880000613d00000004010000290000000001010433000a00050000002d0000000f06000029000004140000013d000c00000000001d000000400100043d000a00000001001d000005db0010009c00000b1b0000213d0000000b01000029000000000101041a000b00000001001d0000000d010000290000000001010433000400000001001d0000000a02000029000000c001200039000000400010043f000000090000006b0000000201000039000000030100c0390000000001120436000d00000001001d000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d0000000402000029000005e202200197000000000301043b0000000a060000290000008001600039000000000021043500000060026000390000000f0400002900000000004204350000000b0400002900000616004001980000000005000039000000010500c03900000040046000390000000000540435000005bd033001970000000d0500002900000000080500190000000000350435000000a00360003900000000000304350000000c05000039000000000605041a000005bd0060009c00000b1b0000213d00000001056000390000000c07000039000000000057041b000000000070043f0000000a050000290000000005050433000000040050008c000013b30000213d00000000070804330000000807700210000005dd077001970000000106600210000005de0860009a000000000908041a000005df09900197000000000779019f0000000004040433000000000004004b000005e0040000410000000004006019000000000447019f00000000020204330000005002200210000005e102200197000000000224019f000000000252019f000000000028041b000000000101043300000080011002700000000002030433000005e202200197000000000112019f000005e30260009a000000000012041b000a00050000002d000004310000013d000006050020009c00000b210000613d000006060020009c00000bed0000c13d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000441034f000000000504043b000005bd0050009c00000b1b0000213d00000005045002100000003f04400039000005c004400197000005c10040009c00000b1b0000213d0000008004400039000000400040043f000000800050043f000000240220003900000006045002100000000004240019000000000034004b00000bed0000213d000000000005004b00000c580000c13d0000000001000411000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000600000001001d000000000101041a000000ff0010019000000cc90000613d000000800100043d000000000001004b00000cfd0000c13d000000400100043d00000647020000410000018a0000013d000005ff0020009c00000b480000613d000006000020009c00000bed0000c13d000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000441034f000000000504043b000005bd0050009c00000b1b0000213d00000005045002100000003f06400039000005c006600197000005c10060009c00000b1b0000213d0000008006600039000000400060043f000000800050043f00000024022000390000000004240019000000000034004b00000bed0000213d000000000005004b0000064c0000613d0000008005000039000000000621034f000000000606043b000005c20060009c00000bed0000213d000000200550003900000000006504350000002002200039000000000042004b000006430000413d0000002402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b0000000005000019000005c505008041000005c504400197000000000004004b0000000006000019000005c506004041000005c50040009c000000000605c019000000000006004b00000bed0000c13d0000000404200039000000000441034f000000000404043b000005bd0040009c00000b1b0000213d00000005054002100000003f06500039000005c006600197000000400700043d0000000006670019000b00000007001d000000000076004b00000000070000390000000107004039000005bd0060009c00000b1b0000213d000000010070019000000b1b0000c13d000000400060043f0000000b060000290000000006460436000a00000006001d00000024022000390000000005250019000000000035004b00000bed0000213d000000000004004b000006820000613d0000000b03000029000000000421034f000000000404043b000005c20040009c00000bed0000213d000000200330003900000000004304350000002002200039000000000052004b000006790000413d000000000100041a000005c2011001970000000002000411000000000012004b00000c730000c13d000000800100043d000000000001004b0000108c0000c13d0000000b010000290000000001010433000000000001004b000001860000613d000f00000000001d000006960000013d0000000f02000029000f00010020003d0000000b0100002900000000010104330000000f0010006b000001860000813d0000000f0100002900000005011002100000000a01100029000d00000001001d0000000001010433000005c201100197000e00000001001d000000000010043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000000000001004b000006900000c13d0000000701000039000000000101041a000005bd0010009c00000b1b0000213d00000001021000390000000703000039000000000023041b000006410110009a0000000e02000029000000000021041b000000000103041a000c00000001001d000000000020043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b0000000c02000029000000000021041b0000000b0100002900000000010104330000000f0010006c000010860000a13d0000000d010000290000000001010433000005c201100197000000400200043d0000000000120435000005ba0020009c000005ba0200804100000040012002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000638011001c70000800d020000390000000103000039000006420400004116e216d80000040f0000000100200190000006900000c13d00000bed0000013d0000000002000416000000000002004b00000bed0000c13d0000001f02300039000005bb022001970000008002200039000000400020043f0000001f0530018f000005bc063001980000008002600039000006f10000613d000000000701034f000000007807043c0000000004840436000000000024004b000006ed0000c13d000000000005004b000006fe0000613d000000000461034f0000000305500210000000000602043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f0000000000420435000000200030008c00000bed0000413d000000800200043d000005bd0020009c00000bed0000213d000000800430003900000080062000390000000005640049000005be0050009c00000bed0000213d000000600050008c00000bed0000413d000000400500043d000f00000005001d000005bf0050009c00000b1b0000213d0000000f050000290000006005500039000000400050043f0000000007060433000005bd0070009c00000bed0000213d00000000066700190000001f07600039000000000047004b00000bed0000813d0000000068060434000005bd0080009c00000b1b0000213d00000005078002100000003f07700039000005c0077001970000000007570019000005bd0070009c00000b1b0000213d000000400070043f000000000085043500000007078002100000000007670019000000000047004b00000bed0000213d000000000008004b000010460000c13d0000000f040000290000000004540436000700000004001d000000a00420003900000000040404330000ffff0040008c00000bed0000213d00000007050000290000000000450435000000c00220003900000000020204330000ffff0020008c00000bed0000213d0000000f040000290000004004400039000600000004001d0000000000240435000000400200043d0000000004000411000000000004004b000011880000c13d0000004401200039000005e7030000410000000000310435000000240120003900000018030000390000000000310435000005e8010000410000000000120435000000040120003900000020030000390000000000310435000005ba0020009c000005ba020080410000004001200210000005e9011001c7000016e400010430000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000141034f000000000101043b000800000001001d000005bd0010009c00000bed0000213d000700240020003d000000080100002900000006011002100000000701100029000000000031004b00000bed0000213d000000000100041a000005c2011001970000000002000411000000000012004b00000b730000c13d000000080000006b000001860000613d0000000401000039000000000101041a000a05ba0010019b000e00000000001d000007940000013d0000000f020000290000000002020433000005c202200197000000400300043d000000000223043600000009040000290000000004040433000000000001004b0000000001000039000000010100c039000000400530003900000000001504350000000000420435000005ba0030009c000005ba0300804100000040013002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000618011001c70000800d02000039000000020300003900000619040000410000000a0500002916e216d80000040f000000010020019000000bed0000613d0000000e020000290000000102200039000e00000002001d000000080020006c000001860000813d0000000e01000029000000060110021000000007011000290000000002100079000005be0020009c00000bed0000213d000000400020008c00000bed0000413d000000400200043d000f00000002001d000006140020009c00000b1b0000213d0000000f020000290000004002200039000000400020043f0000000103000367000000000213034f000000000202043b000005c20020009c00000bed0000213d0000002001100039000000000113034f0000000f030000290000000004230436000000000301043b000900000004001d0000000000340435000000400100043d00000040041000390000000000340435000000400300003900000000033104360000000000230435000005bf0010009c00000b1b0000213d0000006002100039000000400020043f000005ba0030009c000005ba0300804100000040023002100000000001010433000005ba0010009c000005ba010080410000006001100210000000000121019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000c00000001001d000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000d00000002001d000005c10020009c00000b1b0000213d000000000101043b0000000d040000290000008002400039000000400020043f000000000101041a00000060024000390000003803100270000000000032043500000028021002700000ffff0220018f00000040034000390000000000230435000000ff001001900000000002000039000000010200c03900000000022404360000000801100270000005ba01100197000b00000002001d00000000001204350000000c01000029000000000010043f0000000601000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b0000000d0100002900000000010104330000000b020000290000000002020433000005ba022001970000000a0020006c000007720000613d000000000001004b0000078f0000613d000007720000013d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000401100370000000000101043b000006110010019800000bed0000c13d00000080020000390000000b03000039000000000303041a000005bd0030019800000b7d0000c13d000000000300001900000b960000013d0000000001000416000000000001004b00000bed0000c13d0000000101000039000000000201041a000005c2032001970000000006000411000000000036004b00000b690000c13d000000000300041a000005c304300197000000000464019f000000000040041b000005c302200197000000000021041b0000000001000414000005c205300197000005ba0010009c000005ba01008041000000c001100210000005d9011001c70000800d020000390000000303000039000006290400004100000bea0000013d000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000502043b000005bd0050009c00000bed0000213d0000000002530049000005be0020009c00000bed0000213d000000640020008c00000bed0000413d000000e002000039000000400020043f0000000404500039000000000641034f000000000606043b000005bd0060009c00000bed0000213d00000000055600190000002306500039000000000036004b00000bed0000813d0000000406500039000000000661034f000000000706043b000005bd0070009c00000b1b0000213d00000005067002100000003f06600039000005c006600197000006120060009c00000b1b0000213d000000e006600039000000400060043f000000e00070043f000000240550003900000007067002100000000006560019000000000036004b00000bed0000213d000000000007004b00000cd40000c13d000000800020043f0000002002400039000000000321034f000000000303043b0000ffff0030008c00000bed0000213d000000a00030043f0000002002200039000000000121034f000000000101043b0000ffff0010008c00000bed0000213d000000c00010043f16e214690000040f000000800100003916e214800000040f0000000001000019000016e30001042e000000240030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000401100370000000000101043b000005c20010009c00000bed0000213d000000000200041a000005c2022001970000000005000411000000000025004b00000b730000c13d000005c206100197000000000056004b00000bdd0000c13d000005e801000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000060c01000041000000c40010043f0000060d01000041000016e400010430000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000f00000002001d000006110020019800000bed0000c13d0000002402100370000000000202043b000005bd0020009c00000bed0000213d0000002304200039000000000034004b00000bed0000813d0000000404200039000000000441034f000000000504043b000005bd0050009c00000b1b0000213d00000005045002100000003f06400039000005c006600197000005c10060009c00000b1b0000213d0000008006600039000000400060043f000000800050043f00000024022000390000000004240019000000000034004b00000bed0000213d000000000005004b000008bb0000613d0000008003000039000000000521034f000000000505043b000006110050019800000bed0000c13d000000200330003900000000005304350000002002200039000000000042004b000008b20000413d0000000001000411000005c20010009c00000cb80000c13d0000063f01000041000000000010043f0000000101000039000000040010043f0000061f01000041000016e4000104300000000001000416000000000001004b00000bed0000c13d0000000c01000039000000000101041a000000800010043f0000062701000041000016e30001042e0000000001000416000000000001004b00000bed0000c13d000000c001000039000000400010043f0000000901000039000000800010043f0000064502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f000001090000043f0000064601000041000016e30001042e000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b000006110020019800000bed0000c13d0000002404100370000000000404043b000005bd0040009c00000bed0000213d0000002305400039000000000035004b00000bed0000813d0000000405400039000000000551034f000000000605043b000005bd0060009c00000b1b0000213d00000005056002100000003f07500039000005c007700197000005c10070009c00000b1b0000213d0000008007700039000000400070043f000000800060043f00000024044000390000000005450019000000000035004b00000bed0000213d000000000006004b000009090000613d0000008003000039000000000641034f000000000606043b000006110060019800000bed0000c13d000000200330003900000000006304350000002004400039000000000054004b000009000000413d000000000100041a000005c2011001970000000003000411000000000013004b00000c730000c13d000005c201000041000000000010043f0000000901000039000000200010043f000000800100043d000000000001004b00000e650000613d000005e201200197000800000001001d000000000010043f0000062a01000041000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000000ff0010019000000e680000c13d0000000801000029000000000010043f0000062a01000041000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006490220019700000001022001bf000000000021041b000000800100043d000000000001004b000001860000613d0000000402000039000000000202041a000e05ba0020019b000900000000001d000000090000006b000009520000613d0000000902000029000000010220008a000000000021004b000010860000a13d00000009010000290000000501100210000000a0011000390000000001010433000a05e20010019b0000000501200210000000a0011000390000000001010433000005e2011001970000000a0010006c000009540000413d000011a90000013d000000a00100043d000a05e20010019b0000000a01000029000000000010043f0000000a01000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000401043b000000000104041a000005ba021001970000000e0020006b000d00000004001d000c00010040003d000009b00000613d000005c6021001970000000e022001af0000000d05000029000000000025041b0000000302000039000000000202041a00000010022002100000062d022001970000062e03100197000000000223019f0000000e022001af000000000025041b0000061600100198000009b00000613d0000000201000039000000000101041a000000000001004b000009b00000613d000f00000000001d000009820000013d0000000f02000029000f00010020003d0000000201000039000000000101041a0000000f0010006b000009b00000813d0000000f010000290000000101100210000005cc0110009a000b00000001001d000000000101041a000005c201100197000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006150020009c0000097c0000413d000005ba032001970000000e0030006c0000097c0000813d000005c6022001970000000e022001af000000000021041b0000000b01000029000000000101041a000000a801100270000000ff0210018f0000000d01000029000000000101041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c000012640000213d0000062f0110019700000030022002100000063002200197000000000112019f0000000d02000029000000000012041b0000097c0000013d000005c201000041000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000006140020009c00000b1b0000213d000000000101043b0000004003200039000000400030043f000000000101041a000005ba031001970000000002320436000005c601100198000b00000001001d0000000000120435000009db0000c13d000005d401000041000000000101041a0000000801100270000000ff0210018f0000000d01000029000000000101041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c000012640000213d0000062f0110019700000030022002100000063002200197000000000112019f0000000d02000029000000000012041b000000400100043d000000400210003900000008030000290000000000320435000000400200003900000000022104360000000b030000290000000000320435000005bf0010009c00000b1b0000213d0000006003100039000000400030043f000005ba0020009c000005ba0200804100000040022002100000000001010433000005ba0010009c000005ba010080410000006001100210000000000121019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000f00000002001d000006140020009c00000b1b0000213d000000000101043b0000000f030000290000004002300039000000400020043f0000000e020000290000000002230436000005c601100197000700000002001d0000000000120435000005c201000041000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d0000000f020000290000000002020433000005ba0220019700000007030000290000000003030433000705c60030019b00000007022001af000000000101043b000000000021041b0000000d01000029000000000101041a000f00000001001d000005d401000041000000000101041a000000400400043d0000002002400039000000080300002900000000003204350000000801100270000000ff0110018f000000400240003900000000001204350000000a01000029000600000004001d0000000000140435000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d000000000101043b00000006040000290000008002400039000000070300002900000000003204350000000f0200002900000030022002700000ffff0220018f000000a0034000390000000000230435000005bd021001970000006001400039000700000002001d0000000000210435000005ba0040009c000005ba0400804100000040014002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000631011001c70000800d02000039000000030300003900000632040000410000000e05000029000005c20600004116e216d80000040f000000010020019000000bed0000613d0000000f0100002900000616011001970000000b001001b000000a990000c13d000005c201000041000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000005ba0010009c00000a730000213d0000000d01000029000000000101041a00000020021002700000ffff0220018f00000030011002700000ffff0110018f000000000021004b00000a990000413d0000000f01000029000006330110019700000634011001c70000000d02000029000000000012041b0000000b01000039000000000101041a000005bd02100197000005bd0020009c000012640000613d0000062e021001970000000101100039000005bd01100197000000000121019f0000000b02000039000000000012041b000000400100043d0000002002100039000000070300002900000000003204350000000a020000290000000000210435000005ba0010009c000005ba0100804100000040011002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005ca011001c70000800d02000039000000020300003900000635040000410000000e0500002916e216d80000040f000000010020019000000bed0000613d000000400400043d000005db0040009c00000b1b0000213d0000000d01000029000000000501041a000000c001400039000000400010043f000000a0014000390000000802000029000000000021043500000080024000390000000a0300002900000000003204350000006003400039000005c206000041000000000063043500000020064000390000000707000029000000000076043500000616005001980000000007000039000000010700c0390000004005400039000000000075043500000000000404350000000c07000039000000000707041a000005bd0070009c00000b1b0000213d00000001087000390000000c09000039000000000089041b000000000090043f0000000004040433000000040040008c000013b30000213d00000000060604330000000806600210000005dd066001970000000107700210000005de0870009a000000000908041a000005df09900197000000000669019f0000000005050433000000000005004b000005e0050000410000000005006019000000000556019f00000000030304330000005003300210000005e103300197000000000335019f000000000343019f000000000038041b000000000202043300000080022002700000000001010433000005e201100197000000000121019f000005e30270009a000000000012041b0000000902000029000900010020003d000000800100043d000000090010006b000009400000413d000001860000013d0000000001000416000000000001004b00000bed0000c13d000000e001000039000000400010043f0000006001000039000000800010043f000000a00000043f000000c00000043f0000000401000039000000000101041a000e00000001001d16e214280000040f0000000e050000290000002002500270000005ba02200197000000400400043d000f00000004001d00000020034000390000000000230435000000400240003900000060030000390000000000320435000005ba025001970000000000240435000000600240003916e213fa0000040f0000000f020000290000000001210049000005ba0010009c000005ba01008041000005ba0020009c000005ba0200804100000060011002100000004002200210000000000121019f000016e30001042e000000440030008c00000bed0000413d0000000002000416000000000002004b00000bed0000c13d0000000402100370000000000202043b0000002401100370000000000101043b000000000021001a000012640000413d00000000052100190000000c03000039000000000403041a000000000045004b00000b140000a13d000000000124004b00000b9f0000a13d000005bd0010009c00000b1b0000213d00000005061002100000003f056000390000060e07500197000005c10070009c00000ba30000a13d0000063f01000041000000000010043f0000004101000039000000040010043f0000061f01000041000016e4000104300000000001000416000000000001004b00000bed0000c13d0000000702000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b00000b360000613d000000a004000039000006480200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b00000b2e0000413d000000600250008a000000800100003916e213e80000040f000000400200043d000f00000002001d00000020010000390000000002120436000000800100003916e213da0000040f0000000f020000290000000001210049000005ba0010009c000005ba010080410000006001100210000005ba0020009c000005ba020080410000004002200210000000000121019f000016e30001042e0000000001000416000000000001004b00000bed0000c13d0000000b01000039000000000101041a000005bd00100198000000000100001900000b5f0000613d0000061a01000041000000000010043f0000000a01000039000000200010043f0000061b01000041000000000101041a0000004001100270000000ff0110019000000b5f0000c13d0000064301000041000000000010043f0000064401000041000000000101041a0000004001100270000000ff0110018f000000000001004b0000000001000039000000010100c039000000800010043f0000062701000041000016e30001042e0000061c01000041000000800010043f0000061d01000041000016e400010430000005e801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000062801000041000000c40010043f0000060d01000041000016e400010430000005e801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000061701000041000000c40010043f0000060d01000041000016e4000104300000061a03000041000000000030043f0000000a03000039000000200030043f0000061b03000041000000000303041a0000004003300270000000ff0330019000000b960000c13d000005e201100197000000000010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000000000101043b000000000101041a0000004001100270000000ff0310018f000000000003004b0000000001000039000000010100c0390000000000120435000005ba0020009c000005ba0200804100000040012002100000063d011001c7000016e30001042e000000a005000039000000400050043f000000800000043f00000ba80000013d0000008005700039000000400050043f000000800010043f000000000001004b00000bef0000c13d00000020010000390000000001150436000000800200043d00000000002104350000004001500039000000000002004b00000bd40000613d00000080030000390000000004000019000000200330003900000000060304330000000078060434000000040080008c000013b30000213d00000000088104360000000007070433000005bd07700197000000000078043500000040076000390000000007070433000000000007004b0000000007000039000000010700c0390000004008100039000000000078043500000060076000390000000007070433000005c2077001970000006008100039000000000078043500000080076000390000000007070433000005e20770019700000080081000390000000000780435000000a0066000390000000006060433000005e206600197000000a0071000390000000000670435000000c0011000390000000104400039000000000024004b00000bb10000413d0000000001510049000005ba0010009c000005ba010080410000006001100210000005ba0050009c000005ba050080410000004002500210000000000121019f000016e30001042e0000000101000039000000000201041a000005c302200197000000000262019f000000000021041b0000000001000414000005ba0010009c000005ba01008041000000c001100210000005d9011001c70000800d0200003900000003030000390000060b0400004116e216d80000040f0000000100200190000001860000c13d0000000001000019000016e4000104300000060f0070009c00000b1b0000213d0000000007000019000000c008500039000000400080043f000000a0085000390000000000080435000000800850003900000000000804350000006008500039000000000008043500000040085000390000000000080435000000200850003900000000000804350000000000050435000000a00870003900000000005804350000002007700039000000000067004b00000c840000813d000000400500043d000005db0050009c00000bf20000a13d00000b1b0000013d000006130050009c00000b1b0000213d0000060a0500004100000000060000190000008007400039000000400070043f000000000705041a000005c207700197000000000774043600000001085001bf000000000808041a000005c2098001970000000000970435000000a807800270000000ff0770018f00000060094000390000000000790435000000a007800270000000ff0770018f00000040084000390000000000780435000000200220003900000000004204350000000106600039000000000036004b000001b80000813d0000000205500039000000400400043d000005c10040009c00000c0c0000a13d00000b1b0000013d000000a0050000390000000006230049000005be0060009c00000bed0000213d000000800060008c00000bed0000413d000000400600043d000005bf0060009c00000b1b0000213d0000006007600039000000400070043f000000000721034f000000000707043b000005c20070009c00000bed0000213d0000000007760436000000400800043d000006140080009c00000b1b0000213d0000004009800039000000400090043f0000002009200039000000000a91034f000000000a0a043b0000061100a0019800000bed0000c13d000000000aa804360000002009900039000000000b91034f000000000b0b043b000005ba00b0019800000bed0000c13d0000000000ba043500000000008704350000002007900039000000000771034f000000000707043b000000000007004b0000000008000039000000010800c039000000000087004b00000bed0000c13d0000004008600039000000000078043500000000056504360000008002200039000000000042004b00000c280000413d000003fb0000013d000000a0050000390000000006230049000005be0060009c00000bed0000213d000000400060008c00000bed0000413d000000400600043d000006140060009c00000b1b0000213d0000004007600039000000400070043f000000000721034f000000000707043b000006110070019800000bed0000c13d00000000077604360000002008200039000000000881034f000000000808043b000005ba0080019800000bed0000c13d000000000087043500000000056504360000004002200039000000000042004b00000c590000413d000006070000013d000000400100043d000000440210003900000617030000410000000000320435000000240210003900000016030000390000000000320435000005e8020000410000000000210435000000040210003900000020030000390000000000320435000005ba0010009c000005ba010080410000004001100210000005e9011001c7000016e40001043000000000050000190000000007250019000000000047004b000010860000813d000000000030043f000000400600043d000005db0060009c00000b1b0000213d0000000107700210000000c008600039000000400080043f000005de0870009a000000000908041a000000ff0890018f000000040080008c000013b30000213d000000500a900270000005c20aa00197000000600b6000390000000000ab04350000061000900198000000000a000039000000010a00c039000000400b6000390000000000ab04350000000809900270000005bd09900197000000200a60003900000000009a04350000000000860435000005e30770009a000000000707041a000000a008600039000005e2097001970000000000980435000000800860003900000080077002100000000000780435000000800700043d000000000057004b000010860000a13d0000000507500210000000a0077000390000000000670435000000800600043d000000000056004b000010860000a13d0000000105500039000000000015004b00000c850000413d000000400500043d00000ba80000013d000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000500000001001d000000000101041a000000ff0010019000000e620000c13d000000400100043d0000061e020000410000000000210435000000040210003900000000030004110000000000320435000005ba0010009c000005ba0100804100000040011002100000061f011001c7000016e40001043000000100070000390000000008530049000005be0080009c00000bed0000213d000000800080008c00000bed0000413d000000400800043d000005c10080009c00000b1b0000213d0000008009800039000000400090043f000000000951034f000000000909043b000005c20090009c00000bed0000213d000000000a9804360000002009500039000000000b91034f000000000b0b043b000005c200b0009c00000bed0000213d0000000000ba04350000002009900039000000000a91034f000000000a0a043b000000ff00a0008c00000bed0000213d000000400b8000390000000000ab04350000002009900039000000000991034f000000000909043b000000ff0090008c00000bed0000213d000000600a80003900000000009a043500000000078704360000008005500039000000000065004b00000cd50000413d000008600000013d0000000401000039000000000101041a000e05ba0010019b0000000001000411000005c20010009c00000000010000390000000101006039000500000001001d0000000003000019000800000000001d00000d2c0000013d000000090200002900000000020204330000000a030000290000000003030433000000400400043d00000020064000390000000000160435000005c60130019700000040034000390000000000130435000005e2012001970000000000140435000005ba0040009c000005ba0400804100000040014002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000618011001c70000800d0200003900000002030000390000063a0400004116e216d80000040f0000000100200190000000000100001900000bed0000613d000000080000006b000000080100c02900000007030000290000000103300039000000800200043d000000000023004b000800000001001d000011470000813d000700000003001d0000000501300210000000a0011000390000000001010433000900000001001d0000000021010434000a00000002001d000005e201100197000000000010043f0000000a01000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000401043b000000000104041a000005ba021001970000000e0020006b000b00000004001d000c00010040003d00000d8e0000613d000005c6021001970000000e022001af0000000b05000029000000000025041b0000000302000039000000000202041a00000010022002100000062d022001970000062e03100197000000000223019f0000000e022001af000000000025041b000006160010019800000d8e0000613d0000000201000039000000000101041a000000000001004b00000d8e0000613d000000000200001900000d610000013d0000000f0200002900000001022000390000000201000039000000000101041a000000000012004b00000d8e0000813d000f00000002001d0000000101200210000005cc0110009a000d00000001001d000000000101041a000005c201100197000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006150020009c00000d5b0000413d000005ba032001970000000e0030006c00000d5b0000813d000005c6022001970000000e022001af000000000021041b0000000d01000029000000000101041a000000a801100270000000ff0210018f0000000b04000029000000000104041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c000012640000213d0000062f0110019700000030022002100000063002200197000000000112019f000000000014041b00000d5b0000013d0000000001000411000005c20010009c000008be0000613d000000000001004b000008be0000613d000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400300043d000006140030009c00000b1b0000213d000000000101043b0000004002300039000000400020043f000000000201041a0000002004300039000005c6012001970000000000140435000005ba0420019700000000004304350000000603000029000000000303041a000000ff00300190000000000500041100000d080000613d000005c20050009c00000db70000c13d001700050000002d0000000003000415000000170330008a000000050330021000000dbe0000013d0000000003000415000000160330008a00000005033002100000000e0040006c001600000000003d001600010000603d00000d080000c13d000005ba0020009c0000000503300270000000000300003f000000010300203f000006150020009c00000d080000413d0000000a030000290000000003030433000000000223013f000005ba0020009c00000d080000213d000000000050043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b0000000601000029000000000101041a0000000801100270000000ff0110018f0000000b04000029000000000204041a00000030032002700000ffff0330018f00000000011300490000ffff0010008c000012640000213d0000062f0220019700000030031002100000063003300197000000000223019f000000000024041b000000090200002900000000020204330000000603000029000000000303041a0000000a040000290000000004040433000000400500043d00000060065000390000000000160435000005c601400197000000400450003900000000001404350000000801300270000000ff0110018f00000020035000390000000000130435000005e2012001970000000000150435000005ba0050009c000005ba0500804100000040015002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000636011001c70000800d02000039000000030300003900000637040000410000000e05000029000000000600041116e216d80000040f000000010020019000000bed0000613d000000400100043d000f00000001001d000005db0010009c00000b1b0000213d0000000b01000029000000000101041a000c00000001001d00000009010000290000000001010433000b00000001001d0000000f02000029000000c001200039000000400010043f00000001010000390000000001120436000d00000001001d000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d0000000b02000029000005e202200197000000000301043b0000000f06000029000000800160003900000000002104350000006002600039000000000400041100000000004204350000000c0400002900000616004001980000000005000039000000010500c03900000040046000390000000000540435000005bd033001970000000d050000290000000000350435000000a00360003900000000000304350000000c05000039000000000605041a000005bd0060009c00000b1b0000213d00000001056000390000000c07000039000000000057041b000000000070043f0000000f050000290000000005050433000000040050008c000013b30000213d0000000d0700002900000000070704330000000807700210000005dd077001970000000106600210000005de0860009a000000000908041a000005df09900197000000000779019f0000000004040433000000000004004b000005e0040000410000000004006019000000000447019f00000000020204330000005002200210000005e102200197000000000224019f000000000252019f000000000028041b000000000101043300000080011002700000000002030433000005e202200197000000000112019f000005e30260009a000000000012041b000000010100003900000d240000013d000000800100043d000000000001004b00000e710000c13d000000400100043d0000063c020000410000018a0000013d000000400100043d0000002402100039000000080300002900000000003204350000062b0200004100000000002104350000000402100039000005c203000041000011090000013d0000000f01000029000005e201100197000800000001001d000000000010043f00000005010000290000000101100039000f00000001001d000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000000ff00100190000011010000c13d0000000801000029000000000010043f0000000f01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006490220019700000001022001bf000000000021041b000000800100043d000000000001004b000001860000613d0000000402000039000000000202041a000e05ba0020019b000900000000001d000000090000006b00000eb10000613d0000000902000029000000010220008a000000000021004b000010860000a13d00000009010000290000000501100210000000a0011000390000000001010433000a05e20010019b0000000501200210000000a0011000390000000001010433000005e2011001970000000a0010006c00000eb30000413d000011a90000013d000000a00100043d000a05e20010019b0000000a01000029000000000010043f0000000a01000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000401043b000000000104041a000005ba021001970000000e0020006b000d00000004001d000c00010040003d00000f0f0000613d000005c6021001970000000e022001af0000000d05000029000000000025041b0000000302000039000000000202041a00000010022002100000062d022001970000062e03100197000000000223019f0000000e022001af000000000025041b000006160010019800000f0f0000613d0000000201000039000000000101041a000000000001004b00000f0f0000613d000f00000000001d00000ee70000013d0000062f0110019700000030022002100000063002200197000000000112019f0000000d02000029000000000012041b0000000f02000029000f00010020003d0000000201000039000000000101041a0000000f0010006b00000f0f0000813d0000000f010000290000000101100210000005cc0110009a000b00000001001d000000000101041a000005c201100197000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000006150020009c00000ee10000413d000005ba032001970000000e0030006c00000ee10000813d000005c6022001970000000e022001af000000000021041b0000000b01000029000000000101041a000000a801100270000000ff0210018f0000000d01000029000000000101041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c00000edb0000a13d000012640000013d0000000001000411000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000006140020009c00000b1b0000213d000000000101043b0000004003200039000000400030043f000000000301041a0000002004200039000005c6013001980000000000140435000005ba03300197000000000032043500000000020000390000000102006039000b00000002001d0000000e0030006c00000f2f0000413d000000000001004b00000f420000c13d0000000501000029000000000101041a0000000801100270000000ff0210018f0000000d01000029000000000101041a00000030031002700000ffff0330018f00000000022300190000ffff0020008c000012640000213d0000062f0110019700000030022002100000063002200197000000000112019f0000000d02000029000000000012041b000b00010000003d0000000001000019000000400200043d000000400320003900000008040000290000000000430435000000400300003900000000033204360000000000130435000005bf0020009c00000b1b0000213d0000006001200039000000400010043f000005ba0030009c000005ba0300804100000040013002100000000002020433000005ba0020009c000005ba020080410000006002200210000000000112019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000400200043d000f00000002001d000006140020009c00000b1b0000213d000000000101043b0000000f030000290000004002300039000000400020043f0000000e020000290000000002230436000005c601100197000700000002001d00000000001204350000000001000411000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d0000000f020000290000000002020433000005ba0220019700000007030000290000000003030433000705c60030019b00000007022001af000000000101043b000000000021041b0000000d01000029000000000101041a000f00000001001d0000000501000029000000000101041a000000400400043d0000002002400039000000080300002900000000003204350000000801100270000000ff0110018f000000400240003900000000001204350000000a01000029000600000004001d0000000000140435000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d000000000101043b00000006040000290000008002400039000000070300002900000000003204350000000f0200002900000030022002700000ffff0220018f000000a0034000390000000000230435000005bd021001970000006001400039000700000002001d0000000000210435000005ba0040009c000005ba0400804100000040014002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000631011001c70000800d02000039000000030300003900000632040000410000000e05000029000000000600041116e216d80000040f000000010020019000000bed0000613d0000000f010000290000061600100198000000000100003900000001010060390000000b0110017f000000010010008c000010020000c13d000005c201000041000000000010043f0000000c01000029000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000005ba0010009c00000fdc0000213d0000000d01000029000000000101041a00000020021002700000ffff0220018f00000030011002700000ffff0110018f000000000021004b000010020000413d0000000f01000029000006330110019700000634011001c70000000d02000029000000000012041b0000000b01000039000000000101041a000005bd02100197000005bd0020009c000012640000613d0000062e021001970000000101100039000005bd01100197000000000121019f0000000b02000039000000000012041b000000400100043d0000002002100039000000070300002900000000003204350000000a020000290000000000210435000005ba0010009c000005ba0100804100000040011002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005ca011001c70000800d02000039000000020300003900000635040000410000000e0500002916e216d80000040f000000010020019000000bed0000613d000000400400043d000005db0040009c00000b1b0000213d0000000d01000029000000000501041a000000c001400039000000400010043f000000a0014000390000000802000029000000000021043500000080024000390000000a03000029000000000032043500000060034000390000000006000411000000000063043500000020064000390000000707000029000000000076043500000616005001980000000007000039000000010700c0390000004005400039000000000075043500000000000404350000000c07000039000000000707041a000005bd0070009c00000b1b0000213d00000001087000390000000c09000039000000000089041b000000000090043f0000000004040433000000040040008c000013b30000213d00000000060604330000000806600210000005dd066001970000000107700210000005de0870009a000000000908041a000005df09900197000000000669019f0000000005050433000000000005004b000005e0050000410000000005006019000000000556019f00000000030304330000005003300210000005e103300197000000000335019f000000000343019f000000000038041b000000000202043300000080022002700000000001010433000005e201100197000000000121019f000005e30270009a000000000012041b0000000902000029000900010020003d000000800100043d000000090010006b00000e9f0000413d000001860000013d0000000f0800002900000080088000390000000009640049000005be0090009c00000bed0000213d000000800090008c00000bed0000413d000000400900043d000005c10090009c00000b1b0000213d000000800a9000390000004000a0043f00000000ab060434000005c200b0009c00000bed0000213d000000000bb90436000000000a0a0433000005c200a0009c00000bed0000213d0000000000ab0435000000400a600039000000000a0a0433000000ff00a0008c00000bed0000213d000000400b9000390000000000ab0435000000600a600039000000000a0a0433000000ff00a0008c00000bed0000213d000000600b9000390000000000ab043500000000089804360000008006600039000000000076004b000010480000413d000007290000013d000000000b00001900000000080000190000107b0000013d00000005098002100000000009590019000000050bb00210000000000bb70019000000000b0b0433000000000b0b0433000005c20bb001970000000000b9043500000001088000390000000009060433000000010ba0003900000000009b004b000003c00000813d000000ff0ab0018f0000000f00a0008c000008be0000213d000000000ca2022f0000000100c00190000010780000613d0000000000b9004b000010860000a13d0000000009010433000000000089004b0000106e0000213d0000063f01000041000000000010043f0000003201000039000000040010043f0000061f01000041000016e400010430000f00000000001d000010930000013d0000000f02000029000f00010020003d000000800100043d0000000f0010006b0000068a0000813d0000000f010000290000000501100210000000a001100039000c00000001001d0000000001010433000005c201100197000d00000001001d000000000010043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000101041a000e00000001001d000000000001004b0000108e0000613d0000000701000039000000000201041a000000000002004b000012640000613d0000000e03000029000000010130008a000000000023004b000010d00000613d000000000012004b000010860000a13d0000000e010000290000063e0110009a0000063e0220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b0000000e02000029000000000021041b0000000701000039000000000101041a000e00000001001d000000000001004b0000126a0000613d0000000e01000029000000010110008a0000000e020000290000063e0220009a000000000002041b0000000702000039000000000012041b0000000d01000029000000000010043f0000000801000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b000000800100043d0000000f0010006c000010860000a13d0000000c010000290000000001010433000005c201100197000000400200043d0000000000120435000005ba0020009c000005ba0200804100000040012002100000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f00000638011001c70000800d020000390000000103000039000006400400004116e216d80000040f00000001002001900000108e0000c13d00000bed0000013d000000000003004b0000114a0000c13d000000000004004b000001860000c13d0000061c0000013d000000400100043d0000002402100039000000080300002900000000003204350000062b020000410000000000210435000000040210003900000000030004110000000000320435000005ba0010009c000005ba0100804100000040011002100000062c011001c7000016e400010430000400000006001d000500000008001d000000400100043d000000800200003900000000022104360000000503000029000000000403043300000080031000390000000000430435000000a003100039000000000004004b000011240000613d0000000005000019000000050700002900000020077000390000000006070433000005c20660019700000000036304360000000105500039000000000045004b0000111d0000413d00000000041300490000000000420435000000040200002900000000040204330000000002430436000000000004004b000011340000613d0000000003000019000000040600002900000020066000390000000005060433000005c60550019700000000025204360000000103300039000000000043004b0000112d0000413d00000006030000290000ffff0330018f00000040041000390000000000340435000000010300002900000616003001980000000003000039000000010300c039000000600410003900000000003404350000000002120049000005ba0020009c000005ba020080410000006002200210000005ba0010009c000005ba010080410000004001100210000000000112019f000016e30001042e000000000001004b000001860000c13d0000061c0000013d000000400100043d000005bf0010009c00000b1b0000213d0000006002100039000000400020043f0000000203000039000000000303041a000005bd0030009c00000b1b0000213d00000005043002100000003f04400039000005c0044001970000000004240019000005bd0040009c00000b1b0000213d000000400040043f00000000003204350000000204000039000000000040043f000000000003004b0000117c0000613d0000060a0400004100000000050000190000000006020019000000400700043d000005c10070009c00000b1b0000213d0000008008700039000000400080043f000000000804041a000005c208800197000000000887043600000001094001bf000000000909041a000005c20a9001970000000000a80435000000a808900270000000ff0880018f000000600a70003900000000008a0435000000a008900270000000ff0880018f000000400970003900000000008904350000002006600039000000000076043500000002044000390000000105500039000000000035004b000011620000413d00000000022104360000000303000039000000000303041a0000ffff0430018f000000000042043500000010023002700000ffff0220018f0000004003100039000000000023043516e214800000040f0000000001000019000016e30001042e000000000500041a000005c305500197000000000445019f000000000040041b000005c10020009c00000b1b0000213d0000008004200039000000400040043f0000006004200039000005c4050000410000000000540435000000400420003900000000000404350000002004200039000000000004043500000000000204350000000f0200002900000000020204330000000002020433000000110420008a0000064a0040009c000011a60000413d000000070400002900000000040404330000ffff00400190000011a60000613d000000060400002900000000040404330000ffff00400190000011ac0000c13d000000400100043d000005e5020000410000018a0000013d000000400100043d0000063b020000410000018a0000013d0000000605200210000000400400043d00000000065400190000002006600039000000000046004b00000000070000390000000107004039000005bd0060009c00000b1b0000213d000000010070019000000b1b0000c13d000000400060043f000000010220021000000000022404360000001f0650018f000000000005004b000011c40000613d000000000131034f00000000035200190000000005020019000000001701043c0000000005750436000000000035004b000011c00000c13d000000000006004b0000000f0100002900000000010104330000000003010433000000000003004b000012700000c13d000000000300001900000000050000190000000004040433000000020040008c000012aa0000813d000000070200002900000000020204330000ffff0220018f000000000025004b000011a60000413d000000060400002900000000040404330000ffff0540018f000000000053004b000011a60000413d0000000303000039000000000503041a000005c6055001970000001004400210000005c704400197000000000454019f000000000224019f000000000023041b0000000202000039000000000202041a000000000002004b000011ea0000c13d0000000002010433000000000002004b000012330000c13d00000000030000190000125f0000013d000000400100043d000005c10010009c00000b1b0000213d0000008003100039000000400030043f0000000102200210000005c80320009a000000000303041a000005c2033001970000000006310436000005c90220009a000000000202041a000000a804200270000000ff0440018f00000060051000390000000000450435000000a004200270000000ff0440018f00000040011000390000000000410435000005c201200197000e00000006001d0000000000160435000000000030043f0000000501000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b0000000e010000290000000001010433000005c201100197000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000001041b0000000201000039000000000101041a000000000001004b0000126a0000613d0000000204000039000000000040043f000000010210008c0000000101200210000005cb0310009a000000000003041b000005cc0110009a000000000001041b000000000024041b000011ea0000c13d0000000f0100002900000000010104330000000002010433000000000002004b000011e80000613d00000000020000190000000203000039000000000303041a000005bd0030009c00000b1b0000213d000000050420021000000000014100190000002001100039000000000101043300000001043000390000000205000039000000000045041b000000000050043f00000001033002100000000054010434000005c204400197000005cb0630009a000000000706041a000005c307700197000000000447019f000000000046041b000005cc0330009a0000000004050433000005c204400197000000000503041a000005cd05500197000000000445019f00000040051000390000000005050433000000a005500210000005ce05500197000000000454019f00000060011000390000000001010433000000a801100210000005cf01100197000000000114019f000000000013041b00000001022000390000000f0100002900000000010104330000000003010433000000000032004b000012340000413d0000000402000039000000000202041a000005ba04200197000005ba0040009c000012bd0000c13d0000063f01000041000000000010043f0000001101000039000000040010043f0000061f01000041000016e4000104300000063f01000041000000000010043f0000003101000039000000040010043f0000061f01000041000016e40001043000000000060000190000000005000019000000000300001900000005076002100000000001710019000000200110003900000000070104330000000018070434000005c208800198000011a60000613d0000000009010433000005c209900198000011a60000613d000005c20090009c000011a60000613d0000004009700039000000000a090433000000ff00a001900000006007700039000012870000c13d000000000a070433000000ff00a00190000011a60000613d000005c50060009c000012640000813d000000010a600210000000000b0404330000000000ab004b000010860000a13d000000060b600210000000000b2b001900000000008b04350000000108a001bf000000000a04043300000000008a004b000010860000a13d000000050880021000000000082800190000000001010433000005c20110019700000000001804350000000001090433000000ff0110018f000000000051001a000012640000413d0000000007070433000000ff0770018f000000000037001a000012640000413d0000000005510019000000000337001900000001066000390000000f0100002900000000010104330000000007010433000000000076004b000012730000413d000011cc0000013d0000000106000039000000000702001900000000070704330000000008060019000000050980021000000000092900190000000009090433000000000979013f000005c200900198000011a60000613d0000000108800039000000000048004b000012ae0000413d000000050760021000000000072700190000000106600039000000000046004b000012ac0000413d000011cf0000013d000005c6042001970000000102200039000805ba0020019b00000008044001af0000000402000039000e00000004001d000000000042041b000000000003004b000013270000613d000e00000000001d000000400200043d000d00000002001d000005bf0020009c00000b1b0000213d0000000e030000290000000502300210000000000121001900000020011000390000000004010433000000400140003900000000010104330000000d050000290000006002500039000000400020043f0000004002500039000c00000002001d000000000032043500000008020000290000000002250436000000ff0110018f000a00000002001d0000000000120435000900000004001d0000000021040434000b00000002001d000005c201100197000000000010043f0000000501000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d0000000d020000290000000002020433000005ba02200197000000000101043b000000000301041a000005d003300197000000000223019f0000000a0300002900000000030304330000002003300210000005d103300197000000000232019f0000000c0300002900000000030304330000002803300210000005d203300197000000000232019f000000000021041b0000000b010000290000000001010433000005c201100197000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f000000010020019000000bed0000613d000000000101043b000000000201041a000005d30220019700000009030000290000006003300039000000000303043300000008033002100000ff000330018f000000000232019f00000001022001bf000000000021041b0000000e01000029000000ff0010008c000012640000613d0000000e010000290000000101100039000e00ff001001930000000f01000029000000000101043300000000020104330000000e0020006b000012c70000413d0000000401000039000000000101041a000e00000001001d000005c201000041000000000010043f0000000901000039000000200010043f000005d401000041000000000201041a000005d30220019700000001022001bf000000000021041b000005d50100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d0000000e02000029000005d702200197000000000101043b0000002001100210000005d801100197000000000121019f0000000402000039000000000012041b0000002002000039000000400100043d00000000022104360000000f03000029000000000303043300000060040000390000000000420435000000800210003900000000040304330000000000420435000000a002100039000000000004004b000013670000613d0000000005000019000000200330003900000000060304330000000087060434000005c20770019700000000077204360000000008080433000005c208800197000000000087043500000040076000390000000007070433000000ff0770018f0000004008200039000000000078043500000060066000390000000006060433000000ff0660018f0000006007200039000000000067043500000080022000390000000105500039000000000045004b000013510000413d000000070300002900000000030304330000ffff0330018f00000040041000390000000000340435000000060300002900000000030304330000ffff0330018f000000600410003900000000003404350000000002120049000005ba0020009c000005ba020080410000006002200210000005ba0010009c000005ba010080410000004001100210000000000112019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c70000800d020000390000000203000039000005da04000041000000080500002916e216d80000040f000000010020019000000bed0000613d000000400100043d000f00000001001d000005db0010009c00000b1b0000213d0000000f02000029000000c001200039000000400010043f00000004010000390000000001120436000e00000001001d000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000013b90000613d000000000101043b000005bd011001970000000e0200002900000000001204350000000f04000029000000a00140003900000000000104350000008002400039000000000002043500000060034000390000000000030435000000400440003900000000000404350000000c05000039000000000605041a000005bd0060009c00000b1b0000213d0000000107600039000000000075041b000000000050043f0000000f050000290000000005050433000000050050008c000013ba0000413d0000063f01000041000000000010043f0000002101000039000000040010043f0000061f01000041000016e400010430000000000001042f0000000e0700002900000000070704330000000807700210000005dd077001970000000106600210000005de0860009a000000000908041a000005df09900197000000000779019f0000000004040433000000000004004b000005e0040000410000000004006019000000000447019f00000000030304330000005003300210000005e103300197000000000334019f000000000353019f000000000038041b000000000202043300000080022002700000000001010433000005e201100197000000000121019f000005e30260009a000000000012041b000000200100003900000100001004430000012000000443000005e401000041000016e30001042e000000000301001900000000040304330000000001420436000000000004004b000013e70000613d000000000200001900000020033000390000000005030433000005c20550019700000000015104360000000102200039000000000042004b000013e00000413d000000000001042d0000001f022000390000064b022001970000000001120019000000000021004b00000000020000390000000102004039000005bd0010009c000013f40000213d0000000100200190000013f40000c13d000000400010043f000000000001042d0000063f01000041000000000010043f0000004101000039000000040010043f0000061f01000041000016e4000104300000000046010434000000600300003900000000053204360000006003200039000000000706043300000000007304350000008003200039000000000007004b0000141e0000613d00000000080000190000000009020019000000000a0300190000002006600039000000000306043300000000cb030434000005c20bb001970000000000ba0435000000000b0c0433000005c20bb00197000000a00c9000390000000000bc0435000000400b300039000000000b0b0433000000ff0bb0018f000000c00c9000390000000000bc0435000000e00990003900000060033000390000000003030433000000ff0330018f00000000003904350000008003a000390000000108800039000000000078004b00000000090a0019000014050000413d00000000040404330000ffff0440018f00000000004504350000004002200039000000400110003900000000010104330000ffff0110018f00000000001204350000000001030019000000000001042d000000400100043d0000064c0010009c000014630000813d0000006002100039000000400020043f0000000204000039000000000304041a000005bd0030009c000014630000213d00000005053002100000003f05500039000005c0055001970000000005250019000005bd0050009c000014630000213d000000400050043f0000000000320435000000000040043f000000000003004b000014590000613d0000060a0400004100000000050000190000000006020019000000400700043d000005c10070009c000014630000213d0000008008700039000000400080043f000000000804041a000005c208800197000000000887043600000001094001bf000000000909041a000005c20a9001970000000000a80435000000a808900270000000ff0880018f000000600a70003900000000008a0435000000a008900270000000ff0880018f000000400970003900000000008904350000002006600039000000000076043500000002044000390000000105500039000000000035004b0000143f0000413d00000000022104360000000303000039000000000303041a0000ffff0430018f000000000042043500000010023002700000ffff0220018f00000040031000390000000000230435000000000001042d0000063f01000041000000000010043f0000004101000039000000040010043f0000061f01000041000016e400010430000000000100041a000005c2011001970000000002000411000000000012004b0000146f0000c13d000000000001042d000000400100043d000000440210003900000617030000410000000000320435000000240210003900000016030000390000000000320435000005e8020000410000000000210435000000040210003900000020030000390000000000320435000005ba0010009c000005ba010080410000004001100210000005e9011001c7000016e400010430000a000000000002000a00000001001d0000000021010434000200000002001d0000000001010433000000110210008a0000064a0020009c000016ae0000413d000000020200002900000000020204330000ffff00200190000016ae0000613d0000000a020000290000004002200039000100000002001d00000000020204330000ffff00200190000016ae0000613d0000000604100210000000400300043d00000000024300190000002002200039000000000032004b00000000050000390000000105004039000005bd0020009c000016b80000213d0000000100500190000016b80000c13d000000400020043f000000010110021000000000021304360000001f0140018f000000000004004b000014ab0000613d0000000004420019000000000500003100000001055003670000000006020019000000005705043c0000000006760436000000000046004b000014a70000c13d000000000001004b0000000a0100002900000000010104330000000004010433000000000004004b000014ee0000613d00000000060000190000000005000019000000000400001900000005076002100000000001710019000000200110003900000000070104330000000018070434000005c208800198000016ae0000613d0000000009010433000005c209900198000016ae0000613d000005c20090009c000016ae0000613d0000004009700039000000000a090433000000ff00a001900000006007700039000014c80000c13d000000000a070433000000ff00a00190000016ae0000613d000005c50060009c000016be0000813d000000010a600210000000000b0304330000000000ab004b000016c40000a13d000000060b600210000000000b2b001900000000008b04350000000108a001bf000000000a03043300000000008a004b000016c40000a13d000000050880021000000000082800190000000001010433000005c20110019700000000001804350000000001090433000000ff0110018f000000000051001a000016be0000413d0000000007070433000000ff0770018f000000000047001a000016be0000413d0000000005510019000000000447001900000001066000390000000a0100002900000000010104330000000007010433000000000076004b000014b40000413d0000000003030433000000020030008c000014f30000813d000015050000013d000000000400001900000000050000190000000003030433000000020030008c000015050000413d0000000106000039000000000702001900000000070704330000000008060019000000050980021000000000092900190000000009090433000000000979013f000005c200900198000016ae0000613d0000000108800039000000000038004b000014f70000413d000000050760021000000000072700190000000106600039000000000036004b000014f50000413d000000020200002900000000020204330000ffff0220018f000000000025004b000016ae0000413d000000010300002900000000030304330000ffff0530018f000000000054004b000016ae0000413d0000001003300210000005c7033001970000000304000039000000000504041a000005c605500197000000000335019f000000000223019f000000000024041b0000000208000039000000000408041a000000000004004b000015620000613d0000801002000039000000000080043f000000400100043d000005c10010009c000016b80000213d0000008003100039000000400030043f0000000104400210000005c80340009a000000000303041a000005c2033001970000000007310436000005c90440009a000000000604041a000000a804600270000000ff0440018f00000060051000390000000000450435000000a004600270000000ff0440018f00000040011000390000000000410435000005c201600197000900000007001d0000000000170435000000000030043f0000000501000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c716e216dd0000040f0000000100200190000016b60000613d000000000101043b000000000001041b00000009010000290000000001010433000005c201100197000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f0000000100200190000016b60000613d0000801002000039000000000101043b000000000001041b0000000208000039000000000108041a000000000001004b000016ca0000613d000000000080043f000000010410008c0000000101400210000005cb0310009a000000000003041b000005cc0110009a000000000001041b000000000048041b0000151c0000c13d0000000a0100002900000000010104330000000002010433000000000002004b000015900000613d0000000002000019000000000308041a000005bd0030009c000016b80000213d00000005042002100000000001410019000000200110003900000000010104330000000104300039000000000048041b000000000080043f00000001033002100000000054010434000005c204400197000005cb0630009a000000000706041a000005c307700197000000000447019f000000000046041b000005cc0330009a0000000004050433000005c204400197000000000503041a000005cd05500197000000000445019f00000040051000390000000005050433000000a005500210000005ce05500197000000000454019f00000060011000390000000001010433000000a801100210000005cf01100197000000000114019f000000000013041b00000001022000390000000a0100002900000000010104330000000003010433000000000032004b000015660000413d000015910000013d00000000030000190000000405000039000000000205041a000005ba04200197000005ba0040009c000016be0000613d000005c602200197000300010040003d00000003022001af000000000025041b000000000003004b000015fa0000613d00008010030000390000000005000019000000400600043d000005bf0060009c000016b80000213d0000000502500210000000000121001900000020011000390000000004010433000000400140003900000000010104330000006002600039000000400020043f0000004002600039000500000005001d000800000002001d00000000005204350000000302000029000900000006001d0000000002260436000000ff0110018f000600000002001d0000000000120435000400000004001d0000000021040434000700000002001d000005c201100197000000000010043f0000000501000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000000000203001916e216dd0000040f0000000100200190000016b60000613d00000009020000290000000002020433000005ba02200197000000000101043b000000000301041a000005d003300197000000000223019f000000060300002900000000030304330000002003300210000005d103300197000000000232019f000000080300002900000000030304330000002803300210000005d203300197000000000232019f000000000021041b00000007010000290000000001010433000005c201100197000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f0000000100200190000016b60000613d000000000101043b000000000201041a000005d30220019700000004030000290000006003300039000000000303043300000008033002100000ff000330018f000000000232019f00000001022001bf000000000021041b0000000501000029000000ff0010008c000016be0000613d0000000101100039000000ff0510018f0000000a0100002900000000010104330000000002010433000000000025004b00008010030000390000159e0000413d000005c201000041000000000010043f0000000901000039000000200010043f0000000001000414000005ba0010009c000005ba01008041000000c001100210000005ca011001c7000080100200003916e216dd0000040f0000000100200190000016b60000613d000000000101043b000000000201041a000005d30220019700000001022001bf000000000021041b0000000401000039000000000101041a000900000001001d000005d50100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000016d00000613d0000000902000029000005d702200197000000000101043b0000002001100210000005d801100197000000000121019f0000000402000039000000000012041b0000002002000039000000400100043d00000000042104360000000a02000029000000000202043300000060030000390000000000340435000000800510003900000000030204330000000000350435000000a006100039000000000003004b000016490000613d00000000050000190000000007060019000000200220003900000000060204330000000098060434000005c20880019700000000008704350000000008090433000005c208800197000000a009400039000000000089043500000040086000390000000008080433000000ff0880018f000000c0094000390000000000890435000000e00440003900000060066000390000000006060433000000ff0660018f000000000064043500000080067000390000000105500039000000000035004b0000000004070019000016300000413d000000020200002900000000020204330000ffff0220018f00000040031000390000000000230435000000010200002900000000020204330000ffff0220018f000000600310003900000000002304350000000002160049000005ba0020009c000005ba020080410000006002200210000005ba0010009c000005ba010080410000004001100210000000000112019f0000000002000414000005ba0020009c000005ba02008041000000c002200210000000000112019f000005d9011001c70000800d020000390000000203000039000005da04000041000000030500002916e216d80000040f0000000100200190000016b60000613d000000400200043d000005db0020009c000016b80000213d000000c001200039000000400010043f0000000401000039000a00000002001d0000000001120436000900000001001d000005dc0100004100000000001004430000000001000414000005ba0010009c000005ba01008041000000c001100210000005d6011001c70000800b0200003916e216dd0000040f0000000100200190000016d00000613d000000000101043b000005bd01100197000000090900002900000000001904350000000a08000029000000a00180003900000000000104350000008002800039000000000002043500000060038000390000000000030435000000400480003900000000000404350000000c05000039000000000605041a000005bd0060009c000016b80000213d0000000107600039000000000075041b000000000050043f0000000005080433000000050050008c000016d10000813d00000000070904330000000807700210000005dd077001970000000106600210000005de0860009a000000000908041a000005df09900197000000000779019f0000000004040433000000000004004b000005e0040000410000000004006019000000000447019f00000000030304330000005003300210000005e103300197000000000334019f000000000353019f000000000038041b000000000202043300000080022002700000000001010433000005e201100197000000000121019f000005e30260009a000000000012041b000000000001042d000000400100043d000005e5020000410000000000210435000005ba0010009c000005ba010080410000004001100210000005e6011001c7000016e4000104300000000001000019000016e4000104300000063f01000041000000000010043f0000004101000039000000040010043f0000061f01000041000016e4000104300000063f01000041000000000010043f0000001101000039000000040010043f0000061f01000041000016e4000104300000063f01000041000000000010043f0000003201000039000000040010043f0000061f01000041000016e4000104300000063f01000041000000000010043f0000003101000039000000040010043f0000061f01000041000016e400010430000000000001042f0000063f01000041000000000010043f0000002101000039000000040010043f0000061f01000041000016e400010430000000000001042f000016db002104210000000102000039000000000001042d0000000002000019000000000001042d000016e0002104230000000102000039000000000001042d0000000002000019000000000001042d000016e200000432000016e30001042e000016e40001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffff0000bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a534bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a5330200000000000000000000000000000000000040000000000000000000000000bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a532bfa87805ed57dc1f0d489ce33be4c4577d74ccde357eeeee058a32c55c44a531ffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000000000000000000000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00003bddde647ecb7992f4c710d4e1d59d07614508581f7c22c879a79d28544538a742cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd10200000200000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000ffffffff0000000002000000000000000000000000000000000000000000000000000000000000008c49fda8177c5c8c768eb39634bc6773695c7181711537b822451c12b2efd2a9000000000000000000000000000000000000000000000000ffffffffffffff3f796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320000000000000000000000000000000000000000000000ffffffffffffffff00209699368efae3c2ab13a6e9d9f9aceb6c5aebfb5ffd7bd0a9ff6281a30b5739ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000209699368efae3c2ab13a6e9d9f9aceb6c5aebfb5ffd7bd0a9ff6281a30b5738000000020000000000000000000000000000004000000100000000000000000035be3ac800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000009799861100000000000000000000000000000000000000000000000000000000586abe3b00000000000000000000000000000000000000000000000000000000970b8fc100000000000000000000000000000000000000000000000000000000d927f26600000000000000000000000000000000000000000000000000000000d927f26700000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f33f289500000000000000000000000000000000000000000000000000000000970b8fc200000000000000000000000000000000000000000000000000000000ba86a1f000000000000000000000000000000000000000000000000000000000bd147ef4000000000000000000000000000000000000000000000000000000006ba0526c000000000000000000000000000000000000000000000000000000006ba0526d0000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000586abe3c00000000000000000000000000000000000000000000000000000000631ec73e00000000000000000000000000000000000000000000000000000000397796f6000000000000000000000000000000000000000000000000000000003f42ab72000000000000000000000000000000000000000000000000000000003f42ab73000000000000000000000000000000000000000000000000000000004102e4f4000000000000000000000000000000000000000000000000000000004d61677100000000000000000000000000000000000000000000000000000000397796f7000000000000000000000000000000000000000000000000000000003d0cf61000000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000002cbc26bb00000000000000000000000000000000000000000000000000000000328d716c000000000000000000000000000000000000000000000000000000000b009be20000000000000000000000000000000000000000000000000000000015c655880200000000000000000000000000000000000040000000e000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffff0000000000000000000000000000000000000000000000000100000000000000405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aceed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c66000000000000000000000000000000000000000000000000000000006400000080000000000000000000000000000000000000000000000000000000000000003fffffffffffffffe0000000000000000000000000000000000000000000000000fffffffffffffebf00000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000000000000000000000000000fffffffffffffe9f000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000ff00000000000000004f6e6c792063616c6c61626c65206279206f776e65720000000000000000000002000000000000000000000000000000000000600000000000000000000000007d15a6eebaa019ea7d5b7d38937c51ebd3befbfdf51bb630a694fd28635bbcba0100000000000000000000000000000100000000000000000000000000000000cf943f0e419056430919a3fdfd72276bc0b123ebdd670f4152b82bffbfb8bb38cde2d97c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000080000000000000000085412e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006dfbb745226fa630aeb1b9557d17d508ddb789a04f0cb873ec16e58beb8beead2a08a2bd2798f0aae9a843f0f4ad4de488c1b3d5f04049940cfed736ad69fb978257378aa73bf8e4ada848713526584a3dcee0fd3db3beed7397f7a7f5067cc9000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000ffff0000000000274d6d5b916b0a53974b7ab86c844b97a2e03a60f658cd9a4b1c028b604d7bf1604c76770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000008000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e03bddde647ecb7992f4c710d4e1d59d07614508581f7c22c879a79d28544538a8078f34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000000ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff000000000000000000000000000000000000000000000000ffff00000000000002000000000000000000000000000000000000c00000000000000000000000008137bc8a8d712aaa27bfc6506d5566ac405618bd53f9831b8ca6b6fe5442ee7affffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000cfdbfd8ce9a56b5f7c202c0e102184d24f47ca87121dc165063fc4c290957bde0200000000000000000000000000000000000080000000000000000000000000a96a155bd67c927a6c056befbd979b78465e2b2f1276bf7d4e90a31d4f430aa8020000000000000000000000000000000000002000000000000000000000000065d0e78c3625f0956f58610cf0fb157eaf627683258875ef29af2f71d25ac8fdbabb0d7099e6ca14a29fad2a2cfb4fda2bd30f97cb3c27e546174bfb4277c1cc2432d8ea0000000000000000000000000000000000000000000000000000000055e9b08b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c939794e487b7100000000000000000000000000000000000000000000000000000000dca892154bbc36d0c05ccd01b3d0411875cb1b841fcdeebb384e5d0d6eb06b44599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c9397866b4b4752c65ae8cd2f3a0a48c7dc8b2118c60d5ea15514992eb2ddf56c9cb1501000000000000000000000000000000000000000000000000000000000000001d4cd6d2639449a552dbfb463b59316946d78c518b3170daa4a4c217bef019ba524d4e20312e352e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000fb106b6a00000000000000000000000000000000000000000000000000000000a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffa0") diff --git a/core/gethwrappers/ccip/generated/rmn_proxy_contract/rmn_proxy_contract.go b/core/gethwrappers/ccip/generated/rmn_proxy_contract/rmn_proxy_contract.go index 18fd9898d8..715daedaaf 100644 --- a/core/gethwrappers/ccip/generated/rmn_proxy_contract/rmn_proxy_contract.go +++ b/core/gethwrappers/ccip/generated/rmn_proxy_contract/rmn_proxy_contract.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package rmn_proxy_contract import ( @@ -39,7 +36,7 @@ var RMNProxyContractABI = RMNProxyContractMetaData.ABI var RMNProxyContractBin = RMNProxyContractMetaData.Bin -func DeployRMNProxyContract(auth *bind.TransactOpts, backend bind.ContractBackend, arm common.Address) (common.Address, *types.Transaction, *RMNProxyContract, error) { +func DeployRMNProxyContract(auth *bind.TransactOpts, backend bind.ContractBackend, arm common.Address) (common.Address, *generated.Transaction, *RMNProxyContract, error) { parsed, err := RMNProxyContractMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -47,12 +44,16 @@ func DeployRMNProxyContract(auth *bind.TransactOpts, backend bind.ContractBacken if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(RMNProxyContractZKBin), backend, arm) + contractReturn := &RMNProxyContract{address: address, abi: *parsed, RMNProxyContractCaller: RMNProxyContractCaller{contract: contractBind}, RMNProxyContractTransactor: RMNProxyContractTransactor{contract: contractBind}, RMNProxyContractFilterer: RMNProxyContractFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RMNProxyContractBin), backend, arm) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &RMNProxyContract{address: address, abi: *parsed, RMNProxyContractCaller: RMNProxyContractCaller{contract: contract}, RMNProxyContractTransactor: RMNProxyContractTransactor{contract: contract}, RMNProxyContractFilterer: RMNProxyContractFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &RMNProxyContract{address: address, abi: *parsed, RMNProxyContractCaller: RMNProxyContractCaller{contract: contract}, RMNProxyContractTransactor: RMNProxyContractTransactor{contract: contract}, RMNProxyContractFilterer: RMNProxyContractFilterer{contract: contract}}, nil } type RMNProxyContract struct { @@ -741,3 +742,5 @@ type RMNProxyContractInterface interface { Address() common.Address } + +var RMNProxyContractZKBin = ("0x0004000000000002000100000000000200000000030100190000006004300270000000670340019700030000003103550002000000010355000000670040019d00000001002001900000002c0000c13d0000008002000039000000400020043f000000040030008c000000830000413d000000000201043b000000e002200270000000740020009c000000630000213d000000780020009c000000cf0000613d000000790020009c000000df0000613d0000007a0020009c000000830000c13d000000240030008c0000018c0000413d0000000002000416000000000002004b0000018c0000c13d0000000401100370000000000101043b0000006a0010009c0000018c0000213d000000000200041a0000006a022001970000000003000411000000000023004b000001550000c13d000000000001004b0000016b0000c13d0000006f01000041000000800010043f00000084010000410000019b000104300000000002000416000000000002004b0000018c0000c13d0000001f0230003900000068022001970000008002200039000000400020043f0000001f0430018f000000690530019800000080025000390000003d0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000390000c13d000000000004004b0000004a0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c0000018c0000413d000000800100043d0000006a0010009c0000018c0000213d0000000003000411000000000003004b000001060000c13d000000400100043d00000044021000390000007103000041000000000032043500000024021000390000001803000039000000000032043500000072020000410000000000210435000000040210003900000020030000390000000000320435000000670010009c0000006701008041000000400110021000000073011001c70000019b00010430000000750020009c000000e50000613d000000760020009c000000fe0000613d000000770020009c000000830000c13d000000240030008c0000018c0000413d0000000002000416000000000002004b0000018c0000c13d0000000401100370000000000601043b0000006a0060009c0000018c0000213d000000000100041a0000006a011001970000000005000411000000000015004b000001550000c13d000000000056004b0000017a0000c13d0000007201000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000007d01000041000000c40010043f0000007e010000410000019b000104300000000001000416000000000001004b0000018c0000c13d0000000201000039000000000101041a000000870200004100000000002004430000006a01100197000100000001001d00000004001004430000000001000414000000670010009c0000006701008041000000c00110021000000088011001c70000800202000039019901940000040f0000000100200190000000ce0000613d000000000101043b000000000001004b0000018c0000613d0000000204000367000000000100003100000089031001980000001f0510018f000000a40000613d000000000604034f0000000007000019000000006806043c0000000007870436000000000037004b000000a00000c13d000000000005004b000000b10000613d000000000434034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000000030004140000000102000029000000040020008c000001140000c13d0000000303000367000000010100003100000089021001980000001f0410018f000000c00000613d000000000503034f0000000006000019000000005705043c0000000006760436000000000026004b000000bc0000c13d000000000004004b000001370000613d000000000323034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000001370000013d000000000001042f0000000001000416000000000001004b0000018c0000c13d000000c001000039000000400010043f0000000e01000039000000800010043f0000008502000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f0000010e0000043f00000086010000410000019a0001042e0000000001000416000000000001004b0000018c0000c13d0000000201000039000000000101041a000001020000013d0000000001000416000000000001004b0000018c0000c13d0000000101000039000000000201041a0000006a032001970000000006000411000000000036004b0000015f0000c13d000000000300041a0000006b04300197000000000464019f000000000040041b0000006b02200197000000000021041b00000000010004140000006a05300197000000670010009c0000006701008041000000c0011002100000007b011001c70000800d0200003900000003030000390000008104000041000001870000013d0000000001000416000000000001004b0000018c0000c13d000000000100041a0000006a01100197000000800010043f0000007f010000410000019a0001042e0000006a02100198000000000100041a0000006b01100197000000000131019f000000000010041b000000400100043d0000013b0000c13d0000006f020000410000000000210435000000670010009c0000006701008041000000400110021000000070011001c70000019b000104300000006001100210000000670030009c0000006703008041000000c00330021000000000011300190199018f0000040f0003000000010355000000000301001900000060033002700000001f0530018f000100670030019d0000006904300198000001270000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000001230000c13d000000000005004b000001340000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000067013001970000000100200190000001690000613d000000670010009c000000670100804100000060011002100000019a0001042e0000000203000039000000000403041a0000006b04400197000000000424019f000000000043041b0000000000210435000000670010009c000000670100804100000040011002100000000002000414000000670020009c0000006702008041000000c002200210000000000112019f0000006c011001c70000800d0200003900000001030000390000006d040000410199018f0000040f00000001002001900000018c0000613d0000002001000039000001000010044300000120000004430000006e010000410000019a0001042e0000007201000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000008201000041000000c40010043f0000007e010000410000019b000104300000007201000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000008001000041000000c40010043f0000007e010000410000019b0001043000000060011002100000019b000104300000000202000039000000000302041a0000006b03300197000000000313019f000000000032041b000000800010043f0000000001000414000000670010009c0000006701008041000000c00110021000000083011001c70000800d0200003900000001030000390000006d04000041000001870000013d0000000101000039000000000201041a0000006b02200197000000000262019f000000000021041b0000000001000414000000670010009c0000006701008041000000c0011002100000007b011001c70000800d0200003900000003030000390000007c040000410199018f0000040f00000001002001900000018c0000613d00000000010000190000019a0001042e00000000010000190000019b00010430000000000001042f00000192002104210000000102000039000000000001042d0000000002000019000000000001042d00000197002104230000000102000039000000000001042d0000000002000019000000000001042d00000199000004320000019a0001042e0000019b0001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ef31f568d741a833c6a9dc85a6e1c65e06fa772740d5dc94d1da21827a4e0cab00000002000000000000000000000000000000400000010000000000000000008579befe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000079ba50960000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000002e90aa2100000000000000000000000000000000000000000000000000000000458fec3b0200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c66000000000000000000000000000000000000000000000000000000006400000080000000000000000000000000000000000000000000000000000000200000008000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e04f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000200000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000400000080000000000000000041524d50726f787920312e302e300000000000000000000000000000000000000000000000000000000000000000000000000060000000c000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/router/router.go b/core/gethwrappers/ccip/generated/router/router.go index 9a0d4a4055..44e9673a9e 100644 --- a/core/gethwrappers/ccip/generated/router/router.go +++ b/core/gethwrappers/ccip/generated/router/router.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package router import ( @@ -70,7 +67,7 @@ var RouterABI = RouterMetaData.ABI var RouterBin = RouterMetaData.Bin -func DeployRouter(auth *bind.TransactOpts, backend bind.ContractBackend, wrappedNative common.Address, armProxy common.Address) (common.Address, *types.Transaction, *Router, error) { +func DeployRouter(auth *bind.TransactOpts, backend bind.ContractBackend, wrappedNative common.Address, armProxy common.Address) (common.Address, *generated.Transaction, *Router, error) { parsed, err := RouterMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -78,12 +75,16 @@ func DeployRouter(auth *bind.TransactOpts, backend bind.ContractBackend, wrapped if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(RouterZKBin), backend, wrappedNative, armProxy) + contractReturn := &Router{address: address, abi: *parsed, RouterCaller: RouterCaller{contract: contractBind}, RouterTransactor: RouterTransactor{contract: contractBind}, RouterFilterer: RouterFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RouterBin), backend, wrappedNative, armProxy) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &Router{address: address, abi: *parsed, RouterCaller: RouterCaller{contract: contract}, RouterTransactor: RouterTransactor{contract: contract}, RouterFilterer: RouterFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &Router{address: address, abi: *parsed, RouterCaller: RouterCaller{contract: contract}, RouterTransactor: RouterTransactor{contract: contract}, RouterFilterer: RouterFilterer{contract: contract}}, nil } type Router struct { @@ -1429,3 +1430,5 @@ type RouterInterface interface { Address() common.Address } + +var RouterZKBin = ("0x0004000000000002000d00000000000200000000030100190000006003300270000003e10030019d000003e1063001970003000000610355000200000001035500000001002001900000002e0000c13d0000008002000039000000400020043f000000040060008c000000540000413d000000000201043b000000e002200270000003ea0020009c000000560000213d000003f70020009c000000930000a13d000003f80020009c0000030d0000a13d000003f90020009c000004b50000613d000003fa0020009c0000047e0000613d000003fb0020009c000000540000c13d000000440060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000402100370000000000202043b000004030020009c000000540000213d0000002401100370000000000101043b000003e40010009c000000540000213d000000a0022002100000041302200197000000000121019f0f800f330000040f000003030000013d0000000002000416000000000002004b000000540000c13d0000001f02600039000003e202200197000000a002200039000000400020043f0000001f0360018f000003e304600198000000a0024000390000003f0000613d000000a005000039000000000701034f000000007807043c0000000005850436000000000025004b0000003b0000c13d000000000003004b0000004c0000613d000000000141034f0000000303300210000000000402043300000000043401cf000000000434022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000400060008c000000540000413d000000a00100043d000003e40010009c000000540000213d000000c00200043d000003e40020009c000002cf0000a13d000000000100001900000f8200010430000003eb0020009c000001b70000a13d000003ec0020009c0000032c0000a13d000003ed0020009c000004bc0000613d000003ee0020009c0000049b0000613d000003ef0020009c000000540000c13d000000240060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000401100370000000000101043b000b00000001001d000004030010009c000000540000213d0000000b01000029000000000010043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b000000000101041a000003e400100198000005250000c13d000000400100043d0000040a0010009c000004fa0000213d0000002002100039000000400020043f0000000000010435000000400200043d00000020030000390000000003320436000000000401043300000000004304350000004003200039000000000004004b000000910000613d000000000500001900000020011000390000000006010433000003e40660019700000000036304360000000105500039000000000045004b0000008a0000413d0000000001230049000004760000013d000003fe0020009c000002e30000213d000004010020009c000003e40000613d000004020020009c000000540000c13d000000440060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000402100370000000000202043b000004030020009c000000540000213d0000002403100370000000000303043b000004030030009c000000540000213d0000000004360049000004070040009c000000540000213d000000a40040008c000000540000413d0000012004000039000000400040043f0000000405300039000000000751034f000000000707043b000004030070009c000000540000213d00000000083700190000002307800039000000000067004b000000540000813d0000000409800039000000000791034f000000000707043b000004030070009c000004fa0000213d0000001f0a700039000004430aa001970000003f0aa00039000004430aa001970000041f00a0009c000004fa0000213d000001200aa000390000004000a0043f000001200070043f00000000087800190000002408800039000000000068004b000000540000213d0000002008900039000000000981034f000004430a7001980000001f0b70018f0000014008a00039000000d40000613d000001400c000039000000000d09034f00000000de0d043c000000000cec043600000000008c004b000000d00000c13d00000000000b004b000000e10000613d0000000009a9034f000000030ab00210000000000b080433000000000bab01cf000000000bab022f000000000909043b000001000aa000890000000009a9022f0000000009a901cf0000000009b9019f000000000098043500000140077000390000000000070435000000800040043f0000002004500039000000000541034f000000000505043b000004030050009c000000540000213d00000000093500190000002305900039000000000065004b000000540000813d000000040a9000390000000005a1034f000000000505043b000004030050009c000004fa0000213d0000001f0750003900000443077001970000003f077000390000044308700197000000400700043d0000000008870019000000000078004b000000000b000039000000010b004039000004030080009c000004fa0000213d0000000100b00190000004fa0000c13d000000400080043f000000000857043600000000095900190000002409900039000000000069004b000000540000213d0000002009a00039000000000a91034f000004430b5001980000001f0c50018f0000000009b80019000001110000613d000000000d0a034f000000000e08001900000000df0d043c000000000efe043600000000009e004b0000010d0000c13d00000000000c004b0000011e0000613d000000000aba034f000000030bc00210000000000c090433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a9043500000000055800190000000000050435000000a00070043f0000002004400039000000000541034f000000000505043b000004030050009c000000540000213d00000000073500190000002305700039000000000065004b000000540000813d0000000405700039000000000551034f000000000905043b000004030090009c000004fa0000213d00000005059002100000003f055000390000040908500197000000400500043d0000000008850019000000000058004b000000000a000039000000010a004039000004030080009c000004fa0000213d0000000100a00190000004fa0000c13d000000400080043f0000000000950435000000240770003900000006089002100000000008780019000000000068004b000000540000213d000000000009004b000008940000c13d000000c00050043f0000002004400039000000000541034f000000000505043b000003e40050009c000000540000213d000000e00050043f0000002004400039000000000441034f000000000404043b000004030040009c000000540000213d00000000073400190000002303700039000000000063004b000000000400001900000408040080410000040803300197000000000003004b00000000050000190000040805004041000004080030009c000000000504c019000000000005004b000000540000c13d0000000408700039000000000381034f000000000303043b000004030030009c000004fa0000213d0000001f0430003900000443044001970000003f044000390000044305400197000000400400043d0000000005540019000000000045004b00000000090000390000000109004039000004030050009c000004fa0000213d0000000100900190000004fa0000c13d000000400050043f000000000534043600000000073700190000002407700039000000000067004b000000540000213d0000002006800039000000000661034f00000443073001980000001f0830018f0000000001750019000001810000613d000000000906034f000000000a050019000000009b09043c000000000aba043600000000001a004b0000017d0000c13d000000000008004b0000018e0000613d000000000676034f0000000307800210000000000801043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f000000000061043500000000013500190000000000010435000001000040043f000000e00100043d000003e400100198000001980000c13d0000000201000039000000000101041a000003e401100197000000e00010043f0000040301200197000a00000001001d000000000010043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000400200043d000b00000002001d0000000403200039000000000101043b000000000101041a000003e402100198000008e00000c13d00000431010000410000000b0200002900000000001204350000000a010000290000000000130435000003e10020009c000003e102008041000000400120021000000406011001c700000f8200010430000003f20020009c000002f50000213d000003f50020009c000003f80000613d000003f60020009c000000540000c13d000000440060008c000000540000413d0000000402100370000000000202043b000b00000002001d000004030020009c000000540000213d0000002402100370000000000202043b000004030020009c000000540000213d0000000003260049000004070030009c000000540000213d000000a40030008c000000540000413d0000012003000039000000400030043f0000000404200039000000000541034f000000000505043b000004030050009c000000540000213d00000000072500190000002305700039000000000065004b000000540000813d0000000408700039000000000581034f000000000505043b000004030050009c000004fa0000213d0000001f0950003900000443099001970000003f0990003900000443099001970000041f0090009c000004fa0000213d0000012009900039000000400090043f000001200050043f00000000075700190000002407700039000000000067004b000000540000213d0000002007800039000000000871034f00000443095001980000001f0a50018f0000014007900039000001f60000613d000001400b000039000000000c08034f00000000cd0c043c000000000bdb043600000000007b004b000001f20000c13d00000000000a004b000002030000613d000000000898034f0000000309a00210000000000a070433000000000a9a01cf000000000a9a022f000000000808043b0000010009900089000000000898022f00000000089801cf0000000008a8019f000000000087043500000140055000390000000000050435000000800030043f0000002003400039000000000431034f000000000404043b000004030040009c000000540000213d00000000082400190000002304800039000000000064004b000000540000813d0000000409800039000000000491034f000000000404043b000004030040009c000004fa0000213d0000001f0540003900000443055001970000003f055000390000044307500197000000400500043d0000000007750019000000000057004b000000000a000039000000010a004039000004030070009c000004fa0000213d0000000100a00190000004fa0000c13d000000400070043f000000000745043600000000084800190000002408800039000000000068004b000000540000213d0000002008900039000000000981034f000004430a4001980000001f0b40018f0000000008a70019000002330000613d000000000c09034f000000000d07001900000000ce0c043c000000000ded043600000000008d004b0000022f0000c13d00000000000b004b000002400000613d0000000009a9034f000000030ab00210000000000b080433000000000bab01cf000000000bab022f000000000909043b000001000aa000890000000009a9022f0000000009a901cf0000000009b9019f000000000098043500000000044700190000000000040435000000a00050043f0000002003300039000000000431034f000000000404043b000004030040009c000000540000213d00000000052400190000002304500039000000000064004b000000540000813d0000000404500039000000000441034f000000000804043b000004030080009c000004fa0000213d00000005048002100000003f044000390000040907400197000000400400043d0000000007740019000000000047004b00000000090000390000000109004039000004030070009c000004fa0000213d0000000100900190000004fa0000c13d000000400070043f0000000000840435000000240550003900000006078002100000000007570019000000000067004b000000540000213d000000000008004b000008ae0000c13d000000c00040043f0000002003300039000000000431034f000000000404043b000003e40040009c000000540000213d000000e00040043f0000002003300039000000000331034f000000000303043b000004030030009c000000540000213d00000000052300190000002302500039000000000062004b000000000300001900000408030080410000040802200197000000000002004b00000000040000190000040804004041000004080020009c000000000403c019000000000004004b000000540000c13d0000000407500039000000000271034f000000000202043b000004030020009c000004fa0000213d0000001f0320003900000443033001970000003f033000390000044304300197000000400300043d0000000004430019000000000034004b00000000080000390000000108004039000004030040009c000004fa0000213d0000000100800190000004fa0000c13d000000400040043f000000000423043600000000052500190000002405500039000000000065004b000000540000213d0000002005700039000000000551034f00000443062001980000001f0720018f0000000001640019000002a30000613d000000000805034f0000000009040019000000008a08043c0000000009a90436000000000019004b0000029f0000c13d000000000007004b000002b00000613d000000000565034f0000000306700210000000000701043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000051043500000000012400190000000000010435000001000030043f0000042001000041000000400200043d000a00000002001d0000000000120435000004210100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003e10010009c000003e101008041000000c00110021000000422011001c700008005020000390f800f7b0000040f000000010020019000000d190000613d000000000201043b0000000001000414000003e402200197000000040020008c000009490000c13d0000000103000031000000200030008c00000020040000390000000004034019000009740000013d0000000003000411000000000003004b000003d20000c13d000000400100043d0000004402100039000003e7030000410000000000320435000000240210003900000018030000390000000000320435000003e8020000410000000000210435000000040210003900000020030000390000000000320435000003e10010009c000003e1010080410000004001100210000003e9011001c700000f8200010430000003ff0020009c000003fd0000613d000004000020009c000000540000c13d0000000001000416000000000001004b000000540000c13d0000000001000412000d00000001001d000c00000000003d0000800501000039000000440300003900000000040004150000000d0440008a000000050440021000000421020000410f800f5d0000040f000004e30000013d000003f30020009c000004330000613d000003f40020009c000000540000c13d000000240060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000401100370000000000101043b000004030010009c000000540000213d0f800de80000040f000000000001004b0000000001000039000000010100c039000000400200043d0000000000120435000003e10020009c000003e10200804100000040012002100000041b011001c700000f810001042e000003fc0020009c000004c10000613d000003fd0020009c000000540000c13d000000640060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000402100370000000000502043b000003e40050009c000000540000213d0000002402100370000000000402043b000003e40040009c000000540000213d000000000200041a000003e4022001970000000003000411000000000023004b0000050a0000c13d0000004402100370000000000302043b000000000004004b0000055d0000c13d0000043601000041000000800010043f000000840000043f000004370100004100000f8200010430000003f00020009c000004d30000613d000003f10020009c000000540000c13d000000640060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000402100370000000000202043b000004030020009c000000540000213d0000002303200039000000000063004b000000540000813d0000000403200039000000000331034f000000000303043b000700000003001d000004030030009c000000540000213d000600240020003d000000070200002900000006022002100000000602200029000000000062004b000000540000213d0000002402100370000000000202043b000004030020009c000000540000213d0000002303200039000000000063004b000000540000813d0000000403200039000000000331034f000000000303043b000300000003001d000004030030009c000000540000213d000200240020003d000000030200002900000006022002100000000202200029000000000062004b000000540000213d0000004402100370000000000202043b000004030020009c000000540000213d0000002303200039000000000063004b000000540000813d0000000403200039000000000131034f000000000101043b000500000001001d000004030010009c000000540000213d000400240020003d000000050100002900000006011002100000000401100029000000000061004b000000540000213d000000000100041a000003e4011001970000000002000411000000000012004b0000050a0000c13d000000070000006b000007bd0000c13d000000030000006b000008080000c13d000000050000006b000004990000613d000b00000000001d000003800000013d0000000b020000290000000102200039000b00000002001d000000050020006c000004990000813d0000000b01000029000000060110021000000004011000290000000202000367000000000312034f000000000303043b000a00000003001d000004030030009c000000540000213d0000002001100039000000000112034f000000000101043b000900000001001d000003e40010009c000000540000213d0000000a01000029000000a001100210000004130110019700000009011001af000800000001001d000000000010043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b000000000101041a000000000001004b0000037b0000c13d0000000403000039000000000103041a000004030010009c000004fa0000213d0000000102100039000000000023041b000004190110009a0000000802000029000000000021041b000000000103041a000700000001001d000000000020043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b0000000702000029000000000021041b000000400100043d00000009020000290000000000210435000003e10010009c000003e10100804100000040011002100000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f00000411011001c70000800d0200003900000002030000390000041a040000410000000a050000290f800f760000040f00000001002001900000037b0000c13d000000540000013d000000000400041a000003e504400197000000000334019f000000000030041b0000000203000039000000000403041a000003e504400197000000000114019f000000000013041b000000800020043f000001400000044300000160002004430000002001000039000001000010044300000001010000390000012000100443000003e60100004100000f810001042e0000000001000416000000000001004b000000540000c13d000000c001000039000000400010043f0000000c01000039000000800010043f0000044101000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e0020000390f800dd60000040f000000c00110008a000003e10010009c000003e101008041000000600110021000000442011001c700000f810001042e0000000001000416000000000001004b000000540000c13d000000000100041a000004e30000013d000000840060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000402100370000000000202043b000b00000002001d000004030020009c000000540000213d0000000b0260006a000004070020009c000000540000213d000000a40020008c000000540000413d0000002402100370000000000202043b000a00000002001d0000ffff0020008c000000540000213d0000006402100370000000000202043b000900000002001d000003e40020009c000000540000213d0000004401100370000000000101043b000800000001001d0000042001000041000000800010043f000004210100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003e10010009c000003e101008041000000c00110021000000422011001c700008005020000390f800f7b0000040f000000010020019000000d190000613d000000000201043b0000000001000414000003e402200197000000040020008c000005660000c13d0000000103000031000000200030008c000000200400003900000000040340190000058c0000013d0000000001000416000000000001004b000000540000c13d0000000402000039000000000102041a000000800010043f000000000020043f000000000001004b000004e70000c13d000000a001000039000000400010043f0000002002000039000000000400001900000005034002100000003f053000390000041e055001970000000005150019000004030050009c000004fa0000213d000000400050043f0000000000410435000000000004004b000004590000613d000000a0042000390000000005000019000000400600043d000004100060009c000004fa0000213d0000004007600039000000400070043f000000200760003900000000000704350000000000060435000000000754001900000000006704350000002005500039000000000035004b0000044c0000413d000000800300043d000000000003004b000005410000c13d000000400200043d00000020030000390000000004320436000000000301043300000000003404350000004004200039000000000003004b000004750000613d0000000005000019000000000602001900000000070400190000002001100039000000000401043300000000840404340000040304400197000000000047043500000060046000390000000006080433000003e406600197000000000064043500000040047000390000000105500039000000000035004b0000000006070019000004660000413d0000000001240049000003e10010009c000003e1010080410000006001100210000003e10020009c000003e1020080410000004002200210000000000121019f00000f810001042e0000000001000416000000000001004b000000540000c13d0000000101000039000000000201041a000003e4032001970000000006000411000000000036004b000005000000c13d000000000300041a000003e504300197000000000464019f000000000040041b000003e502200197000000000021041b0000000001000414000003e405300197000003e10010009c000003e101008041000000c0011002100000040b011001c70000800d02000039000000030300003900000433040000410f800f760000040f0000000100200190000000540000613d000000000100001900000f810001042e000000240060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000401100370000000000601043b000003e40060009c000000540000213d000000000100041a000003e4011001970000000005000411000000000015004b0000050a0000c13d000000000056004b000005140000c13d000003e801000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000040d01000041000000c40010043f0000040e0100004100000f82000104300000000001000416000000000001004b000000540000c13d0000008401000039000000800010043f0000040f0100004100000f810001042e0000000001000416000000000001004b000000540000c13d0000000201000039000004e20000013d000000240060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000401100370000000000101043b000b00000001001d000003e40010009c000000540000213d0f800dfd0000040f0000000201000039000000000201041a000003e5022001970000000b022001af000000000021041b000000000100001900000f810001042e000000240060008c000000540000413d0000000002000416000000000002004b000000540000c13d0000000401100370000000000101043b000004030010009c000000540000213d000000000010043f0000000301000039000000200010043f000000400200003900000000010000190f800f480000040f000000000101041a000003e401100197000000800010043f0000040f0100004100000f810001042e000000a0040000390000041c0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000004ea0000413d000000410150008a00000443021001970000041d0020009c000004fa0000213d0000008001200039000000800400043d000000400010043f000004030040009c000004400000a13d0000041501000041000000000010043f0000004101000039000000040010043f000004060100004100000f8200010430000003e801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000043201000041000000c40010043f0000040e0100004100000f8200010430000003e801000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000043401000041000000c40010043f0000040e0100004100000f82000104300000000101000039000000000201041a000003e502200197000000000262019f000000000021041b0000000001000414000003e10010009c000003e101008041000000c0011002100000040b011001c70000800d0200003900000003030000390000040c040000410f800f760000040f0000000100200190000000540000613d000004990000013d0000000b01000029000000000010043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b000000000201041a000000400a00043d000004050100004100000000001a04350000000401a000390000000b0300002900000000003104350000000001000414000003e402200197000000040020008c000005c00000c13d00000003010003670000000103000031000005d30000013d0000000003000019000000400400043d000004100040009c000004fa0000213d0000000505300210000000a00550003900000000060504330000004007400039000000400070043f0000002007400039000003e4086001970000000000870435000000a006600270000004030660019700000000006404350000000006010433000000000036004b00000d950000a13d000000000525001900000000004504350000000004010433000000000034004b00000d950000a13d0000000103300039000000800400043d000000000043004b000005420000413d0000045c0000013d000000000005004b000006250000c13d0000000002000414000000040040008c0000065c0000c13d000000000161034f000000010200003900000001030000310000066c0000013d000003e10010009c000003e101008041000000c00110021000000438011001c70f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a0000390000057b0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000005770000c13d000000000006004b000005880000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000006320000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000540000413d000000800200043d000000000002004b0000000003000039000000010300c039000000000032004b000000540000c13d000000000002004b000006a00000c13d0000000b010000290000002401100039000700000001001d0000000201100367000000000101043b000004030010009c000000540000213d0000000002000411000503e40020019b000000a001100210000004130110019700000005011001af000000000010043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000400200043d000600000002001d000000000101043b000000000101041a000000000001004b000006a50000c13d000004400100004100000006020000290000000000120435000003e10020009c000003e102008041000000400120021000000423011001c700000f8200010430000003e100a0009c000b0000000a001d000003e10300004100000000030a40190000004003300210000003e10010009c000003e101008041000000c001100210000000000131019f00000406011001c70f800f7b0000040f00000000030100190000006003300270000103e10030019d000003e103300197000300000001035500000001002001900000063e0000613d0000000b0a00002900000443053001980000001f0630018f00000000045a0019000005dd0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000005d90000c13d000000000006004b000005ea0000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000443021001970000000001a20019000000000021004b00000000020000390000000102004039000004030010009c000004fa0000213d0000000100200190000004fa0000c13d000000400010043f000004070030009c000000540000213d000000200030008c000000540000413d00000000020a0433000004030020009c000000540000213d0000000003a300190000000002a200190000001f04200039000000000034004b0000000005000019000004080500804100000408044001970000040806300197000000000764013f000000000064004b00000000040000190000040804004041000004080070009c000000000405c019000000000004004b000000540000c13d0000000024020434000004030040009c000004fa0000213d00000005054002100000003f0650003900000409066001970000000006160019000004030060009c000004fa0000213d000000400060043f00000000004104350000000004250019000000000034004b000000540000213d000000000042004b000000810000813d00000000030100190000000025020434000003e40050009c000000540000213d00000020033000390000000000530435000000000042004b0000061d0000413d000000810000013d0000042d01000041000000a00010043f000000a40040043f000000c40030043f0000004401000039000000800010043f0000010001000039000000400010043f000000800200003900000000010500190f800e140000040f000000000100001900000f810001042e0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006390000c13d000006490000013d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006450000c13d000000000005004b000006560000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003e10020009c000003e1020080410000004002200210000000000112019f00000f8200010430000003e10020009c000003e102008041000000c001200210000000000003004b000006630000c13d0000000002040019000006660000013d0000040b011001c7000080090200003900000000050000190f800f760000040f000300000001035500000000030100190000006003300270000103e10030019d000003e103300197000000000003004b000006780000c13d0000000100200190000004990000c13d000000400100043d00000435020000410000000000210435000003e10010009c000003e101008041000000400110021000000423011001c700000f8200010430000004030030009c000004fa0000213d0000001f0530003900000443055001970000003f055000390000044306500197000000400500043d0000000006650019000000000056004b00000000070000390000000107004039000004030060009c000004fa0000213d0000000100700190000004fa0000c13d000000400060043f000000000635043600000443043001980000001f0530018f0000000003460019000006920000613d000000000701034f000000007807043c0000000006860436000000000036004b0000068e0000c13d000000000005004b0000066e0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000066e0000013d00000424020000410000000000210435000000400110021000000423011001c700000f8200010430000000060300002900000020023000390000043901000041000400000002001d00000000001204350000002401300039000000200200003900000000002104350000000704000029000300200040009200000002010003670000000302100360000000000202043b00000044033000390000000000230435000000000241034f000000000202043b000004030020009c000000540000213d0000000b030000290000000403300039000000060400002900000064044000390000000000240435000000000200003100000000043200490000001f0440008a00000007050000290000002006500039000000000561034f000000000705043b00000408087001970000040805400197000000000958013f000000000058004b00000000080000190000040808004041000000000047004b000000000a000019000004080a008041000004080090009c00000000080ac019000000000008004b000000540000c13d0000000008370019000000000781034f000000000707043b000004030070009c000000540000213d00000020088000390000000009720049000000000098004b000000000a000019000004080a0020410000040809900197000004080b800197000000000c9b013f00000000009b004b000000000900001900000408090040410000040800c0009c00000000090ac019000000000009004b000000540000c13d000000060d0000290000008409d00039000000a00a0000390000000000a90435000000e409d000390000000000790435000000000a81034f000004430b7001980000001f0c70018f0000010409d000390000000008b90019000006f70000613d000000000d0a034f000000000e09001900000000df0d043c000000000efe043600000000008e004b000006f30000c13d00000000000c004b000007040000613d000000000aba034f000000030bc00210000000000c080433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a80435000000000897001900000000000804350000002008600039000000000681034f000000000606043b000004080a600197000000000b5a013f00000000005a004b000000000a000019000004080a004041000000000046004b000000000c000019000004080c0080410000040800b0009c000000000a0cc01900000000000a004b000000540000c13d000000000a3600190000000006a1034f000000000606043b000004030060009c000000540000213d000000200aa00039000000000b6200490000000000ba004b000000000c000019000004080c002041000004080bb00197000004080da00197000000000ebd013f0000000000bd004b000000000b000019000004080b0040410000040800e0009c000000000b0cc01900000000000b004b000000540000c13d0000001f07700039000004430c0000410000000007c7016f0000000009970019000000c007700039000000060b000029000000a40bb0003900000000007b0435000000000aa1034f0000000007690436000000000bc601700000001f0c60018f0000000009b700190000073d0000613d000000000d0a034f000000000e07001900000000df0d043c000000000efe043600000000009e004b000007390000c13d00000000000c004b0000074a0000613d000000000aba034f000000030bc00210000000000c090433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a90435000000000976001900000000000904350000002008800039000000000881034f000000000808043b0000040809800197000000000a59013f000000000059004b00000000050000190000040805004041000000000048004b000000000400001900000408040080410000040800a0009c000000000504c019000000000005004b000000540000c13d0000000004380019000000000341034f000000000303043b000004030030009c000000540000213d000000200440003900000006053002100000000005520049000000000054004b0000000008000019000004080800204100000408055001970000040809400197000000000a59013f000000000059004b000000000500001900000408050040410000040800a0009c000000000508c019000000000005004b000000540000c13d0000001f056000390000044305500197000000000575001900000006070000290000000006750049000000440660008a000000c40770003900000000006704350000000005350436000000000003004b0000078a0000613d0000000006000019000000000741034f000000000707043b000003e40070009c000000540000213d00000000077504360000002008400039000000000881034f000000000808043b0000000000870435000000400440003900000040055000390000000106600039000000000036004b0000077c0000413d00000006060000290000000003650049000000200430008a00000000004604350000001f0330003900000443033001970000000004630019000000000034004b00000000030000390000000103004039000200000004001d000004030040009c000004fa0000213d0000000100300190000004fa0000c13d0000000203000029000000400030043f0000043a0030009c000004fa0000213d0000000205000029000000c003500039000000400030043f00000084040000390000000004450436000000000121034f000b00000004001d0000000002040019000000001401043c0000000002420436000000000032004b000007a50000c13d00000429010000410000000000100443000000090100002900000004001004430000000001000414000003e10010009c000003e101008041000000c0011002100000042a011001c700008002020000390f800f7b0000040f000000010020019000000d190000613d000000000101043b000000000001004b000008c80000c13d0000043f01000041000000000010043f000004230100004100000f82000104300000000002000019000b00000002001d000000060120021000000006011000290000000002100079000004070020009c000000540000213d000000400020008c000000540000413d000000400400043d000004100040009c000004fa0000213d0000004002400039000000400020043f0000000203000367000000000213034f000000000202043b000004030020009c000000540000213d00000000052404360000002001100039000000000113034f000000000301043b000003e40030009c000000540000213d0000000000350435000000000020043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c70000801002000039000a00000004001d000900000005001d000800000003001d0f800f7b0000040f000000080500002900000009040000290000000a030000290000000100200190000000540000613d000000000101043b000000000201041a000003e502200197000000000252019f000000000021041b00000000020304330000000001040433000003e401100197000000400300043d0000000000130435000003e10030009c000003e10300804100000040013002100000000003000414000003e10030009c000003e103008041000000c003300210000000000113019f00000411011001c700000403052001970000800d02000039000000020300003900000412040000410f800f760000040f0000000100200190000000540000613d0000000b020000290000000102200039000000070020006c000007be0000413d000003750000013d0000000002000019000900000002001d000000060120021000000002011000290000000202000367000000000312034f000000000303043b000b00000003001d000004030030009c000000540000213d0000002001100039000000000112034f000000000101043b000a00000001001d000003e40010009c000000540000213d0000000b01000029000000a00110021000000413011001970000000a011001af000800000001001d000000000010043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b000000000301041a000000000003004b0000087a0000613d0000000401000039000000000201041a000000000002004b000008880000613d000000010130008a000000000023004b0000084f0000613d000000000012004b00000d950000a13d000004140130009a000004140220009a000000000202041a000000000021041b000000000020043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c70000801002000039000700000003001d0f800f7b0000040f0000000100200190000000540000613d000000000101043b0000000702000029000000000021041b0000000401000039000000000301041a000000000003004b0000088e0000613d000000010130008a000004140230009a000000000002041b0000000402000039000000000012041b0000000801000029000000000010043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000000101043b000000000001041b000000400100043d0000000a020000290000000000210435000003e10010009c000003e10100804100000040011002100000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f00000411011001c70000800d02000039000000020300003900000416040000410000000b050000290f800f760000040f0000000100200190000000540000613d00000009020000290000000102200039000000030020006c000008090000413d000003770000013d000000400100043d00000024021000390000000a0300002900000000003204350000041702000041000000000021043500000004021000390000000b030000290000000000320435000003e10010009c000003e101008041000000400110021000000418011001c700000f82000104300000041501000041000000000010043f0000001101000039000000040010043f000004060100004100000f82000104300000041501000041000000000010043f0000003101000039000000040010043f000004060100004100000f82000104300000000009050019000000000a7600490000040700a0009c000000540000213d0000004000a0008c000000540000413d000000400a00043d0000041000a0009c000004fa0000213d000000400ba000390000004000b0043f000000000b71034f000000000b0b043b000003e400b0009c000000540000213d0000002009900039000000000bba0436000000200c700039000000000cc1034f000000000c0c043b0000000000cb04350000000000a904350000004007700039000000000087004b000008950000413d000001440000013d00000000080400190000000009560049000004070090009c000000540000213d000000400090008c000000540000413d000000400900043d000004100090009c000004fa0000213d000000400a9000390000004000a0043f000000000a51034f000000000a0a043b000003e400a0009c000000540000213d0000002008800039000000000aa90436000000200b500039000000000bb1034f000000000b0b043b0000000000ba043500000000009804350000004005500039000000000075004b000008af0000413d000002660000013d00000000010004140000000a0110006c000008cf0000813d0000043e01000041000000000010043f000004230100004100000f820001043000000006021002700000000001210049000000080010006c000008dc0000a13d0000000001000414000100000001001d0000000901000029000000040010008c000009aa0000c13d000800010000003d00000003010003670000000102000031000009c10000013d0000043b01000041000000000010043f000004230100004100000f820001043000000426010000410000000b0600002900000000001604350000000a0100002900000000001304350000002401600039000000400300003900000000003104350000004401600039000000800300043d000000a0040000390000000000410435000000e404600039000000005303043400000000003404350000010404600039000000000003004b000008fa0000613d000000000600001900000000074600190000000008650019000000000808043300000000008704350000002006600039000000000036004b000008f30000413d000000000534001900000000000504350000001f033000390000044303300197000000000334001900000000041300490000000b050000290000006405500039000000a00600043d000000000045043500000000540604340000000003430436000000000004004b000009100000613d000000000600001900000000073600190000000008650019000000000808043300000000008704350000002006600039000000000046004b000009090000413d000000000543001900000000000504350000001f044000390000044304400197000000000343001900000000051300490000000b040000290000008406400039000000c00400043d000000000056043500000000050404330000000003530436000000000005004b0000092a0000613d0000000006000019000000200440003900000000070404330000000087070434000003e40770019700000000077304360000000008080433000000000087043500000040033000390000000106600039000000000056004b0000091f0000413d000000e00400043d000003e4044001970000000b06000029000000a40560003900000000004504350000000001130049000000c404600039000001000500043d000000000014043500000000540504340000000001430436000000000004004b0000093f0000613d000000000300001900000000061300190000000007350019000000000707043300000000007604350000002003300039000000000043004b000009380000413d000000000341001900000000000304350000000003000414000000040020008c00000a3c0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000a6f0000013d0000000a03000029000003e10030009c000003e1030080410000004003300210000003e10010009c000003e101008041000000c001100210000000000131019f00000423011001c70f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a05700029000009630000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b0000095f0000c13d000000000006004b000009700000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000a840000613d0000001f01400039000000600210018f0000000a01200029000000000021004b00000000020000390000000102004039000004030010009c000004fa0000213d0000000100200190000004fa0000c13d000000400010043f000000200030008c000000540000413d0000000a020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b000000540000c13d000000000002004b00000a9c0000c13d0000000b010000290000040301100197000600000001001d000000000010043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d000000400200043d000b00000002001d000000000101043b000000000101041a000703e40010019c00000a9e0000c13d00000431010000410000000b030000290000000000130435000000040130003900000006020000290000000000210435000003e10030009c000003e103008041000000400130021000000406011001c700000f82000104300000000401000029000003e10010009c000003e101008041000000400110021000000006020000290000000002020433000003e10020009c000003e1020080410000006002200210000000000112019f0000000802000029000003e10020009c000003e102008041000000c002200210000000000121019f00000009020000290f800f760000040f000800000002001d000300000001035500000000020100190000006002200270000103e10020019d000003e102200197000000840020008c00000084020080390000000003000414000900000003001d000000020300002900000000002304350000001f0320018f000000e0042001900000000b02400029000009d10000613d000000000501034f0000000b06000029000000005705043c0000000006760436000000000026004b000009cd0000c13d000000000003004b000009de0000613d000000000141034f0000000303300210000000000402043300000000043401cf000000000434022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f000000000012043500000007010000290000000201100367000000000101043b000a00000001001d000004030010009c000000540000213d0000000401000029000003e10010009c000003e101008041000000400110021000000006020000290000000002020433000003e10020009c000003e1020080410000006002200210000000000112019f0000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f0000040b011001c700008010020000390f800f7b0000040f0000000100200190000000540000613d00000003020000290000000202200367000000000202043b000000000101043b000000400300043d0000006004300039000000000014043500000040013000390000000504000029000000000041043500000020013000390000000a0400002900000000004104350000000000230435000003e10030009c000003e10300804100000040013002100000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f0000043c011001c70000800d0200003900000001030000390000043d040000410f800f760000040f0000000100200190000000540000613d000000400100043d0000002002100039000000600300003900000000003204350000000802000029000000010220018f000000000021043500000002020000290000000002020433000000600310003900000000002304350000008003100039000000000002004b00000a2b0000613d000000000400001900000000053400190000000b06400029000000000606043300000000006504350000002004400039000000000024004b00000a240000413d0000000003320019000000000003043500000009040000290000000103400069000000400410003900000000003404350000001f0220003900000443022001970000008002200039000003e10020009c000003e1020080410000006002200210000003e10010009c000003e1010080410000004001100210000000000112019f00000f810001042e0000001f0440003900000443044001970000000b0500002900000000045400490000000001140019000003e10010009c000003e1010080410000006001100210000003e10050009c000003e10400004100000000040540190000004004400210000000000141019f000003e10030009c000003e103008041000000c003300210000000000131019f0f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000a5e0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000a5a0000c13d000000000006004b00000a6b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000a900000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000004030010009c000004fa0000213d0000000100200190000004fa0000c13d000000400010043f000000200030008c000000540000413d0000000b0200002900000000020204330000000000210435000003e10010009c000003e10100804100000040011002100000041b011001c700000f810001042e0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a8b0000c13d000006490000013d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a970000c13d000006490000013d0000042402000041000006720000013d000000e00100043d000003e40010019800000b100000c13d0000000201000039000000000101041a000003e401100197000000e00010043f0000000b05000029000000240150003900000040020000390000000000210435000004260100004100000000001504350000000401500039000000060200002900000000002104350000004401500039000000800200043d000000a0030000390000000000310435000000e403500039000000004202043400000000002304350000010403500039000000000002004b00000ac00000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000025004b00000ab90000413d000000000423001900000000000404350000001f022000390000044302200197000000000223001900000000031200490000000b040000290000006404400039000000a00500043d000000000034043500000000430504340000000002320436000000000003004b00000ad60000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000035004b00000acf0000413d000000000432001900000000000404350000001f033000390000044303300197000000000232001900000000041200490000000b030000290000008405300039000000c00300043d000000000045043500000000040304330000000002420436000000000004004b00000af00000613d0000000005000019000000200330003900000000060304330000000076060434000003e40660019700000000066204360000000007070433000000000076043500000040022000390000000105500039000000000045004b00000ae50000413d000000e00300043d000003e4033001970000000b05000029000000a40450003900000000003404350000000001120049000000c403500039000001000400043d000000000013043500000000430404340000000001320436000000000003004b00000b050000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00000afe0000413d0000000002310019000000000002043500000000020004140000000704000029000000040040008c00000b7e0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000bb20000013d0000000001000416000000000001004b00000bc70000c13d0000000b05000029000000240150003900000040020000390000000000210435000004260100004100000000001504350000000401500039000000060200002900000000002104350000004401500039000000800200043d000000a0030000390000000000310435000000e403500039000000004202043400000000002304350000010403500039000000000002004b00000b2e0000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000025004b00000b270000413d000000000423001900000000000404350000001f022000390000044302200197000000000223001900000000031200490000000b040000290000006404400039000000a00500043d000000000034043500000000430504340000000002320436000000000003004b00000b440000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000035004b00000b3d0000413d000000000432001900000000000404350000001f033000390000044303300197000000000232001900000000041200490000000b030000290000008405300039000000c00300043d000000000045043500000000040304330000000002420436000000000004004b00000b5e0000613d0000000005000019000000200330003900000000060304330000000076060434000003e40660019700000000066204360000000007070433000000000076043500000040022000390000000105500039000000000045004b00000b530000413d000000e00300043d000003e4033001970000000b05000029000000a40450003900000000003404350000000001120049000000c403500039000001000400043d000000000013043500000000430404340000000001320436000000000003004b00000b730000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00000b6c0000413d0000000002310019000000000002043500000000020004140000000704000029000000040040008c00000bca0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000bfe0000013d0000001f0330003900000443033001970000000b0400002900000000034300490000000001130019000003e10010009c000003e1010080410000006001100210000003e10040009c000003e10300004100000000030440190000004003300210000000000131019f000003e10020009c000003e102008041000000c002200210000000000121019f00000007020000290f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000ba10000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000b9d0000c13d000000000006004b00000bae0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000cd80000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000004030010009c000004fa0000213d0000000100200190000004fa0000c13d000000400010043f000000200030008c000000540000413d0000000b0200002900000000020204330000000003000416000500000003001d000000000023004b00000cf00000813d0000043002000041000006720000013d00000425010000410000000b02000029000005ba0000013d0000001f0330003900000443033001970000000b0400002900000000034300490000000001130019000003e10010009c000003e1010080410000006001100210000003e10040009c000003e10300004100000000030440190000004003300210000000000131019f000003e10020009c000003e102008041000000c002200210000000000121019f00000007020000290f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000bed0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000be90000c13d000000000006004b00000bfa0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000ce40000613d0000001f01400039000000600110018f0000000b02100029000000000012004b00000000010000390000000101004039000004030020009c000004fa0000213d0000000100100190000004fa0000c13d000000400020043f000000200030008c000000540000413d0000000b0100002900000000050104330000002003200039000000e00100043d000004270400004100000000004304350000004403200039000000070400002900000000004304350000000003000411000003e403300197000000240420003900000000003404350000006403200039000500000005001d000000000053043500000064030000390000000000320435000004280020009c000004fa0000213d000000a003200039000000400030043f000003e4011001970f800e140000040f000000c00100043d0000000002010433000000000002004b00000d1a0000c13d0000000001000411000400000001001d000000400500043d0000002401500039000000800200003900000000002104350000042f0100004100000000001504350000000401500039000000060200002900000000002104350000008401500039000000800200043d000000a0030000390000000000310435000001240350003900000000420204340000000000230435000b00000005001d0000014403500039000000000002004b00000c450000613d000000000500001900000000063500190000000007540019000000000707043300000000007604350000002005500039000000000025004b00000c3e0000413d000000000423001900000000000404350000001f022000390000044302200197000000000223001900000000031200490000000b04000029000000a404400039000000a00500043d000000000034043500000000430504340000000002320436000000000003004b00000c5b0000613d000000000500001900000000062500190000000007540019000000000707043300000000007604350000002005500039000000000035004b00000c540000413d000000000432001900000000000404350000001f033000390000044303300197000000000232001900000000041200490000000b03000029000000c405300039000000c00300043d000000000045043500000000040304330000000002420436000000000004004b00000c750000613d0000000005000019000000200330003900000000060304330000000076060434000003e40660019700000000066204360000000007070433000000000076043500000040022000390000000105500039000000000045004b00000c6a0000413d000000e00300043d000003e4033001970000000b05000029000000e404500039000000000034043500000000011200490000010403500039000001000400043d000000000013043500000000430404340000000001320436000000000003004b00000c8a0000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00000c830000413d000000000231001900000000000204350000000402000029000003e4022001970000000b050000290000006404500039000000000024043500000044025000390000000504000029000000000042043500000000020004140000000704000029000000040040008c000009440000613d0000001f0330003900000443033001970000000b0400002900000000034300490000000001130019000003e10010009c000003e1010080410000006001100210000003e10040009c000003e10300004100000000030440190000004003300210000000000131019f000003e10020009c000003e102008041000000c002200210000000000112019f00000007020000290f800f760000040f00000000030100190000006003300270000003e103300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000cbb0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000cb70000c13d000000000006004b00000cc80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000a6f0000c13d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cd30000c13d000006490000013d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000cdf0000c13d000006490000013d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ceb0000c13d000006490000013d000000e00100043d00000429020000410000000000200443000003e401100197000b00000001001d00000004001004430000000001000414000003e10010009c000003e101008041000000c0011002100000042a011001c700008002020000390f800f7b0000040f000000010020019000000d190000613d000000000101043b000000000001004b000000540000613d000000400200043d0000042b01000041000a00000002001d0000000001120436000900000001001d00000000010004140000000b02000029000000040020008c00000da70000613d0000000a02000029000003e10020009c000003e1020080410000004002200210000003e10010009c000003e101008041000000c001100210000000000121019f0000000002000416000000000002004b00000d9b0000c13d00000423011001c70000000b0200002900000da00000013d000000000001042f0000000002000411000400000002001d000a00000000001d0000000a020000290000000502200210000900200020003d000000090110002900000000010104330000000001010433000000400400043d0000042e020000410000000000240435000000040240003900000006030000290000000000320435000003e402100197000b00000004001d0000002401400039000800000002001d000000000021043500000000010004140000000702000029000000040020008c00000d370000c13d0000000103000031000000200030008c0000002004000039000000000403401900000d620000013d0000000b02000029000003e10020009c000003e1020080410000004002200210000003e10010009c000003e101008041000000c001100210000000000121019f00000418011001c700000007020000290f800f7b0000040f00000000030100190000006003300270000003e103300197000000200030008c0000002004000039000000000403401900000020064001900000000b0560002900000d510000613d000000000701034f0000000b08000029000000007907043c0000000008980436000000000058004b00000d4d0000c13d0000001f0740019000000d5e0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000dbd0000613d0000001f01400039000000600110018f0000000b02100029000000000012004b00000000010000390000000101004039000004030020009c000004fa0000213d0000000100100190000004fa0000c13d000000400020043f000000200030008c000000540000413d0000000b010000290000000001010433000003e40010009c000000540000213d000000c00300043d00000000040304330000000a0040006c00000d950000a13d000000090330002900000000030304330000002003300039000000000303043300000020042000390000042705000041000000000054043500000064042000390000000000340435000000440320003900000000001304350000000001000411000003e4011001970000002403200039000000000013043500000064010000390000000000120435000004280020009c000004fa0000213d000000a001200039000000400010043f00000008010000290f800e140000040f0000000a03000029000a00010030003d000000c00100043d00000000020104330000000a0020006b00000d1d0000413d00000c290000013d0000041501000041000000000010043f0000003201000039000000040010043f000004060100004100000f82000104300000042c011001c7000080090200003900000000030004160000000b0400002900000000050000190f800f760000040f000300000001035500000000030100190000006003300270000103e10030019d000000010020019000000dc90000613d0000000a01000029000004030010009c000004fa0000213d0000000a04000029000000400040043f000000e00100043d0000042d0200004100000009030000290000000000230435000000440240003900000000030004160000000000320435000000240240003900000007030000290000000000320435000000440200003900000000002404350000041d0040009c000004fa0000213d0000000a02000029000000800320003900000c200000013d0000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000dc40000c13d000006490000013d000003e1033001970000001f0530018f000003e306300198000000400200043d0000000004620019000006490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000dd10000c13d000006490000013d00000000430104340000000001320436000000000003004b00000de20000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b00000ddb0000413d000000000231001900000000000204350000001f0230003900000443022001970000000001210019000000000001042d0000040301100197000000000010043f0000000301000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f000000010020019000000dfb0000613d000000000101043b000000000101041a000003e4001001980000000001000039000000010100c039000000000001042d000000000100001900000f8200010430000000000100041a000003e4011001970000000002000411000000000012004b00000e030000c13d000000000001042d000000400100043d000000440210003900000434030000410000000000320435000000240210003900000016030000390000000000320435000003e8020000410000000000210435000000040210003900000020030000390000000000320435000003e10010009c000003e1010080410000004001100210000003e9011001c700000f82000104300005000000000002000000400500043d000004440050009c00000ed80000813d000003e4061001970000004001500039000000400010043f000000200100003900000000041504360000044501000041000000000014043500000000230204340000000001000414000000040060008c00000e4e0000c13d000000010100003200000e8b0000613d000004030010009c00000ed80000213d0000001f0310003900000443033001970000003f033000390000044303300197000000400a00043d00000000033a00190000000000a3004b00000000040000390000000104004039000004030030009c00000ed80000213d000000010040019000000ed80000c13d000000400030043f00000000051a043600000443021001980000001f0310018f0000000001250019000000030400036700000e400000613d000000000604034f000000006706043c0000000005750436000000000015004b00000e3c0000c13d000000000003004b00000e8c0000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f000000000021043500000e8c0000013d000100000005001d000300000004001d000003e10030009c000003e1030080410000006003300210000003e10020009c000003e1020080410000004002200210000000000223019f000003e10010009c000003e101008041000000c001100210000000000112019f000200000006001d00000000020600190f800f760000040f000300000001035500000000030100190000006003300270000103e10030019d000003e10430019800000ea30000613d0000001f03400039000003e2033001970000003f033000390000044603300197000000400a00043d00000000033a00190000000000a3004b00000000050000390000000105004039000004030030009c00000ed80000213d000000010050019000000ed80000c13d000000400030043f0000001f0540018f00000000034a0436000003e306400198000000000463001900000e7d0000613d000000000701034f0000000008030019000000007907043c0000000008980436000000000048004b00000e790000c13d000000000005004b00000ea50000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000ea50000013d000000600a0000390000000002000415000000050220008a000000050220021000000000010a0433000000000001004b00000ead0000c13d00030000000a001d00000429010000410000000000100443000000040100003900000004001004430000000001000414000003e10010009c000003e101008041000000c0011002100000042a011001c700008002020000390f800f7b0000040f000000010020019000000f190000613d0000000002000415000000050220008a00000ec00000013d000000600a000039000000800300003900000000010a0433000000010020019000000ef40000613d0000000002000415000000040220008a0000000502200210000000000001004b00000eb00000613d000000050220027000000000020a001f00000eca0000013d00030000000a001d00000429010000410000000000100443000000020100002900000004001004430000000001000414000003e10010009c000003e101008041000000c0011002100000042a011001c700008002020000390f800f7b0000040f000000010020019000000f190000613d0000000002000415000000040220008a0000000502200210000000000101043b000000000001004b000000030a00002900000f1a0000613d00000000010a0433000000050220027000000000020a001f000000000001004b00000ed70000613d000004070010009c00000ede0000213d0000001f0010008c00000ede0000a13d0000002001a000390000000001010433000000000001004b0000000002000039000000010200c039000000000021004b00000ede0000c13d000000000001004b00000ee00000613d000000000001042d0000041501000041000000000010043f0000004101000039000000040010043f000004060100004100000f8200010430000000000100001900000f8200010430000000400100043d00000064021000390000044703000041000000000032043500000044021000390000044803000041000000000032043500000024021000390000002a030000390000000000320435000003e8020000410000000000210435000000040210003900000020030000390000000000320435000003e10010009c000003e101008041000000400110021000000449011001c700000f8200010430000000000001004b00000f2b0000c13d000000400100043d000003e802000041000000000021043500000004021000390000002003000039000000000032043500000001020000290000000002020433000000240310003900000000002304350000004403100039000000000002004b000000030700002900000f0c0000613d000000000400001900000000053400190000000006740019000000000606043300000000006504350000002004400039000000000024004b00000f050000413d0000001f042000390000044304400197000000000223001900000000000204350000004402400039000003e10020009c000003e1020080410000006002200210000003e10010009c000003e1010080410000004001100210000000000112019f00000f8200010430000000000001042f000000400100043d00000044021000390000044a03000041000000000032043500000024021000390000001d030000390000000000320435000003e8020000410000000000210435000000040210003900000020030000390000000000320435000003e10010009c000003e1010080410000004001100210000003e9011001c700000f8200010430000003e10030009c000003e1030080410000004002300210000003e10010009c000003e1010080410000006001100210000000000121019f00000f8200010430000000000010043f0000000501000039000000200010043f0000000001000414000003e10010009c000003e101008041000000c00110021000000404011001c700008010020000390f800f7b0000040f000000010020019000000f450000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000f8200010430000000000001042f000003e10010009c000003e1010080410000004001100210000003e10020009c000003e1020080410000006002200210000000000112019f0000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f0000040b011001c700008010020000390f800f7b0000040f000000010020019000000f5b0000613d000000000101043b000000000001042d000000000100001900000f820001043000000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b00000f600000413d000003e10030009c000003e10300804100000060013002100000000002000414000003e10020009c000003e102008041000000c002200210000000000112019f0000044b011001c700000000020500190f800f7b0000040f000000010020019000000f750000613d000000000101043b000000000001042d000000000001042f00000f79002104210000000102000039000000000001042d0000000002000019000000000001042d00000f7e002104230000000102000039000000000001042d0000000002000019000000000001042d00000f800000043200000f810001042e00000f8200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000008000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000a8d87a3a00000000000000000000000000000000000000000000000000000000e861e90600000000000000000000000000000000000000000000000000000000e861e90700000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fbca3b7400000000000000000000000000000000000000000000000000000000a8d87a3b00000000000000000000000000000000000000000000000000000000da5fcac800000000000000000000000000000000000000000000000000000000a40e69c600000000000000000000000000000000000000000000000000000000a40e69c700000000000000000000000000000000000000000000000000000000a48a9058000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000096f4e9f90000000000000000000000000000000000000000000000000000000052cb60c900000000000000000000000000000000000000000000000000000000787350e200000000000000000000000000000000000000000000000000000000787350e30000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000083826b2b0000000000000000000000000000000000000000000000000000000052cb60ca000000000000000000000000000000000000000000000000000000005f3e849f000000000000000000000000000000000000000000000000000000003cf97982000000000000000000000000000000000000000000000000000000003cf97983000000000000000000000000000000000000000000000000000000005246492f00000000000000000000000000000000000000000000000000000000181f5a770000000000000000000000000000000000000000000000000000000020487ded000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000040000000000000000000000000fbca3b740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffdf0200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c6600000000000000000000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf02000000000000000000000000000000000000200000000000000000000000001f7d0ec248b80e5c0dde0ee531c4fc8fdb6ce9a2b3d90f560c74acd6a7202f2300000000ffffffffffffffff000000000000000000000000000000000000000075ca53043ea007e5c65182cbb028f60d7179ff4b55739a3949b401801c942e664e487b7100000000000000000000000000000000000000000000000000000000a823809efda3ba66c873364eec120fa0923d9fabda73bc97dd5663341e2d9bcb4964779000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000075ca53043ea007e5c65182cbb028f60d7179ff4b55739a3949b401801c942e65a4bdf64ebdf3316320601a081916a75aa144bcef6c4beeb0e9fb1982cacc6b9400000000000000000000000000000000000000200000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b000000000000000000000000000000000000000000000000ffffffffffffff7f00000000000000000000000000000000000000000000003fffffffffffffffe0000000000000000000000000000000000000000000000000fffffffffffffedf397796f700000000000000000000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c1483715000000000000000000000000000000000000000000000000000000001841b4e10000000000000000000000000000000000000000000000000000000020487ded0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000d0e30db0000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000004000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000048a98aa400000000000000000000000000000000000000000000000000000000df0aa9e90000000000000000000000000000000000000000000000000000000007da6ee600000000000000000000000000000000000000000000000000000000ae236d9c000000000000000000000000000000000000000000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e04f6e6c792063616c6c61626c65206279206f776e657200000000000000000000e417b80b0000000000000000000000000000000000000000000000000000000026a78f8f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000000000000000000000000000000000000000000400000080000000000000000085572ffb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f37c3be290000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000800000000000000000000000009b877de93ea9895756e337442c657f95a34fc68e7eb988bdfa693d5be83016b6afa32a2c000000000000000000000000000000000000000000000000000000000c3b563c00000000000000000000000000000000000000000000000000000000d2316ede00000000000000000000000000000000000000000000000000000000526f7574657220312e322e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffc05361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656400000000000000000000000000000000000000000000000000000003ffffffe06f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/self_funded_ping_pong/self_funded_ping_pong.go b/core/gethwrappers/ccip/generated/self_funded_ping_pong/self_funded_ping_pong.go index 755b4183fe..34936fa6b8 100644 --- a/core/gethwrappers/ccip/generated/self_funded_ping_pong/self_funded_ping_pong.go +++ b/core/gethwrappers/ccip/generated/self_funded_ping_pong/self_funded_ping_pong.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package self_funded_ping_pong import ( @@ -52,7 +49,7 @@ var SelfFundedPingPongABI = SelfFundedPingPongMetaData.ABI var SelfFundedPingPongBin = SelfFundedPingPongMetaData.Bin -func DeploySelfFundedPingPong(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address, feeToken common.Address, roundTripsBeforeFunding uint8) (common.Address, *types.Transaction, *SelfFundedPingPong, error) { +func DeploySelfFundedPingPong(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address, feeToken common.Address, roundTripsBeforeFunding uint8) (common.Address, *generated.Transaction, *SelfFundedPingPong, error) { parsed, err := SelfFundedPingPongMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -60,12 +57,16 @@ func DeploySelfFundedPingPong(auth *bind.TransactOpts, backend bind.ContractBack if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(SelfFundedPingPongZKBin), backend, router, feeToken, roundTripsBeforeFunding) + contractReturn := &SelfFundedPingPong{address: address, abi: *parsed, SelfFundedPingPongCaller: SelfFundedPingPongCaller{contract: contractBind}, SelfFundedPingPongTransactor: SelfFundedPingPongTransactor{contract: contractBind}, SelfFundedPingPongFilterer: SelfFundedPingPongFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SelfFundedPingPongBin), backend, router, feeToken, roundTripsBeforeFunding) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &SelfFundedPingPong{address: address, abi: *parsed, SelfFundedPingPongCaller: SelfFundedPingPongCaller{contract: contract}, SelfFundedPingPongTransactor: SelfFundedPingPongTransactor{contract: contract}, SelfFundedPingPongFilterer: SelfFundedPingPongFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &SelfFundedPingPong{address: address, abi: *parsed, SelfFundedPingPongCaller: SelfFundedPingPongCaller{contract: contract}, SelfFundedPingPongTransactor: SelfFundedPingPongTransactor{contract: contract}, SelfFundedPingPongFilterer: SelfFundedPingPongFilterer{contract: contract}}, nil } type SelfFundedPingPong struct { @@ -1535,3 +1536,5 @@ type SelfFundedPingPongInterface interface { Address() common.Address } + +var SelfFundedPingPongZKBin = ("0x00030000000000020005000000000002000200000001035500000000030100190000006003300270000001f00030019d000001f0033001970000000100200190000000200000c13d0000008002000039000000400020043f000000040030008c000003e00000413d000000000201043b000000e002200270000002010020009c000000570000a13d000002020020009c000000a00000a13d000002030020009c000000ba0000213d000002070020009c000001770000613d000002080020009c000001ab0000613d000002090020009c000003e00000c13d0000000001000416000000000001004b000003e00000c13d0000000301000039000003170000013d000000a004000039000000400040043f0000000002000416000000000002004b000003e00000c13d0000001f02300039000001f102200197000000a002200039000000400020043f0000001f0530018f000001f206300198000000a002600039000000320000613d000000000701034f000000007807043c0000000004840436000000000024004b0000002e0000c13d000000000005004b0000003f0000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000003e00000413d000000a00100043d000001f30010009c000003e00000213d000000c00200043d000001f30020009c000003e00000213d000000e00300043d000300000003001d000000ff0030008c000003e00000213d000001f3031001980000031c0000c13d000000400100043d000001ff02000041000000000021043500000004021000390000000000020435000001f00010009c000001f001008041000000400110021000000200011001c7000007bc00010430000002100020009c000000ad0000213d000002170020009c000000ee0000a13d000002180020009c000001470000613d000002190020009c000001b50000613d0000021a0020009c000003e00000c13d0000000001000416000000000001004b000003e00000c13d000000000100041a000001f3011001970000000002000411000000000012004b000003310000c13d0000000202000039000000000102041a000001f501100197000000000012041b0000000103000039000000800030043f0000000001000414000001f00010009c000001f001008041000000c00110021000000222011001c70000800d02000039000002300400004107ba07b00000040f0000000100200190000003e00000613d0000000301000039000000000101041a00000221011001970000023b0010009c000004650000c13d0000000101000039000000000101041a000000400300043d0000023c020000410000000000230435000000a001100270000001f801100197000300000003001d00000004023000390000000000120435000002280100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001f00010009c000001f001008041000000c0011002100000022a011001c7000080050200003907ba07b50000040f0000000100200190000005290000613d000000000201043b0000000001000414000001f302200197000000040020008c000003f10000c13d0000000103000031000000200030008c000000200400003900000000040340190000041b0000013d0000020a0020009c000000da0000a13d0000020b0020009c0000012e0000613d0000020c0020009c000001390000613d0000020d0020009c000003e00000c13d0000000001000416000000000001004b000003e00000c13d0000000201000039000001320000013d000002110020009c000001070000a13d000002120020009c0000015b0000613d000002130020009c000001ca0000613d000002140020009c000003e00000c13d0000000001000416000000000001004b000003e00000c13d000000000100041a000003180000013d000002040020009c000001970000613d000002050020009c000002de0000613d000002060020009c000003e00000c13d000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000601043b000001f30060009c000003e00000213d000000000100041a000001f3011001970000000005000411000000000015004b000003310000c13d000000000056004b000003d00000c13d000001fc01000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000021f01000041000000c40010043f0000022001000041000007bc000104300000020e0020009c000001a10000613d0000020f0020009c000003e00000c13d000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b000300000001001d000001f30010009c000003e00000213d07ba077f0000040f0000000201000039000000000201041a000001f4022001970000000303000029000001930000013d0000021b0020009c000003020000613d0000021c0020009c000003e00000c13d000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000201043b000000000002004b0000000001000039000000010100c039000300000002001d000000000012004b000003e00000c13d07ba077f0000040f000000030000006b0000000001000019000002380100c0410000000202000039000000000302041a000001f503300197000001c60000013d000002150020009c000003130000613d000002160020009c000003e00000c13d000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000003e00000c13d000000000200041a000001f3022001970000000003000411000000000023004b000003310000c13d0000000302000039000000000302041a000001f503300197000000000001004b0000000004000019000002380400c041000000000343019f000000000032041b000000800010043f0000000001000414000001f00010009c000001f001008041000000c00110021000000222011001c70000800d0200003900000001030000390000023904000041000002fd0000013d0000000001000416000000000001004b000003e00000c13d0000000301000039000000000101041a00000227001001980000000001000039000000010100c039000000800010043f0000022401000041000007bb0001042e0000000001000416000000000001004b000003e00000c13d0000000001000412000500000001001d000400000000003d000080050100003900000044030000390000000004000415000000050440008a0000000504400210000002280200004107ba07970000040f000003180000013d0000000001000416000000000001004b000003e00000c13d000000c001000039000000400010043f0000001801000039000000800010043f0000024201000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003907ba06870000040f000000c00110008a000001f00010009c000001f001008041000000600110021000000243011001c7000007bb0001042e0000000001000416000000000001004b000003e00000c13d0000000101000039000000000201041a000001f3032001970000000006000411000000000036004b000003560000c13d000000000300041a000001f404300197000000000464019f000000000040041b000001f402200197000000000021041b0000000001000414000001f305300197000001f00010009c000001f001008041000000c0011002100000021d011001c70000800d020000390000000303000039000002370400004107ba07b00000040f0000000100200190000003000000c13d000003e00000013d000000440030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000402100370000000000202043b000300000002001d000001f80020009c000003e00000213d0000002401100370000000000101043b000200000001001d000001f30010009c000003e00000213d07ba077f0000040f0000000301000029000000a00110021000000225011001970000000102000039000000000302041a0000022603300197000000000113019f000000000012041b0000000201000039000000000201041a000001f4022001970000000203000029000000000232019f000000000021041b0000000001000019000007bb0001042e0000000001000416000000000001004b000003e00000c13d0000000301000039000000000101041a000000a801100270000000ff0110018f000000800010043f0000022401000041000007bb0001042e000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b07ba06990000040f0000000001000019000007bb0001042e0000000001000416000000000001004b000003e00000c13d0000000101000039000000000101041a000000a001100270000001f801100197000000800010043f0000022401000041000007bb0001042e000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b000300000001001d000001f80010009c000003e00000213d07ba077f0000040f0000000301000029000000a00110021000000225011001970000000102000039000000000302041a0000022603300197000000000113019f000000000012041b0000000001000019000007bb0001042e000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b000300000001001d000001f80010009c000003e00000213d000000030130006a000002290010009c000003e00000213d000000a40010008c000003e00000413d000002280100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001f00010009c000001f001008041000000c0011002100000022a011001c7000080050200003907ba07b50000040f0000000100200190000005290000613d000000400200043d000000000101043b000001f3011001970000000003000411000000000013004b000003e20000c13d0000022b0020009c0000048f0000213d000000a001200039000000400010043f000000030500002900000004035000390000000201000367000000000331034f000000000303043b00000000043204360000002403500039000000000531034f000000000505043b000001f80050009c000003e00000213d00000000005404350000002005300039000000000351034f000000000303043b000001f80030009c000003e00000213d000000030930002900000023069000390000022c0760019700000000030000310000022c04300197000000000847013f000000000047004b00000000070000190000022c07004041000000000036004b00000000060000190000022c060080410000022c0080009c000000000706c019000000000007004b000003e00000c13d000000040a9000390000000006a1034f000000000606043b000001f80060009c0000048f0000213d0000001f0760003900000247077001970000003f077000390000024708700197000000400700043d0000000008870019000000000078004b000000000b000039000000010b004039000001f80080009c0000048f0000213d0000000100b001900000048f0000c13d000000400080043f000000000867043600000000096900190000002409900039000000000039004b000003e00000213d0000002009a00039000000000a91034f000002470b6001980000001f0c60018f0000000009b80019000002360000613d000000000d0a034f000000000e08001900000000df0d043c000000000efe043600000000009e004b000002320000c13d00000000000c004b000002430000613d000000000aba034f000000030bc00210000000000c090433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a9043500000000066800190000000000060435000000400620003900000000007604350000002006500039000000000561034f000000000505043b000001f80050009c000003e00000213d00000003095000290000002305900039000000000035004b00000000070000190000022c070080410000022c05500197000000000845013f000000000045004b00000000050000190000022c050040410000022c0080009c000000000507c019000000000005004b000003e00000c13d000000040a9000390000000005a1034f000000000505043b000001f80050009c0000048f0000213d0000001f0750003900000247077001970000003f077000390000024708700197000000400700043d0000000008870019000000000078004b000000000b000039000000010b004039000001f80080009c0000048f0000213d0000000100b001900000048f0000c13d000000400080043f000000000857043600000000095900190000002409900039000000000039004b000003e00000213d0000002009a00039000000000a91034f000002470b5001980000001f0c50018f0000000009b800190000027e0000613d000000000d0a034f000000000e08001900000000df0d043c000000000efe043600000000009e004b0000027a0000c13d00000000000c004b0000028b0000613d000000000aba034f000000030bc00210000000000c090433000000000cbc01cf000000000cbc022f000000000a0a043b000001000bb00089000000000aba022f000000000aba01cf000000000aca019f0000000000a9043500000000055800190000000000050435000000600520003900000000007504350000002006600039000000000661034f000000000606043b000001f80060009c000003e00000213d00000003066000290000002307600039000000000037004b00000000080000190000022c080080410000022c07700197000000000947013f000000000047004b00000000040000190000022c040040410000022c0090009c000000000408c019000000000004004b000003e00000c13d0000000404600039000000000441034f000000000804043b000001f80080009c0000048f0000213d00000005048002100000003f044000390000022d07400197000000400400043d0000000007740019000000000047004b00000000090000390000000109004039000001f80070009c0000048f0000213d00000001009001900000048f0000c13d000000400070043f0000000000840435000000240660003900000006078002100000000007670019000000000037004b000003e00000213d000000000008004b000005840000c13d0000008001200039000000000041043500000000010504330000000012010434000002290020009c000003e00000213d000000200020008c000003e00000413d0000000202000039000000000202041a0000022700200198000003000000c13d0000000001010433000000010010003a000003eb0000413d0000000102100039000000400100043d0000000000210435000001f00010009c000001f0010080410000004001100210000300000002001d00000001002001900000059e0000c13d0000000002000414000001f00020009c000001f002008041000000c002200210000000000112019f0000022f011001c70000800d0200003900000001030000390000023104000041000005a70000013d000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b000000ff0010008c000003e00000213d000000000200041a000001f3022001970000000003000411000000000023004b000003310000c13d000000ff0210018f000000a80110021000000221011001970000000303000039000000000403041a000001fa04400197000000000114019f000000000013041b000000800020043f0000000001000414000001f00010009c000001f001008041000000c00110021000000222011001c70000800d020000390000000103000039000002230400004107ba07b00000040f0000000100200190000003e00000613d0000000001000019000007bb0001042e000000240030008c000003e00000413d0000000002000416000000000002004b000003e00000c13d0000000401100370000000000101043b0000024400100198000003e00000c13d000002450010009c00000000020000390000000102006039000002460010009c00000001022061bf000000800020043f0000022401000041000007bb0001042e0000000001000416000000000001004b000003e00000c13d0000000201000039000000000101041a000001f301100197000000800010043f0000022401000041000007bb0001042e000000800010043f000000400b00043d0000002401b000390000000404b000390000000005000411000000000005004b0000033b0000c13d000001fc0200004100000000002b043500000020020000390000000000240435000000180200003900000000002104350000004401b00039000001fd020000410000000000210435000001f000b0009c000001f00b0080410000004001b00210000001fe011001c7000007bc00010430000001fc01000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000023a01000041000000c40010043f0000022001000041000007bc00010430000001f302200197000000000600041a000001f406600197000000000556019f000000000050041b0000000205000039000000000605041a000001f506600197000000000065041b0000000306000039000000000506041a000001f405500197000000000525019f000000000056041b000001f60500004100000000005b04350000000000340435000000010300008a00000000003104350000000001000414000000040020008c000003600000c13d0000000103000031000000200030008c000000200400003900000000040340190000038c0000013d000001fc01000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000023601000041000000c40010043f0000022001000041000007bc00010430000001f000b0009c000001f00300004100000000030b40190000004003300210000001f00010009c000001f001008041000000c001100210000000000131019f000001f7011001c700020000000b001d07ba07b00000040f000000020b00002900000000030100190000006003300270000001f003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000037c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000003780000c13d000000000006004b000003890000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000003b20000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001f80010009c0000048f0000213d00000001002001900000048f0000c13d000000400010043f000000200030008c000003e00000413d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000003e00000c13d00000003010000290000008000100190000003eb0000c13d000000a901100210000001f9011001970000000303000039000000000203041a000001fa02200197000000000112019f000000000013041b000000800100043d000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000001fb01000041000007bb0001042e0000001f0530018f000001f206300198000000400200043d0000000004620019000003bd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003b90000c13d000000000005004b000003ca0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001f00020009c000001f0020080410000004002200210000000000112019f000007bc000104300000000101000039000000000201041a000001f402200197000000000262019f000000000021041b0000000001000414000001f00010009c000001f001008041000000c0011002100000021d011001c70000800d0200003900000003030000390000021e0400004107ba07b00000040f0000000100200190000003000000c13d0000000001000019000007bc00010430000001ff01000041000000000012043500000004012000390000000000310435000001f00020009c000001f002008041000000400120021000000200011001c7000007bc000104300000023501000041000000000010043f0000001101000039000000040010043f0000020001000041000007bc000104300000000303000029000001f00030009c000001f0030080410000004003300210000001f00010009c000001f001008041000000c001100210000000000131019f00000200011001c707ba07b50000040f00000000030100190000006003300270000001f003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000003057000290000040b0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000004070000c13d000000000006004b000004180000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000004950000613d0000001f01400039000000600210018f0000000301200029000000000021004b00000000020000390000000102004039000001f80010009c0000048f0000213d00000001002001900000048f0000c13d000000400010043f000000200030008c000003e00000413d00000003010000290000000001010433000300000001001d000002380010009c000003e00000813d0000023d010000410000000000100443000000030100002900000004001004430000000001000414000001f00010009c000001f001008041000000c0011002100000023e011001c7000080020200003907ba07b50000040f0000000100200190000005290000613d000000000101043b000000000001004b000003e00000613d000000400200043d0000023f01000041000200000002001d000000000012043500000000010004140000000302000029000000040020008c000004550000613d0000000202000029000001f00020009c000001f0020080410000004002200210000001f00010009c000001f001008041000000c001100210000000000121019f00000240011001c7000000030200002907ba07b00000040f00000000030100190000006003300270000101f00030019d0000000100200190000005770000613d0000000201000029000001f80010009c0000048f0000213d0000000201000029000000400010043f0000000001000414000001f00010009c000001f001008041000000c0011002100000021d011001c70000800d020000390000000103000039000002410400004107ba07b00000040f0000000100200190000003e00000613d0000000201000039000000000101041a000001f301100197000000400200043d00000020032000390000000000130435000000200100003900000000001204350000022e0020009c0000048f0000213d0000004006200039000000400060043f0000006003200039000000010400003900000000004304350000000000160435000002320020009c0000048f0000213d0000008004200039000000400040043f0000022b0020009c0000048f0000213d000000a001200039000000400010043f0000000000040435000000400500043d0000022b0050009c0000048f0000213d0000000301000039000000000101041a000000a003500039000000400030043f000001f303100197000000600150003900000000003104350000004003500039000000000043043500000000042504360000000000640435000000400600043d000002330060009c000004a10000a13d0000023501000041000000000010043f0000004101000039000000040010043f0000020001000041000007bc000104300000001f0530018f000001f206300198000000400200043d0000000004620019000003bd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000049c0000c13d000003bd0000013d0000002002600039000000400020043f0000000000060435000000800250003900000000006204350000000106000039000000000606041a000000400900043d00000024079000390000004008000039000000000087043500000234070000410000000000790435000000a006600270000001f8066001970000000407900039000000000067043500000000050504330000004406900039000000a0070000390000000000760435000000e40890003900000000760504340000000000680435000300000009001d0000010405900039000000000006004b000004c50000613d00000000080000190000000009580019000000000a870019000000000a0a04330000000000a904350000002008800039000000000068004b000004be0000413d000000000765001900000000000704350000001f066000390000024706600197000000000765001900000003060000290000000005670049000000440550008a00000000040404330000006406600039000000000056043500000000650404340000000004570436000000000005004b000004dc0000613d000000000700001900000000084700190000000009760019000000000909043300000000009804350000002007700039000000000057004b000004d50000413d000000000654001900000000000604350000001f055000390000024705500197000000000654001900000003070000290000000004760049000000440540008a00000000040304330000008403700039000000000053043500000000050404330000000003560436000000000005004b000004f70000613d0000000006000019000000200440003900000000070404330000000087070434000001f30770019700000000077304360000000008080433000000000087043500000040033000390000000106600039000000000056004b000004ec0000413d0000000001010433000001f3011001970000000305000029000000a40450003900000000001404350000000001530049000000440110008a0000000002020433000000c404500039000000000014043500000000160204340000000005630436000000000006004b0000050d0000613d000000000200001900000000035200190000000004210019000000000404043300000000004304350000002002200039000000000062004b000005060000413d000200000005001d000100000006001d00000000016500190000000000010435000002280100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001f00010009c000001f001008041000000c0011002100000022a011001c7000080050200003907ba07b50000040f0000000100200190000005290000613d000000000201043b0000000001000414000001f302200197000000040020008c0000052a0000c13d0000000103000031000000200030008c000000200400003900000000040340190000055d0000013d000000000001042f00000001030000290000001f033000390000024703300197000000030500002900000000035300490000000203300029000001f00050009c000001f00400004100000000040540190000004004400210000001f00030009c000001f0030080410000006003300210000000000343019f000001f00010009c000001f001008041000000c001100210000000000131019f07ba07b00000040f00000000030100190000006003300270000001f003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000003057000290000054d0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000005490000c13d000000000006004b0000055a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000056b0000613d0000001f01400039000000600210018f0000000301200029000000000021004b00000000020000390000000102004039000001f80010009c0000048f0000213d00000001002001900000048f0000c13d000000400010043f000000200030008c000003000000813d000003e00000013d0000001f0530018f000001f206300198000000400200043d0000000004620019000003bd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005720000c13d000003bd0000013d000001f0033001970000001f0530018f000001f206300198000000400200043d0000000004620019000003bd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000057f0000c13d000003bd0000013d00000000080400190000000009630049000002290090009c000003e00000213d000000400090008c000003e00000413d000000400900043d0000022e0090009c0000048f0000213d000000400a9000390000004000a0043f000000000a61034f000000000a0a043b000001f300a0009c000003e00000213d0000002008800039000000000aa90436000000200b600039000000000bb1034f000000000b0b043b0000000000ba043500000000009804350000004006600039000000000076004b000005850000413d000002bc0000013d0000000002000414000001f00020009c000001f002008041000000c002200210000000000112019f0000022f011001c70000800d020000390000000103000039000002300400004107ba07b00000040f0000000100200190000003e00000613d000000030100002907ba06990000040f0000000201000039000000000101041a000001f301100197000000400200043d00000020032000390000000000130435000000200100003900000000001204350000022e0020009c0000048f0000213d0000004006200039000000400060043f0000006003200039000000030400002900000000004304350000000000160435000002320020009c0000048f0000213d0000008004200039000000400040043f0000022b0020009c0000048f0000213d000000a001200039000000400010043f0000000000040435000000400500043d0000022b0050009c0000048f0000213d0000000301000039000000000101041a000000a003500039000000400030043f000001f303100197000000600150003900000000003104350000004003500039000000000043043500000000042504360000000000640435000000400600043d000002330060009c0000048f0000213d0000002002600039000000400020043f0000000000060435000000800250003900000000006204350000000106000039000000000606041a000000400900043d00000024079000390000004008000039000000000087043500000234070000410000000000790435000000a006600270000001f8066001970000000407900039000000000067043500000000050504330000004406900039000000a0070000390000000000760435000000e40690003900000000750504340000000000560435000300000009001d0000010406900039000000000005004b000005fa0000613d00000000080000190000000009680019000000000a870019000000000a0a04330000000000a904350000002008800039000000000058004b000005f30000413d000000000756001900000000000704350000001f055000390000024705500197000000000756001900000003060000290000000005670049000000440550008a00000000040404330000006406600039000000000056043500000000650404340000000004570436000000000005004b000006110000613d000000000700001900000000084700190000000009760019000000000909043300000000009804350000002007700039000000000057004b0000060a0000413d000000000654001900000000000604350000001f055000390000024705500197000000000654001900000003070000290000000004760049000000440540008a00000000040304330000008403700039000000000053043500000000050404330000000003560436000000000005004b0000062c0000613d0000000006000019000000200440003900000000070404330000000087070434000001f30770019700000000077304360000000008080433000000000087043500000040033000390000000106600039000000000056004b000006210000413d0000000001010433000001f3011001970000000305000029000000a40450003900000000001404350000000001530049000000440110008a0000000002020433000000c404500039000000000014043500000000420204340000000001230436000000000002004b000006420000613d000000000300001900000000051300190000000006340019000000000606043300000000006504350000002003300039000000000023004b0000063b0000413d0000000003210019000000000003043500000000030004140000000004000411000000040040008c000005240000613d0000001f022000390000024702200197000000030400002900000000024200490000000001120019000001f00010009c000001f0010080410000006001100210000001f00040009c000001f00200004100000000020440190000004002200210000000000121019f000001f00030009c000001f003008041000000c002300210000000000112019f000000000200041107ba07b00000040f00000000030100190000006003300270000001f003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000003057000290000066b0000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000006670000c13d000000000006004b000006780000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00000001002001900000055d0000c13d0000001f0530018f000001f206300198000000400200043d0000000004620019000003bd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006820000c13d000003bd0000013d00000000430104340000000001320436000000000003004b000006930000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b0000068c0000413d000000000231001900000000000204350000001f0230003900000247022001970000000001210019000000000001042d00010000000000020000000302000039000000000202041a000000a802200270000000ff0220018f000000010320008a000000000013004b000007380000813d00000000102100d9000000010010008c000007380000213d0000000101000039000000000101041a000000400300043d0000023c020000410000000000230435000000a001100270000001f801100197000100000003001d00000004023000390000000000120435000002280100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000001f00010009c000001f001008041000000c0011002100000022a011001c7000080050200003907ba07b50000040f00000001002001900000073b0000613d000000000201043b0000000001000414000001f302200197000000040020008c000006c70000c13d0000000103000031000000200030008c00000020040000390000000004034019000000010b000029000006f20000013d0000000103000029000001f00030009c000001f0030080410000004003300210000001f00010009c000001f001008041000000c001100210000000000131019f00000200011001c707ba07b50000040f000000010b00002900000000030100190000006003300270000001f003300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000006e20000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000006de0000c13d000000000006004b000006ef0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000007420000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000001f80010009c0000073c0000213d00000001002001900000073c0000c13d000000400010043f000000200030008c000007390000413d00000000020b0433000002380020009c000007390000813d0000023d010000410000000000100443000100000002001d00000004002004430000000001000414000001f00010009c000001f001008041000000c0011002100000023e011001c7000080020200003907ba07b50000040f00000001002001900000073b0000613d000000000101043b000000000001004b0000000102000029000007390000613d000000400400043d0000023f0100004100000000001404350000000001000414000000040020008c0000072a0000613d000001f00040009c000001f00300004100000000030440190000004003300210000001f00010009c000001f001008041000000c001100210000000000131019f00000240011001c7000100000004001d07ba07b00000040f000000010400002900000000030100190000006003300270000101f00030019d0000000100200190000007600000613d000001f80040009c0000073c0000213d000000400040043f0000000001000414000001f00010009c000001f001008041000000c0011002100000021d011001c70000800d020000390000000103000039000002410400004107ba07b00000040f0000000100200190000007390000613d000000000001042d0000000001000019000007bc00010430000000000001042f0000023501000041000000000010043f0000004101000039000000040010043f0000020001000041000007bc000104300000001f0530018f000001f206300198000000400200043d00000000046200190000074d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007490000c13d000000000005004b0000075a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001f00020009c000001f0020080410000004002200210000000000121019f000007bc00010430000001f0033001970000001f0530018f000001f206300198000000400200043d00000000046200190000076c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007680000c13d000000000005004b000007790000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001f00020009c000001f0020080410000004002200210000000000112019f000007bc00010430000000000100041a000001f3011001970000000002000411000000000012004b000007850000c13d000000000001042d000000400100043d00000044021000390000023a030000410000000000320435000000240210003900000016030000390000000000320435000001fc020000410000000000210435000000040210003900000020030000390000000000320435000001f00010009c000001f0010080410000004001100210000001fe011001c7000007bc00010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b0000079a0000413d000001f00030009c000001f00300804100000060013002100000000002000414000001f00020009c000001f002008041000000c002200210000000000112019f00000248011001c7000000000205001907ba07b50000040f0000000100200190000007af0000613d000000000101043b000000000001042d000000000001042f000007b3002104210000000102000039000000000001042d0000000002000019000000000001042d000007b8002104230000000102000039000000000001042d0000000002000019000000000001042d000007ba00000432000007bb0001042e000007bc0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000fe000000000000000000000000000000000000000000ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000008000000100000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f00000000000000000000000000000000000000000000000000000064000000000000000000000000d7f73334000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000008f491cb900000000000000000000000000000000000000000000000000000000b5a1101000000000000000000000000000000000000000000000000000000000e6c725f400000000000000000000000000000000000000000000000000000000e6c725f500000000000000000000000000000000000000000000000000000000ef686d8e00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000b5a1101100000000000000000000000000000000000000000000000000000000bee518a400000000000000000000000000000000000000000000000000000000ca709a2500000000000000000000000000000000000000000000000000000000ae90de5400000000000000000000000000000000000000000000000000000000ae90de5500000000000000000000000000000000000000000000000000000000b0f479a100000000000000000000000000000000000000000000000000000000b187bd26000000000000000000000000000000000000000000000000000000008f491cba000000000000000000000000000000000000000000000000000000009d2aede5000000000000000000000000000000000000000000000000000000002b6e5d620000000000000000000000000000000000000000000000000000000079ba50960000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000085572ffb000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000002b6e5d6300000000000000000000000000000000000000000000000000000000665ed53700000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000001892b906000000000000000000000000000000000000000000000000000000002874d8bf0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000016c38b3c0200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c66000000000000000000000000000000000000000000000000000000006400000080000000000000000000000000000000000000ff00000000000000000000000000000000000000000002000000000000000000000000000000000000200000008000000000000000004768dbf8645b24c54f2887651545d24f748c0d0d1d4c689eb810fb19f0befcf3000000000000000000000000000000000000002000000080000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000ff0000000000000000000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0200000200000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffffbf020000000000000000000000000000000000002000000000000000000000000048257dc961b6f792c2b78a080dacfed693b660960a702de21cee364e20270e2f58b69f57828e6962d216502094c54f6562f3bf082ba758966c3454f9e37b1525000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffffdf96f4e9f9000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000001000000000000000000000000000000000000000005a3fef9935c9013a24c6193df2240d34fcf6b0ebf8786b85efe8401d696cdd94f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000001000000000000000000000000000000000000000000a8d87a3b000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000eff7cc48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000302777af5d26fab9dd5120c5f1307c65193ebc51daf33244ada4365fab10602c53656c6646756e64656450696e67506f6e6720312e322e3000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffc9a70000000000000000000000000000000000000000000000000000000085572ffb00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00200000200000000000000000000000000000000000000000000000000000000") diff --git a/core/gethwrappers/ccip/generated/token_admin_registry/token_admin_registry.go b/core/gethwrappers/ccip/generated/token_admin_registry/token_admin_registry.go index 7e81051aa3..18cae81970 100644 --- a/core/gethwrappers/ccip/generated/token_admin_registry/token_admin_registry.go +++ b/core/gethwrappers/ccip/generated/token_admin_registry/token_admin_registry.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package token_admin_registry import ( @@ -45,7 +42,7 @@ var TokenAdminRegistryABI = TokenAdminRegistryMetaData.ABI var TokenAdminRegistryBin = TokenAdminRegistryMetaData.Bin -func DeployTokenAdminRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *TokenAdminRegistry, error) { +func DeployTokenAdminRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *generated.Transaction, *TokenAdminRegistry, error) { parsed, err := TokenAdminRegistryMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -53,12 +50,16 @@ func DeployTokenAdminRegistry(auth *bind.TransactOpts, backend bind.ContractBack if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(TokenAdminRegistryZKBin), backend) + contractReturn := &TokenAdminRegistry{address: address, abi: *parsed, TokenAdminRegistryCaller: TokenAdminRegistryCaller{contract: contractBind}, TokenAdminRegistryTransactor: TokenAdminRegistryTransactor{contract: contractBind}, TokenAdminRegistryFilterer: TokenAdminRegistryFilterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(TokenAdminRegistryBin), backend) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &TokenAdminRegistry{address: address, abi: *parsed, TokenAdminRegistryCaller: TokenAdminRegistryCaller{contract: contract}, TokenAdminRegistryTransactor: TokenAdminRegistryTransactor{contract: contract}, TokenAdminRegistryFilterer: TokenAdminRegistryFilterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &TokenAdminRegistry{address: address, abi: *parsed, TokenAdminRegistryCaller: TokenAdminRegistryCaller{contract: contract}, TokenAdminRegistryTransactor: TokenAdminRegistryTransactor{contract: contract}, TokenAdminRegistryFilterer: TokenAdminRegistryFilterer{contract: contract}}, nil } type TokenAdminRegistry struct { @@ -1524,3 +1525,5 @@ type TokenAdminRegistryInterface interface { Address() common.Address } + +var TokenAdminRegistryZKBin = ("0x00030000000000020006000000000002000200000001035500000000030100190000006003300270000001360030019d0000008004000039000000400040043f0000000100200190000000470000c13d0000013602300197000000040020008c000004540000413d000000000301043b000000e0033002700000013c0030009c000000570000213d000001480030009c0000006d0000213d0000014e0030009c000000eb0000213d000001510030009c000001970000613d000001520030009c000004540000c13d000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000400000001001d000001530010009c000004540000213d0000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000201043b0000000101200039000000000301041a00000153043001970000000006000411000000000064004b000003020000c13d000000000402041a0000013704400197000000000464019f000000000042041b0000013702300197000000000021041b0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d02000039000000030300003900000176040000410000000405000029000001740000013d0000000001000416000000000001004b000004540000c13d0000000001000411000000000001004b000000640000c13d0000013901000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000013a01000041000000c40010043f0000013b01000041000004d4000104300000013d0030009c000000a40000213d000001430030009c000001390000213d000001460030009c000001c20000613d000001470030009c000004540000c13d0000000001000416000000000001004b000004540000c13d000000000100041a0000026c0000013d000000000200041a0000013702200197000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000013801000041000004d30001042e000001490030009c000001580000213d0000014c0030009c000001d60000613d0000014d0030009c000004540000c13d000000240020008c000004540000413d0000000003000416000000000003004b000004540000c13d0000000403100370000000000303043b0000015b0030009c000004540000213d0000002304300039000000000024004b000004540000813d0000000404300039000000000441034f000000000404043b000200000004001d0000015b0040009c000004540000213d000100240030003d000000020300002900000005033002100000000104300029000000000024004b000004540000213d0000003f043000390000016804400197000001690040009c000004560000213d0000008004400039000000400040043f0000000204000029000000800040043f0000001f0430018f000000000003004b0000009d0000613d000000000121034f000000a002300039000000a003000039000000001501043c0000000003530436000000000023004b000000990000c13d000000000004004b000000020000006b000003920000c13d000000400100043d000400000001001d00000080020000390000031e0000013d0000013e0030009c000001790000213d000001410030009c0000021c0000613d000001420030009c000004540000c13d000000440020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000402100370000000000202043b000400000002001d000001530020009c000004540000213d0000002401100370000000000101043b000300000001001d000001530010009c000004540000213d0000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a00000153011001970000000004000411000000000041004b000003290000c13d0000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b0000000101100039000000000201041a00000137022001970000000307000029000000000272019f000000000021041b0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d0200003900000004030000390000015d0400004100000004050000290000000006000411000001740000013d0000014f0030009c0000024c0000613d000001500030009c000004540000c13d000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000400000001001d000001530010009c000004540000213d000000000100041a00000153011001970000000002000411000000000012004b000002ee0000c13d0000000401000029000000000010043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a000000000001004b000001770000c13d0000000501000039000000000201041a0000016e0020009c000004560000813d0000000103200039000000000031041b0000016f0220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b0000000302000029000000000021041b000000400100043d00000004020000290000000000210435000001360010009c000001360100804100000040011002100000000002000414000001360020009c0000013602008041000000c002200210000000000112019f00000170011001c70000800d0200003900000001030000390000017104000041000001740000013d000001440030009c0000025c0000613d000001450030009c000004540000c13d000000440020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000402100370000000000202043b000001530020009c000004540000213d0000002401100370000000000101043b000400000001001d000001530010009c000004540000213d000000000020043f0000000201000039000000200010043f000000000100001904d204b70000040f000000000101041a0000015301100197000000040010006c00000000010000390000000101006039000000800010043f0000016301000041000004d30001042e0000014a0030009c000002700000613d0000014b0030009c000004540000c13d0000000001000416000000000001004b000004540000c13d0000000101000039000000000201041a00000153032001970000000006000411000000000036004b000002f80000c13d000000000300041a0000013704300197000000000464019f000000000040041b0000013702200197000000000021041b00000000010004140000015305300197000001360010009c0000013601008041000000c00110021000000154011001c70000800d020000390000000303000039000001660400004104d204c80000040f0000000100200190000004540000613d0000000001000019000004d30001042e0000013f0030009c000002bf0000613d000001400030009c000004540000c13d000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000601043b000001530060009c000004540000213d000000000100041a00000153011001970000000005000411000000000015004b000002ee0000c13d000000000056004b0000030a0000c13d0000013901000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000015601000041000000c40010043f0000013b01000041000004d400010430000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000400000001001d000001530010009c000004540000213d000000000100041a00000153011001970000000002000411000000000012004b000002ee0000c13d0000000401000029000000000010043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a000300000001001d000000000001004b000001770000613d0000000504000039000000000204041a000000000002004b000003b60000c13d0000017201000041000000000010043f0000001101000039000000040010043f0000015901000041000004d400010430000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000001530010009c000004540000213d04d204a30000040f000000000001004b0000000001000039000000010100c039000000400200043d0000000000120435000001360020009c0000013602008041000000400120021000000164011001c7000004d30001042e000000440020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000402100370000000000202043b000400000002001d000001530020009c000004540000213d0000002401100370000000000101043b000300000001001d000001530010009c000004540000213d0000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a00000153021001970000000001000411000000000012004b000003370000c13d0000000303000029000000000003004b000003d50000c13d0000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b0000000201100039000000000201041a000001370320019700000003033001af000000000031041b0000015306200197000000030060006c000001770000613d0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d0200003900000004030000390000016d0400004100000004050000290000000307000029000001740000013d000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000001530010009c000004540000213d000000e002000039000000400020043f000000800000043f000000a00000043f000000c00000043f000000000010043f0000000201000039000000200010043f000000000100001904d204b70000040f000400000001001d000000e00100003904d204880000040f0000000403000029000000000103041a0000015301100197000000e00010043f0000000102300039000000000202041a0000015302200197000001000020043f0000000202300039000000000202041a0000015302200197000001200020043f000000400200043d0000000001120436000001000300043d00000153033001970000000000310435000001200100043d000001530110019700000040032000390000000000130435000001360020009c0000013602008041000000400120021000000162011001c7000004d30001042e0000000001000416000000000001004b000004540000c13d000000c001000039000000400010043f0000001801000039000000800010043f0000017302000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f000001180000043f0000017401000041000004d30001042e000000240020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000401100370000000000101043b000001530010009c000004540000213d000000000010043f0000000201000039000000200010043f000000000100001904d204b70000040f0000000201100039000000000101041a0000015301100197000000800010043f0000016301000041000004d30001042e000000440020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000402100370000000000302043b0000015b0030009c000004540000213d0000002401100370000000000601043b0000015b0060009c000004540000213d00000000010004150000000304000039000000000504041a000000000235004b000003180000a13d0000015b0660019700000000083600190000000007000415000000060770008a0000000507700210000000000058004b0000028f0000a13d0000000007000415000000050770008a00000005077002100000015b0020009c0000000006020019000004560000213d00000005096002100000003f02900039000001670a200197000000400200043d00000000082a00190000000000a8004b000000000a000039000000010a0040390000015b0080009c000004560000213d0000000100a00190000004560000c13d000000400080043f00000000086204360000001f0a90018f000000000009004b000002a80000613d0000000009980019000000000b000031000000020bb00367000000000c08001900000000bd0b043c000000000cdc043600000000009c004b000002a40000c13d00000000000a004b0000000507700270000000000702001f000000000006004b000003190000613d00000000070000190000000009370019000000000059004b000004090000813d000000000040043f000000000a02043300000000007a004b000004090000a13d000000050a700210000000000a8a00190000015c0990009a000000000909041a000001530990019700000000009a04350000000107700039000000000067004b000002ae0000413d000003190000013d000000440020008c000004540000413d0000000002000416000000000002004b000004540000c13d0000000402100370000000000202043b000400000002001d000001530020009c000004540000213d0000002401100370000000000101043b000300000001001d000001530010009c000004540000213d0000000001000411000000000010043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a000000000001004b000002e40000c13d000000000100041a00000153011001970000000002000411000000000012004b000003e30000c13d000000030000006b000003450000c13d000000400100043d0000015e020000410000000000210435000001360010009c000001360100804100000040011002100000015f011001c7000004d4000104300000013901000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000017701000041000000c40010043f0000013b01000041000004d4000104300000013901000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000016501000041000000c40010043f0000013b01000041000004d400010430000000400100043d000000240210003900000004030000290000000000320435000001750200004100000000002104350000015302600197000003300000013d0000000101000039000000000201041a0000013702200197000000000262019f000000000021041b0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d0200003900000003030000390000015504000041000001740000013d0000006002000039000000000300041500000000013100490000000001000002000000400100043d000400000001001d04d204930000040f00000004020000290000000001210049000001360010009c00000136010080410000006001100210000001360020009c00000136020080410000004002200210000000000121019f000004d30001042e000000400100043d00000024021000390000000403000029000000000032043500000160020000410000000000210435000001530240019700000004031000390000000000230435000001360010009c0000013601008041000000400110021000000161011001c7000004d400010430000000400200043d00000024032000390000000404000029000000000043043500000160030000410000000000320435000001530110019700000004032000390000000000130435000001360020009c0000013602008041000000400120021000000161011001c7000004d4000104300000000401000029000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000201041a00000153002001980000045c0000c13d0000000101100039000000000201041a000001370220019700000003022001af000000000021041b0000000401000029000000000010043f0000000401000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000101041a000000000001004b000003860000c13d0000000301000039000000000201041a0000015b0020009c000004560000213d0000000103200039000000000031041b0000015c0220009a0000000403000029000000000032041b000000000101041a000200000001001d000000000030043f0000000401000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b0000000202000029000000000021041b0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d0200003900000004030000390000015d04000041000000040500002900000000060000190000000307000029000001740000013d0000000003000019000400000003001d0000000502300210000300000002001d00000001012000290000000201100367000000000101043b000001530010009c000004540000213d000000000010043f0000000201000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000800200043d0000000403000029000000000032004b000004090000a13d0000000302000029000000a002200039000000000101043b0000000201100039000000000101041a000001530110019700000000001204350000000103300039000000020030006c000003930000413d000000a00000013d0000000303000029000000010130008a000000000023004b000003e90000c13d000001780230009a000000000002041b000000000014041b0000000401000029000000000010043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b000000000001041b0000000001000414000001360010009c0000013601008041000000c00110021000000154011001c70000800d0200003900000002030000390000017904000041000000450000013d000000400b00043d0000016a0100004100000000001b04350000000401b00039000000040200002900000000002104350000000001000414000000040030008c0000040f0000c13d0000000103000031000000200030008c000000200400003900000000040340190000043c0000013d000000400100043d0000015802000041000000000021043500000004021000390000000003000411000004610000013d000000000012004b000004090000a13d000001780130009a000001780220009a000000000202041a000000000021041b000000000020043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004540000613d000000000101043b0000000302000029000000000021041b0000000501000039000000000101041a0000000003010019000000000001004b000004850000c13d0000017201000041000000000010043f0000003101000039000000040010043f0000015901000041000004d4000104300000017201000041000000000010043f0000003201000039000000040010043f0000015901000041000004d4000104300000013600b0009c000001360200004100000000020b40190000004002200210000001360010009c0000013601008041000000c001100210000000000121019f00000159011001c7000000000203001900020000000b001d04d204cd0000040f000000000301001900000060033002700000013603300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000020b00002900000002057000290000042c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000004280000c13d000000000006004b000004390000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0000000100200190000004670000613d0000001f01400039000000600210018f00000000040b00190000000001b20019000000000021004b000000000200003900000001020040390000015b0010009c000004560000213d0000000100200190000004560000c13d000000400010043f000000200030008c000004540000413d0000000002040433000000000002004b0000000003000039000000010300c039000000000032004b000004540000c13d000000000002004b000001fb0000c13d0000016c020000410000045e0000013d0000000001000019000004d4000104300000017201000041000000000010043f0000004101000039000000040010043f0000015901000041000004d400010430000000400100043d0000015a020000410000000000210435000000040210003900000004030000290000000000320435000001360010009c0000013601008041000000400110021000000159011001c7000004d4000104300000001f0530018f0000016b06300198000000400200043d0000000004620019000004720000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000046e0000c13d000000000005004b0000047f0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000001360020009c00000136020080410000004002200210000000000112019f000004d400010430000000010130008a0000000504000039000003ba0000013d0000017a0010009c0000048d0000813d0000006001100039000000400010043f000000000001042d0000017201000041000000000010043f0000004101000039000000040010043f0000015901000041000004d40001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b000004a20000613d000000000400001900000020022000390000000005020433000001530550019700000000015104360000000104400039000000000034004b0000049b0000413d000000000001042d000000000010043f0000000601000039000000200010043f0000000001000414000001360010009c0000013601008041000000c00110021000000157011001c7000080100200003904d204cd0000040f0000000100200190000004b50000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d0000000001000019000004d4000104300000000002000414000001360020009c0000013602008041000000c002200210000001360010009c00000136010080410000004001100210000000000121019f00000157011001c7000080100200003904d204cd0000040f0000000100200190000004c60000613d000000000101043b000000000001042d0000000001000019000004d400010430000004cb002104210000000102000039000000000001042d0000000002000019000000000001042d000004d0002104230000000102000039000000000001042d0000000002000019000000000001042d000004d200000432000004d30001042e000004d40001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f00000000000000000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000000000007d3f255100000000000000000000000000000000000000000000000000000000cb67e3b000000000000000000000000000000000000000000000000000000000e677ae3600000000000000000000000000000000000000000000000000000000e677ae3700000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000cb67e3b100000000000000000000000000000000000000000000000000000000ddadfa8e00000000000000000000000000000000000000000000000000000000bbe4f6da00000000000000000000000000000000000000000000000000000000bbe4f6db00000000000000000000000000000000000000000000000000000000c1af6e03000000000000000000000000000000000000000000000000000000007d3f2552000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000004e847fc60000000000000000000000000000000000000000000000000000000072d64a800000000000000000000000000000000000000000000000000000000072d64a810000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000004e847fc7000000000000000000000000000000000000000000000000000000005e63547a00000000000000000000000000000000000000000000000000000000181f5a7600000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000003dc457720000000000000000000000000000000000000000000000000000000010cbcf1800000000000000000000000000000000000000000000000000000000156194da000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c66000000000000000000020000000000000000000000000000000000004000000000000000000000000051ca1ec300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000045ed80e900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff3da8a5f161a6c3ff06a60736d0ed24d7963cc6a5c4fafd2fa1dae9bb908e07a5c54c3051ff16e63bb9203214432372aca006c589e3653619b577a3265675b716d92e233d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ed5d85b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000200000000000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000000000003fffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f240028e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0962b60e600000000000000000000000000000000000000000000000000000000754449ec3aff3bd528bfce43ae9319c4a381b67fcd1d20097b3b24dacaecc35d0000000000000000000000000000000000000000000000010000000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c25002000000000000000000000000000000000000200000000000000000000000003cabf004338366bfeaeb610ad827cb58d16b588017c509501f2c97c83caae7b24e487b7100000000000000000000000000000000000000000000000000000000546f6b656e41646d696e526567697374727920312e352e3000000000000000000000000000000000000000000000000000000060000000c000000000000000003edffe7500000000000000000000000000000000000000000000000000000000399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a74f6e6c792063616c6c61626c65206279206f776e657200000000000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c25193eaa26dcb9275e56bacb1d33fdbf402262da6f0f4baf2a6e2cd154b73f387f8000000000000000000000000000000000000000000000000ffffffffffffffa0") diff --git a/core/gethwrappers/ccip/generated/weth9/weth9.go b/core/gethwrappers/ccip/generated/weth9/weth9.go index 50d0aa23f7..2388f2e44e 100644 --- a/core/gethwrappers/ccip/generated/weth9/weth9.go +++ b/core/gethwrappers/ccip/generated/weth9/weth9.go @@ -1,6 +1,3 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - package weth9 import ( @@ -32,14 +29,14 @@ var ( var WETH9MetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610116565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610116565b506002805460ff1916601217905534801561006f57600080fd5b506101d5565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610111576000816000526020600020601f850160051c810160208610156100ee5750805b601f850160051c820191505b8181101561010d578281556001016100fa565b5050505b505050565b81516001600160401b0381111561012f5761012f610075565b6101438161013d845461008b565b846100c5565b602080601f83116001811461017857600084156101605750858301515b600019600386901b1c1916600185901b17855561010d565b600085815260208120601f198616915b828110156101a757888601518255948401946001909101908401610188565b50858210156101c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6108ad806101e46000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610695565b60405180910390f35b34801561010b57600080fd5b5061011f61011a36600461072b565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610755565b6103bd565b34801561017857600080fd5b506100cd610187366004610791565b6105c4565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d33660046107aa565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e961066a565b34801561020657600080fd5b5061011f61021536600461072b565b610677565b6100cd61068b565b34801561022e57600080fd5b5061013e61023d3660046107c5565b600460209081526000928352604080842090915290825290205481565b3360009081526003602052604081208054349290610279908490610827565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c29061083a565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee9061083a565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156103ef57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610455575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020546fffffffffffffffffffffffffffffffff14155b156104dd5773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561049757600080fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600460209081526040808320338452909152812080548492906104d790849061088d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061051290849061088d565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805484929061054c908490610827565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105b291815260200190565b60405180910390a35060019392505050565b336000908152600360205260409020548111156105e057600080fd5b33600090815260036020526040812080548392906105ff90849061088d565b9091555050604051339082156108fc029083906000818181858888f19350505050158015610631573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c29061083a565b60006106843384846103bd565b9392505050565b61069361025a565b565b60006020808352835180602085015260005b818110156106c3578581018301518582016040015282016106a7565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072657600080fd5b919050565b6000806040838503121561073e57600080fd5b61074783610702565b946020939093013593505050565b60008060006060848603121561076a57600080fd5b61077384610702565b925061078160208501610702565b9150604084013590509250925092565b6000602082840312156107a357600080fd5b5035919050565b6000602082840312156107bc57600080fd5b61068482610702565b600080604083850312156107d857600080fd5b6107e183610702565b91506107ef60208401610702565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76107f8565b600181811c9082168061084e57607f821691505b602082108103610887577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76107f856fea164736f6c6343000818000a", + Bin: "0x60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610116565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610116565b506002805460ff1916601217905534801561006f57600080fd5b506101d5565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610111576000816000526020600020601f850160051c810160208610156100ee5750805b601f850160051c820191505b8181101561010d578281556001016100fa565b5050505b505050565b81516001600160401b0381111561012f5761012f610075565b6101438161013d845461008b565b846100c5565b602080601f83116001811461017857600084156101605750858301515b600019600386901b1c1916600185901b17855561010d565b600085815260208120601f198616915b828110156101a757888601518255948401946001909101908401610188565b50858210156101c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610936806101e46000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f6919061071e565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107b4565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f6101673660046107de565b6103bd565b34801561017857600080fd5b506100cd61018736600461081a565b6105c4565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d3366004610833565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e96106f3565b34801561020657600080fd5b5061011f6102153660046107b4565b610700565b6100cd610714565b34801561022e57600080fd5b5061013e61023d36600461084e565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108b0565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108c3565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108c3565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156103ef57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610455575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020546fffffffffffffffffffffffffffffffff14155b156104dd5773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561049757600080fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600460209081526040808320338452909152812080548492906104d7908490610916565b90915550505b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604081208054849290610512908490610916565b909155505073ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805484929061054c9084906108b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105b291815260200190565b60405180910390a35060019392505050565b336000908152600360205260409020548111156105e057600080fd5b33600090815260036020526040812080548392906105ff908490610916565b9091555050604051600090339083908381818185875af1925050503d8060008114610646576040519150601f19603f3d011682016040523d82523d6000602084013e61064b565b606091505b50509050806106ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f57455448393a20455448207472616e73666572206661696c6564000000000000604482015260640160405180910390fd5b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a25050565b600180546102c2906108c3565b600061070d3384846103bd565b9392505050565b61071c61025a565b565b60006020808352835180602085015260005b8181101561074c57858101830151858201604001528201610730565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107af57600080fd5b919050565b600080604083850312156107c757600080fd5b6107d08361078b565b946020939093013593505050565b6000806000606084860312156107f357600080fd5b6107fc8461078b565b925061080a6020850161078b565b9150604084013590509250925092565b60006020828403121561082c57600080fd5b5035919050565b60006020828403121561084557600080fd5b61070d8261078b565b6000806040838503121561086157600080fd5b61086a8361078b565b91506108786020840161078b565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b7610881565b600181811c908216806108d757607f821691505b602082108103610910577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b761088156fea164736f6c6343000818000a", } var WETH9ABI = WETH9MetaData.ABI var WETH9Bin = WETH9MetaData.Bin -func DeployWETH9(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *WETH9, error) { +func DeployWETH9(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *generated.Transaction, *WETH9, error) { parsed, err := WETH9MetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -47,12 +44,16 @@ func DeployWETH9(auth *bind.TransactOpts, backend bind.ContractBackend) (common. if parsed == nil { return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - + if generated.IsZKSync(backend) { + address, ethTx, contractBind, _ := generated.DeployContract(auth, parsed, common.FromHex(WETH9ZKBin), backend) + contractReturn := &WETH9{address: address, abi: *parsed, WETH9Caller: WETH9Caller{contract: contractBind}, WETH9Transactor: WETH9Transactor{contract: contractBind}, WETH9Filterer: WETH9Filterer{contract: contractBind}} + return address, ethTx, contractReturn, err + } address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(WETH9Bin), backend) if err != nil { return common.Address{}, nil, nil, err } - return address, tx, &WETH9{address: address, abi: *parsed, WETH9Caller: WETH9Caller{contract: contract}, WETH9Transactor: WETH9Transactor{contract: contract}, WETH9Filterer: WETH9Filterer{contract: contract}}, nil + return address, &generated.Transaction{Transaction: tx, HashZks: tx.Hash()}, &WETH9{address: address, abi: *parsed, WETH9Caller: WETH9Caller{contract: contract}, WETH9Transactor: WETH9Transactor{contract: contract}, WETH9Filterer: WETH9Filterer{contract: contract}}, nil } type WETH9 struct { @@ -994,3 +995,5 @@ type WETH9Interface interface { Address() common.Address } + +var WETH9ZKBin = ("0x0002000000000002000200000000000200000000030100190000006003300270000000da0330019700010000003103550000008004000039000000400040043f0000000100200190000000300000c13d000000040030008c000000670000413d000000000201043b000000e002200270000000e10020009c000000910000a13d000000e20020009c000000bb0000213d000000e60020009c000001a70000613d000000e70020009c000001710000613d000000e80020009c000001b90000c13d0000000001000416000000000001004b000001b90000c13d0000000103000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000610000c13d000000800010043f000000000005004b000001d50000c13d000000fd01200197000000a00010043f000000000004004b000000c001000039000000a0010060390000022d0000013d0000000001000416000000000001004b000001b90000c13d000000000100041a000000010210019000000001031002700000007f0330618f0000001f0030008c00000000010000390000000101002039000000000012004b000000610000c13d000000200030008c000000540000413d000200000003001d000000000000043f0000000001000414000000da0010009c000000da01008041000000c001100210000000db011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b00000002020000290000001f0220003900000005022002700000000002210019000000000021004b000000540000813d000000000001041b0000000101100039000000000021004b000000500000413d000000dc01000041000000000010041b0000000103000039000000000103041a000000010010019000000001041002700000007f0440618f0000001f0040008c00000000020000390000000102002039000000000121013f0000000100100190000001240000613d000000f101000041000000000010043f0000002201000039000000040010043f000000f2010000410000036700010430000000000003004b000001b90000c13d0000000001000411000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b000000000301041a0000000002000416000000000023001a000002540000413d0000000003230019000000000031041b000000400100043d0000000000210435000000da0010009c000000da0100804100000040011002100000000002000414000000da0020009c000000da02008041000000c002200210000000000112019f000000db011001c70000800d020000390000000203000039000000e00400004100000000050004110365035b0000040f0000000100200190000001b90000613d0000000001000019000003660001042e000000e90020009c000000db0000a13d000000ea0020009c0000019f0000613d000000eb0020009c000001600000613d000000ec0020009c000001b90000c13d000000240030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000401100370000000000101043b000200000001001d0000000001000411000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000002030000290000000100200190000001b90000613d000000000101043b000000000201041a000000000232004b000001b90000413d000000000021041b00000000010004140000000002000411000000040020008c000001da0000c13d00000001020000390000000001000031000001e90000013d000000e30020009c000001b00000613d000000e40020009c000001840000613d000000e50020009c000001b90000c13d000000440030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000402100370000000000202043b000000ef0020009c000001b90000213d0000002401100370000000000101043b000000ef0010009c000001b90000213d000000000020043f000200000001001d0000000401000039000000200010043f00000040020000390000000001000019036503370000040f0000000202000029000000000020043f000000200010043f000000000100001900000040020000390000017f0000013d000000ed0020009c000001490000613d000000ee0020009c000001b90000c13d000000440030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000402100370000000000202043b000200000002001d000000ef0020009c000001b90000213d0000002401100370000000000101043b000100000001001d0000000001000411000000000010043f0000000401000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b0000000102000029000000000021041b000000400100043d0000000000210435000000da0010009c000000da0100804100000040011002100000000002000414000000da0020009c000000da02008041000000c002200210000000000112019f000000db011001c70000800d020000390000000303000039000000fb04000041000000000500041100000002060000290365035b0000040f0000000100200190000001b90000613d000000400100043d00000001020000390000000000210435000000da0010009c000000da010080410000004001100210000000f3011001c7000003660001042e0000001f0040008c0000013d0000a13d000200000004001d000000000030043f0000000001000414000000da0010009c000000da01008041000000c001100210000000db011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b00000002020000290000001f0220003900000005022002700000000002210019000000000021004b00000001030000390000013d0000813d000000000001041b0000000101100039000000000021004b000001390000413d000000dd01000041000000000013041b0000000201000039000000000201041a000000fd0220019700000012022001bf000000000021041b000000200100003900000100001004430000012000000443000000de01000041000003660001042e0000000001000416000000000001004b000001b90000c13d000000000200041a000000010420019000000001012002700000007f0310018f00000000010360190000001f0010008c00000000050000390000000105002039000000000552013f0000000100500190000000610000c13d000000800010043f000000000004004b000001c70000c13d000000fd01200197000000a00010043f000000000003004b000000c001000039000000a0010060390000022d0000013d000000640030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000402100370000000000402043b000000ef0040009c000001b90000213d0000002402100370000000000202043b000000ef0020009c000001b90000213d0000004401100370000000000301043b0000000001040019000001be0000013d000000240030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000401100370000000000101043b000000ef0010009c000001b90000213d000000000010043f0000000301000039000000200010043f00000040020000390000000001000019036503370000040f000000000101041a000000800010043f000000f001000041000003660001042e0000000001000411000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f0000000100200190000001b90000613d000000000101043b000000000301041a0000000002000416000000000023001a000002540000413d0000000003230019000000000031041b000000400100043d0000000000210435000000da0010009c000000da0100804100000040011002100000000002000414000000830000013d0000000001000416000000000001004b000001b90000c13d00000000010004100365034c0000040f000000800010043f000000f001000041000003660001042e0000000001000416000000000001004b000001b90000c13d0000000201000039000000000101041a000000ff0110018f000000800010043f000000f001000041000003660001042e000000440030008c000001b90000413d0000000002000416000000000002004b000001b90000c13d0000000402100370000000000202043b000000ef0020009c000001bb0000a13d000000000100001900000367000104300000002401100370000000000301043b0000000001000411036502810000040f0000000101000039000000400200043d0000000000120435000000da0020009c000000da020080410000004001200210000000f3011001c7000003660001042e000000000000043f000000020020008c000001d80000413d000000fc0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000001cc0000413d0000022c0000013d000000000030043f000000020020008c000002220000813d000000a0010000390000022d0000013d000000da0010009c000000da01008041000000c001100210000000000003004b000001e30000613d000000f5011001c70000800902000039000000000400041100000000050000190365035b0000040f000000020300002900010000000103550000006001100270000000da0010019d000000da01100197000000000001004b000002110000613d0000001f04100039000000fe044001970000003f04400039000000fe05400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000000f60050009c0000024e0000213d00000001006001900000024e0000c13d000000400050043f0000000006140436000000fe091001980000001f0410018f00000000019600190000000105000367000002040000613d000000000705034f000000007807043c0000000006860436000000000016004b000002000000c13d000000000004004b000002110000613d000000000695034f0000000304400210000000000501043300000000054501cf000000000545022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000454019f0000000000410435000000400100043d00000001002001900000023e0000613d0000000000310435000000da0010009c000000da0100804100000040011002100000000002000414000000da0020009c000000da02008041000000c002200210000000000112019f000000db011001c70000800d020000390000000203000039000000fa040000410000008b0000013d000000f40200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000002240000413d000000c001300039000000800210008a00000080010000390365025a0000040f000000400100043d000200000001001d00000080020000390365026c0000040f00000002020000290000000001210049000000da0010009c000000da010080410000006001100210000000da0020009c000000da020080410000004002200210000000000121019f000003660001042e0000004402100039000000f703000041000000000032043500000024021000390000001a030000390000000000320435000000f8020000410000000000210435000000040210003900000020030000390000000000320435000000da0010009c000000da010080410000004001100210000000f9011001c70000036700010430000000f101000041000000000010043f0000004101000039000000040010043f000000f2010000410000036700010430000000f101000041000000000010043f0000001101000039000000040010043f000000f20100004100000367000104300000001f02200039000000fe022001970000000001120019000000000021004b00000000020000390000000102004039000000f60010009c000002660000213d0000000100200190000002660000c13d000000400010043f000000000001042d000000f101000041000000000010043f0000004101000039000000040010043f000000f201000041000003670001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b0000027b0000613d000000000400001900000000054100190000000006430019000000000606043300000000006504350000002004400039000000000024004b000002740000413d000000000321001900000000000304350000001f02200039000000fe022001970000000001210019000000000001042d0003000000000002000200000003001d000100000002001d000000ef01100197000300000001001d000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000101041a000000020010006c0000032e0000413d0000000002000411000000030020006b000002f20000613d0000000401000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b0000000002000411000000000020043f000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000101041a000000ff0010009c000002f20000613d0000000301000029000000000010043f0000000401000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b0000000002000411000000000020043f000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000101041a000000020010006c0000032e0000413d0000000301000029000000000010043f0000000401000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b0000000002000411000000000020043f000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000201041a000000020220006c000003300000413d000000000021041b0000000301000029000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000201041a000000020220006c000003300000413d000000000021041b0000000101000029000000ef01100197000100000001001d000000000010043f0000000301000039000000200010043f0000000001000414000000da0010009c000000da01008041000000c001100210000000df011001c70000801002000039036503600000040f00000001002001900000032e0000613d000000000101043b000000000201041a0000000203000029000000000032001a000003300000413d0000000002320019000000000021041b000000400100043d0000000000310435000000da0010009c000000da0100804100000040011002100000000002000414000000da0020009c000000da02008041000000c002200210000000000112019f000000db011001c70000800d0200003900000003030000390000010004000041000000030500002900000001060000290365035b0000040f00000001002001900000032e0000613d000000000001042d00000000010000190000036700010430000000f101000041000000000010043f0000001101000039000000040010043f000000f2010000410000036700010430000000000001042f000000da0010009c000000da010080410000004001100210000000da0020009c000000da020080410000006002200210000000000112019f0000000002000414000000da0020009c000000da02008041000000c002200210000000000112019f000000f5011001c70000801002000039036503600000040f00000001002001900000034a0000613d000000000101043b000000000001042d000000000100001900000367000104300000010102000041000000000020044300000004001004430000000001000414000000da0010009c000000da01008041000000c00110021000000102011001c70000800a02000039036503600000040f00000001002001900000035a0000613d000000000101043b000000000001042d000000000001042f0000035e002104210000000102000039000000000001042d0000000002000019000000000001042d00000363002104230000000102000039000000000001042d0000000002000019000000000001042d0000036500000432000003660001042e000003670001043000000000000000000000000000000000000000000000000000000000ffffffff0200000000000000000000000000000000000020000000000000000000000000577261707065642045746865720000000000000000000000000000000000001a574554480000000000000000000000000000000000000000000000000000000800000002000000000000000000000000000000400000010000000000000000000200000000000000000000000000000000000040000000000000000000000000e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000a9059cba00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000d0e30db000000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000002e1a7d4d0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000008000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff57455448393a20455448207472616e73666572206661696c656400000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000007fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000ffffffffffffffffffffffffffffffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390200000200000000000000000000000000000024000000000000000000000000") diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 13c88b9c51..37073b24dd 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ -GETH_VERSION: 1.13.8 +GETH_VERSION: 1.14.3 burn_from_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnFromMintTokenPool/BurnFromMintTokenPool.abi ../../../contracts/solc/v0.8.24/BurnFromMintTokenPool/BurnFromMintTokenPool.bin 1e60c28ad796a220a38043b369dec8d9bffe23e1c7d9895760e30672872afd06 burn_mint_token_pool: ../../../contracts/solc/v0.8.24/BurnMintTokenPool/BurnMintTokenPool.abi ../../../contracts/solc/v0.8.24/BurnMintTokenPool/BurnMintTokenPool.bin 3e8e3358f0bb520af069a7d37ea625940a88461a54418b1d5925eabced8c74df burn_mint_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/BurnMintTokenPoolAndProxy/BurnMintTokenPoolAndProxy.bin 717c079d5d13300cf3c3ee871c6e5bf9af904411f204fb081a9f3b263cca1391 @@ -11,6 +11,7 @@ commit_store_helper: ../../../contracts/solc/v0.8.24/CommitStoreHelper/CommitSto ether_sender_receiver: ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.abi ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.bin 09510a3f773f108a3c231e8d202835c845ded862d071ec54c4f89c12d868b8de evm_2_evm_offramp: ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.bin b0d77babbe635cd6ba04c2af049badc9e9d28a4b6ed6bb75f830ad902a618beb evm_2_evm_onramp: ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.bin 5c02c2b167946b3467636ff2bb58594cb4652fc63d8bdfee2488ed562e2a3e50 +link_token: ../../../contracts/solc/v0.8.24/LinkToken/LinkToken.abi ../../../contracts/solc/v0.8.24/LinkToken/LinkToken.bin fc4733673cc66482f6bfde56fb87983885a5b287513b0870b87e0b4d3bbb358f lock_release_token_pool: ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.abi ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.bin e6a8ec9e8faccb1da7d90e0f702ed72975964f97dc3222b54cfcca0a0ba3fea2 lock_release_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/LockReleaseTokenPoolAndProxy/LockReleaseTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/LockReleaseTokenPoolAndProxy/LockReleaseTokenPoolAndProxy.bin e632b08be0fbd1d013e8b3a9d75293d0d532b83071c531ff2be1deec1fa48ec1 maybe_revert_message_receiver: ../../../contracts/solc/v0.8.24/MaybeRevertMessageReceiver/MaybeRevertMessageReceiver.abi ../../../contracts/solc/v0.8.24/MaybeRevertMessageReceiver/MaybeRevertMessageReceiver.bin d73956c26232ebcc4a5444429fa99cbefed960e323be9b5a24925885c2e477d5 @@ -26,6 +27,7 @@ offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/ onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 123e949bc9607289382534c4432ecebe5b1da5ca92c1c6c8cc6b9be56c3352c6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin 4e51d70bdb6d951041518a3d7fd3b33ba8d3954bcc3d078318055b833b880324 price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin 8f4bdaa4d8239429ae4e047ab06d445bad42234a05bb7c99ba6141bd811e1722 +price_registry_1_2_0: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin 8f4bdaa4d8239429ae4e047ab06d445bad42234a05bb7c99ba6141bd811e1722 registry_module_owner_custom: ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.abi ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.bin 75be86323c227917a9bbc3f799d7ed02f92db546653a36db30ed0ebe64461353 report_codec: ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.abi ../../../contracts/solc/v0.8.24/ReportCodec/ReportCodec.bin 20292ddaba15096fe8060567cf56cda673b947df27241d0c49d2debc838feb24 rmn_contract: ../../../contracts/solc/v0.8.24/RMN/RMN.abi ../../../contracts/solc/v0.8.24/RMN/RMN.bin 8b45b0fb08631c6b582fd3c0b4052a79cc2b4e091e6286af1ab131bef63661f9 @@ -35,4 +37,4 @@ self_funded_ping_pong: ../../../contracts/solc/v0.8.24/SelfFundedPingPong/SelfFu token_admin_registry: ../../../contracts/solc/v0.8.24/TokenAdminRegistry/TokenAdminRegistry.abi ../../../contracts/solc/v0.8.24/TokenAdminRegistry/TokenAdminRegistry.bin 942be7d1681ac102e0615bee13f76838ebb0b261697cf1270d2bf82c12e57aeb token_pool: ../../../contracts/solc/v0.8.24/TokenPool/TokenPool.abi ../../../contracts/solc/v0.8.24/TokenPool/TokenPool.bin 7c01fd89f5153baa4d7409d14beabb3f861abfbf8880d3c6d06802cc398570f9 usdc_token_pool: ../../../contracts/solc/v0.8.24/USDCTokenPool/USDCTokenPool.abi ../../../contracts/solc/v0.8.24/USDCTokenPool/USDCTokenPool.bin 8e7eae4c7277ce4a0092cca815c046cc49094028c23d2d113de9335fa4358030 -weth9: ../../../contracts/solc/v0.8.24/WETH9/WETH9.abi ../../../contracts/solc/v0.8.24/WETH9/WETH9.bin 2970d79a0ca6dd6279cde130de45e56c8790ed695eae477fb5ba4c1bb75b720d +weth9: ../../../contracts/solc/v0.8.24/WETH9/WETH9.abi ../../../contracts/solc/v0.8.24/WETH9/WETH9.bin 1ae9a8f90cd1e86a45b5dda4848b29137bc40008c1ca8fddc9dd180302a42e94 diff --git a/core/gethwrappers/ccip/go_gen_zk.go b/core/gethwrappers/ccip/go_gen_zk.go new file mode 100644 index 0000000000..9f60d5e68b --- /dev/null +++ b/core/gethwrappers/ccip/go_gen_zk.go @@ -0,0 +1,15 @@ +package ccip + +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.bin EVM2EVMOffRamp evm_2_evm_offramp ../../../contracts/zksolc/v1.5.3/EVM2EVMOffRamp/EVM2EVMOffRamp.sol/EVM2EVMOffRamp.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.bin EVM2EVMOnRamp evm_2_evm_onramp ../../../contracts/zksolc/v1.5.3/EVM2EVMOnRamp/EVM2EVMOnRamp.sol/EVM2EVMOnRamp.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/SelfFundedPingPong/SelfFundedPingPong.abi ../../../contracts/solc/v0.8.24/SelfFundedPingPong/SelfFundedPingPong.bin SelfFundedPingPong self_funded_ping_pong ../../../contracts/zksolc/v1.5.3/SelfFundedPingPong/SelfFundedPingPong.sol/SelfFundedPingPong.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.abi ../../../contracts/solc/v0.8.24/CommitStore/CommitStore.bin CommitStore commit_store ../../../contracts/zksolc/v1.5.3/CommitStore/CommitStore.sol/CommitStore.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/Router/Router.abi ../../../contracts/solc/v0.8.24/Router/Router.bin Router router ../../../contracts/zksolc/v1.5.3/Router/Router.sol/Router.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin PriceRegistry price_registry_1_2_0 ../../../contracts/zksolc/v1.5.3/PriceRegistry/PriceRegistry.sol/PriceRegistry.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/RMN/RMN.abi ../../../contracts/solc/v0.8.24/RMN/RMN.bin RMNContract rmn_contract ../../../contracts/zksolc/v1.5.3/RMN/RMN.sol/RMN.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/ARMProxy/ARMProxy.abi ../../../contracts/solc/v0.8.24/ARMProxy/ARMProxy.bin RMNProxyContract rmn_proxy_contract ../../../contracts/zksolc/v1.5.3/ARMProxy/ARMProxy.sol/ARMProxy.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/TokenAdminRegistry/TokenAdminRegistry.abi ../../../contracts/solc/v0.8.24/TokenAdminRegistry/TokenAdminRegistry.bin TokenAdminRegistry token_admin_registry ../../../contracts/zksolc/v1.5.3/TokenAdminRegistry/TokenAdminRegistry.sol/TokenAdminRegistry.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.abi ../../../contracts/solc/v0.8.24/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.bin RegistryModuleOwnerCustom registry_module_owner_custom ../../../contracts/zksolc/v1.5.3/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.sol/RegistryModuleOwnerCustom.zbin +// go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.abi ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.bin LockReleaseTokenPool lock_release_token_pool ../../../contracts/zksolc/v1.5.3/LockReleaseTokenPool/LockReleaseTokenPool.sol/LockReleaseTokenPool.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/WETH9/WETH9.abi ../../../contracts/solc/v0.8.24/WETH9/WETH9.bin WETH9 weth9 ../../../contracts/zksolc/v1.5.3/WETH9/WETH9.sol/WETH9.zbin +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.24/LinkToken/LinkToken.abi ../../../contracts/solc/v0.8.24/LinkToken/LinkToken.bin LinkToken link_token ../../../contracts/zksolc/v1.5.3/LinkToken/LinkToken.sol/LinkToken.zbin diff --git a/core/gethwrappers/generated/generated.go b/core/gethwrappers/generated/generated.go index 8478c9ef3a..1334bb8576 100644 --- a/core/gethwrappers/generated/generated.go +++ b/core/gethwrappers/generated/generated.go @@ -1,10 +1,108 @@ package generated import ( + "context" + "fmt" + + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/ethclient" + zkSyncAccounts "github.com/zksync-sdk/zksync2-go/accounts" + zkSyncClient "github.com/zksync-sdk/zksync2-go/clients" + zktypes "github.com/zksync-sdk/zksync2-go/types" ) // AbigenLog is an interface for abigen generated log topics type AbigenLog interface { Topic() common.Hash } + +func IsZKSync(backend bind.ContractBackend) bool { + client, ok := backend.(*ethclient.Client) + if !ok { + return false + } + zkclient := zkSyncClient.NewClient(client.Client()) + // we dont care about the address + // we only care if the method is available + _, err := zkclient.MainContractAddress(context.Background()) + return err == nil +} + +type Transaction struct { + *types.Transaction + HashZks common.Hash +} + +func (tx *Transaction) Hash() common.Hash { + return tx.HashZks +} + +func ConvertZkTxToEthTx(resp zktypes.TransactionResponse) *Transaction { + // make this legacy fee ? + dtx := &types.DynamicFeeTx{ + ChainID: resp.ChainID.ToInt(), + Nonce: uint64(resp.Nonce), + GasTipCap: resp.MaxPriorityFeePerGas.ToInt(), + GasFeeCap: resp.MaxFeePerGas.ToInt(), + To: &resp.To, + Value: resp.Value.ToInt(), + Data: resp.Data, + Gas: uint64(resp.Gas), + } + + tx := types.NewTx(dtx) + customTransaction := Transaction{Transaction: tx, HashZks: resp.Hash} + return &customTransaction +} + +func getZKAuthFromEthAuth(auth *bind.TransactOpts) *zkSyncAccounts.TransactOpts { + return &zkSyncAccounts.TransactOpts{ + Nonce: auth.Nonce, + Value: auth.Value, + GasPrice: auth.GasPrice, + GasFeeCap: auth.GasFeeCap, + GasTipCap: auth.GasTipCap, + GasLimit: auth.GasLimit, + } +} + +func DeployContract(auth *bind.TransactOpts, contractAbi *abi.ABI, contractBytes []byte, backend bind.ContractBackend, params ...interface{}) (common.Address, *Transaction, *bind.BoundContract, error) { + client, ok := backend.(*ethclient.Client) + if !ok { + return common.Address{}, nil, nil, fmt.Errorf("backend is not an *ethclient.Client") + } + zkclient := zkSyncClient.NewClient(client.Client()) + + walletValue := auth.Context.Value("wallet") + wallet, ok := walletValue.(*zkSyncAccounts.Wallet) + if !ok || wallet == nil { + return common.Address{}, nil, nil, fmt.Errorf("wallet not found in context or invalid type") + } + + constructor, _ := contractAbi.Pack("", params...) + + hash, err := wallet.DeployWithCreate(getZKAuthFromEthAuth(auth), zkSyncAccounts.CreateTransaction{ + Bytecode: contractBytes, + Calldata: constructor, + }) + if err != nil { + return common.Address{}, nil, nil, fmt.Errorf("Error deploying contract: %w", err) + } + + receipt, err := zkclient.WaitMined(context.Background(), hash) + if err != nil { + return common.Address{}, nil, nil, fmt.Errorf("Error waiting for contract deployment: %w", err) + } + + tx, _, err := zkclient.TransactionByHash(context.Background(), hash) + if err != nil { + return common.Address{}, nil, nil, fmt.Errorf("Error getting transaction by hash: %w", err) + } + + address := receipt.ContractAddress + contractBind := bind.NewBoundContract(address, *contractAbi, backend, backend, backend) + return address, ConvertZkTxToEthTx(*tx), contractBind, nil +} diff --git a/core/gethwrappers/generation/generate/wrap.go b/core/gethwrappers/generation/generate/wrap.go index 967e703d39..6d286c23e0 100644 --- a/core/gethwrappers/generation/generate/wrap.go +++ b/core/gethwrappers/generation/generate/wrap.go @@ -15,6 +15,12 @@ func main() { binPath := os.Args[2] className := os.Args[3] pkgName := os.Args[4] + var zkBinPath string + if len(os.Args) > 5 { // Check if the optional argument is provided + zkBinPath = os.Args[5] + } else { + zkBinPath = "" // Or set to a default value if needed + } fmt.Println("Generating", pkgName, "contract wrapper") cwd, err := os.Getwd() // gethwrappers directory @@ -28,7 +34,7 @@ func main() { outPath := filepath.Join(outDir, pkgName+".go") gethwrappers2.Abigen(gethwrappers2.AbigenArgs{ - Bin: binPath, ABI: abiPath, Out: outPath, Type: className, Pkg: pkgName, + Bin: binPath, ABI: abiPath, Out: outPath, Type: className, Pkg: pkgName, ZkBinPath: zkBinPath, }) // Build succeeded, so update the versions db with the new contract data diff --git a/go.mod b/go.mod index 683793cb53..2c72c34a74 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 github.com/dominikbraun/graph v0.23.0 github.com/esote/minmaxheap v1.0.0 - github.com/ethereum/go-ethereum v1.13.8 + github.com/ethereum/go-ethereum v1.14.3 github.com/fatih/color v1.16.0 github.com/fxamacker/cbor/v2 v2.5.0 github.com/gagliardetto/solana-go v1.8.4 @@ -96,6 +96,7 @@ require ( github.com/unrolled/secure v1.13.0 github.com/urfave/cli v1.22.14 github.com/wk8/go-ordered-map/v2 v2.1.8 + github.com/zksync-sdk/zksync2-go v1.0.0 go.dedis.ch/fixbuf v1.0.3 go.dedis.ch/kyber/v3 v3.1.0 go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0 @@ -151,8 +152,11 @@ require ( github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect - github.com/bits-and-blooms/bitset v1.10.0 // indirect + github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect + github.com/btcsuite/btcd v0.24.0 // indirect + github.com/btcsuite/btcd/btcutil v1.1.5 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect github.com/bytedance/sonic v1.10.1 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect @@ -160,9 +164,9 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.0 // indirect - github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 // indirect + github.com/cockroachdb/pebble v1.1.0 // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cometbft/cometbft-db v0.8.0 // indirect @@ -179,7 +183,7 @@ require ( github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect - github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect + github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -190,7 +194,8 @@ require ( github.com/docker/distribution v2.8.2+incompatible // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.7.0 // indirect - github.com/ethereum/c-kzg-4844 v0.4.0 // indirect + github.com/ethereum/c-kzg-4844 v1.0.0 // indirect + github.com/fjl/memsize v0.0.2 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/gagliardetto/binary v0.7.7 // indirect @@ -206,7 +211,7 @@ require ( github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.15.5 // indirect @@ -215,6 +220,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/golang/glog v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -234,13 +240,14 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect - github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect + github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/uint256 v1.2.4 // indirect github.com/huandu/skiplist v1.2.0 // indirect @@ -274,6 +281,7 @@ require ( github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mitchellh/pointerstructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -290,6 +298,7 @@ require ( github.com/prometheus/procfs v0.12.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.4.4 // indirect + github.com/rs/cors v1.8.3 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect @@ -300,6 +309,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.18.2 // indirect github.com/status-im/keycard-go v0.2.0 // indirect + github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863 // indirect github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect @@ -315,8 +325,10 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 // indirect + github.com/urfave/cli/v2 v2.25.7 // indirect github.com/valyala/fastjson v1.4.1 // indirect github.com/x448/float16 v0.8.4 // indirect + github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect diff --git a/go.sum b/go.sum index 5ad6772ecd..10af5fe2fb 100644 --- a/go.sum +++ b/go.sum @@ -104,6 +104,7 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -144,18 +145,37 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= -github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= +github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= -github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= +github.com/btcsuite/btcd v0.24.0 h1:gL3uHE/IaFj6fcZSu03SvqPMSx7s/dPzfpG/atRwWdo= +github.com/btcsuite/btcd v0.24.0/go.mod h1:K4IDc1593s8jKXIF7yS7yCTSxrknB9z0STzc2j6XgE4= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= -github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.3 h1:SDlJ7bAm4ewvrmZtR0DaiYbQGdKPeaaIm7bM+qRhFeU= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.3/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8= +github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= @@ -199,12 +219,12 @@ github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b80 github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= -github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= -github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= +github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= +github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= @@ -263,8 +283,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0q github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= -github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= -github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI= +github.com/crate-crypto/go-kzg-4844 v1.0.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= @@ -274,16 +294,20 @@ github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuA github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= @@ -319,10 +343,10 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/esote/minmaxheap v1.0.0 h1:rgA7StnXXpZG6qlM0S7pUmEv1KpWe32rYT4x8J8ntaA= github.com/esote/minmaxheap v1.0.0/go.mod h1:Ln8+i7fS1k3PLgZI2JAo0iA1as95QnIYiGCrqSJ5FZk= -github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= -github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.13.8 h1:1od+thJel3tM52ZUNQwvpYOeRHlbkVFZ5S8fhi0Lgsg= -github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= +github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= +github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.14.3 h1:5zvnAqLtnCZrU9uod1JCvHWJbPMURzYFHfc2eHz4PHA= +github.com/ethereum/go-ethereum v1.14.3/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -330,8 +354,8 @@ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= +github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -405,8 +429,9 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -548,6 +573,7 @@ github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pw github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grafana/pyroscope-go v1.1.1 h1:PQoUU9oWtO3ve/fgIiklYuGilvsm8qaGhlY4Vw6MAcQ= @@ -633,8 +659,8 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= -github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw= -github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= @@ -710,6 +736,7 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= @@ -728,6 +755,7 @@ github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -738,6 +766,7 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= @@ -878,13 +907,17 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= @@ -1083,6 +1116,8 @@ github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= +github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863 h1:ba4VRWSkRzgdP5hB5OxexIzBXZbSwgcw8bEu06ivGQI= +github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863/go.mod h1:oPTjPNrRucLv9mU27iNPj6n0CWWcNFhoXFOLVGJwHCA= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75 h1:ZqpS7rAhhKD7S7DnrpEdrnW1/gZcv82ytpMviovkli4= github.com/streamingfast/logging v0.0.0-20220405224725-2755dab2ce75/go.mod h1:VlduQ80JcGJSargkRU4Sg9Xo63wZD/l8A5NC/Uo1/uU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1111,6 +1146,7 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= @@ -1186,6 +1222,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/zksync-sdk/zksync2-go v1.0.0 h1:DTFnNCr8ZUfpMWQ0V8CAvn9kTSF0svNRfqSsDRzOMUg= +github.com/zksync-sdk/zksync2-go v1.0.0/go.mod h1:AwxRw2lrtrcoYbl0LytVASNE/Vwz1wZ3WZ3X8rjLn3o= github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= @@ -1271,6 +1309,7 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc= golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1333,6 +1372,7 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1359,6 +1399,7 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1435,6 +1476,8 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1458,6 +1501,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 97fa67a58535bda09e22a62b6b282c5c5d4a2365 Mon Sep 17 00:00:00 2001 From: yashnevatia Date: Wed, 15 Jan 2025 12:40:44 +0000 Subject: [PATCH 2/2] uncommenting --- .../scripts/native_solc_compile_all_ccip | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/contracts/scripts/native_solc_compile_all_ccip b/contracts/scripts/native_solc_compile_all_ccip index b91b4e99e3..09a1e614c2 100755 --- a/contracts/scripts/native_solc_compile_all_ccip +++ b/contracts/scripts/native_solc_compile_all_ccip @@ -65,20 +65,19 @@ compileContract () { # Solc produces and overwrites intermediary contracts. # Contracts should be ordered in reverse-import-complexity-order to minimize overwrite risks. -# compileContract ccip/offRamp/EVM2EVMOffRamp.sol +compileContract ccip/offRamp/EVM2EVMOffRamp.sol compileContract ccip/onRamp/EVM2EVMOnRamp.sol -# compileContract ccip/applications/PingPongDemo.sol -# compileContract ccip/applications/SelfFundedPingPong.sol -# compileContract ccip/CommitStore.sol -# compileContract ccip/Router.sol -# compileContract ccip/PriceRegistry.sol -# compileContract ccip/RMN.sol -# compileContract ccip/ARMProxy.sol -# compileContract ccip/tokenAdminRegistry/TokenAdminRegistry.sol -# compileContract ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol -# compileContract ccip/pools/LockReleaseTokenPool.sol -# compileContract ccip/test/WETH9.sol -# compileContract shared/token/ERC677/LinkToken.sol +compileContract ccip/applications/SelfFundedPingPong.sol +compileContract ccip/CommitStore.sol +compileContract ccip/Router.sol +compileContract ccip/PriceRegistry.sol +compileContract ccip/RMN.sol +compileContract ccip/ARMProxy.sol +compileContract ccip/tokenAdminRegistry/TokenAdminRegistry.sol +compileContract ccip/tokenAdminRegistry/RegistryModuleOwnerCustom.sol +compileContract ccip/pools/LockReleaseTokenPool.sol +compileContract ccip/test/WETH9.sol +compileContract shared/token/ERC677/LinkToken.sol # compileContract ccip/offRamp/OffRamp.sol