From 1cf159febc93f16e4f5db8f1d7feb1d249caf364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Negovanovi=C4=87?= Date: Thu, 29 Feb 2024 12:28:42 +0100 Subject: [PATCH] Replace polygonzkevm.bin with the previous version --- etherman/smartcontracts/bin/polygonzkevm.bin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etherman/smartcontracts/bin/polygonzkevm.bin b/etherman/smartcontracts/bin/polygonzkevm.bin index 2324c6b2a1..ce30a4e2b9 100644 --- a/etherman/smartcontracts/bin/polygonzkevm.bin +++ b/etherman/smartcontracts/bin/polygonzkevm.bin @@ -1 +1 @@ -6101006040523480156200001257600080fd5b506040516200504338038062005043833981016040819052620000359162000071565b6001600160a01b0393841660a052918316608052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614e57620001ec6000396000818161054d015281816110e7015281816111ae015281816111d0015281816113730152818161144c015281816115b90152818161180401528181611dec0152818161235a015281816127b10152818161285f01528181612ee801528181612fb001528181613a7001528181613ae901528181613b0b0152613bb60152600081816106ef01528181610c0c015281816119fd01528181611ad701528181612a3001528181612b3801526135aa0152600081816107ab01528181610c8e01528181611c60015281816130fb015261362c0152600081816107dd015281816108cf0152818161113a0152818161127e01526130cf0152614e576000f3fe608060405234801561001057600080fd5b50600436106103145760003560e01c806371257022116101a7578063c7fffd4b116100ee578063e57a0b4c11610097578063ecef3f9911610071578063ecef3f9914610846578063f35dda4714610859578063f851a4401461086157600080fd5b8063e57a0b4c146107ff578063e7a7ed021461081f578063eaeb077b1461083357600080fd5b8063d02103ca116100c8578063d02103ca146107a6578063d7bc90ff146107cd578063e46761c4146107d857600080fd5b8063c7fffd4b1461076b578063c89e42df14610773578063cfa8ed471461078657600080fd5b80639f26f84011610150578063ada8f9191161012a578063ada8f91914610724578063b0afe15414610737578063c754c7ed1461074357600080fd5b80639f26f840146106d7578063a3c573eb146106ea578063a652f26c1461071157600080fd5b80638c3d7301116101815780638c3d7301146106a157806391cafe32146106a95780639e001877146106bc57600080fd5b8063712570221461063f5780637a5460c5146106525780637cd76b8b1461068e57600080fd5b80633cbc795b1161026b57806352bdeb6d116102145780636b8616ce116101ee5780636b8616ce146106035780636e05d2cd146106235780636ff512cc1461062c57600080fd5b806352bdeb6d146105b7578063542028d5146105f3578063676870d2146105fb57600080fd5b806349b7b8021161024557806349b7b802146105485780634c21fef31461056f5780634e487706146105a457600080fd5b80633cbc795b1461047a57806340b5de6c146104b7578063456052671461050f57600080fd5b806326782247116102cd5780632d72c248116102a75780632d72c2481461043457806332c2d153146104475780633c351e101461045a57600080fd5b806326782247146103ba5780632acdc2b6146103ff5780632c111c061461041457600080fd5b806305835f37116102fe57806305835f371461034f578063107bf28c1461039857806311e892d4146103a057600080fd5b8062d0295d146103195780630350896314610334575b600080fd5b610321610887565b6040519081526020015b60405180910390f35b61033c602081565b60405161ffff909116815260200161032b565b61038b6040518060400160405280600881526020017f80808401c9c3809400000000000000000000000000000000000000000000000081525081565b60405161032b9190613f76565b61038b610993565b6103a860f981565b60405160ff909116815260200161032b565b6001546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161032b565b61041261040d366004613fa1565b610a21565b005b6008546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b610412610442366004614039565b610b41565b610412610455366004614101565b61144a565b6009546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b6009546104a29074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200161032b565b6104de7fff0000000000000000000000000000000000000000000000000000000000000081565b6040517fff00000000000000000000000000000000000000000000000000000000000000909116815260200161032b565b60075461052f9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161032b565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b600a546105949074010000000000000000000000000000000000000000900460ff1681565b604051901515815260200161032b565b6104126105b2366004614143565b611519565b61038b6040518060400160405280600281526020017f80b800000000000000000000000000000000000000000000000000000000000081525081565b61038b61172b565b61033c601f81565b610321610611366004614143565b60066020526000908152604090205481565b61032160055481565b61041261063a366004614160565b611738565b61041261064d3660046142d2565b611802565b61038b6040518060400160405280600281526020017f80b900000000000000000000000000000000000000000000000000000000000081525081565b61041261069c366004614160565b612028565b6104126120f2565b6104126106b7366004614160565b6121c5565b6103da73a40d5f56745a118d0906a34e69aec8c0db1cb8fa81565b6104126106e53660046143c4565b6122de565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b61038b61071f366004614406565b61292f565b610412610732366004614160565b612d14565b6103216405ca1ab1e081565b60075461052f90700100000000000000000000000000000000900467ffffffffffffffff1681565b6103a860e481565b61041261078136600461447b565b612dde565b6002546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b610321635ca1ab1e81565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b600a546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b60075461052f9067ffffffffffffffff1681565b6104126108413660046144b0565b612e71565b6104126108543660046144fc565b613343565b6103a8601b81565b6000546103da9062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190614548565b6007549091506000906109659067ffffffffffffffff68010000000000000000820481169116614590565b67ffffffffffffffff169050806000036109825760009250505090565b61098c81836145b8565b9250505090565b600480546109a0906145f3565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc906145f3565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b505050505081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610a78576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5474010000000000000000000000000000000000000000900460ff16151581151503610ad2576040517f5f0e7abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000831515021790556040517ff32a0473f809a720a4f8af1e50d353f1caf7452030626fdaac4273f5e6587f4190600090a150565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b92576040517f11e7be1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836000819003610bce576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8811115610c0a576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379e2cf976040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635ca1e1656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1b9190614548565b60075460055491925068010000000000000000900467ffffffffffffffff1690816000805b868110156110595760008c8c83818110610d5c57610d5c614646565b905060800201803603810190610d729190614675565b604081015190915067ffffffffffffffff1615610f665785610d93816146c3565b96505060008160000151826020015183604001518460600151604051602001610dfa9493929190938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8a16600090815260069093529120549091508114610e83576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b858260000151836020015184604001518f8660600151604051602001610f1d969594939291909586526020860194909452604085019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166060808501919091521b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166068830152607c820152609c0190565b604051602081830303815290604052805190602001209550600660008867ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000905550611046565b8051604051610f82918591602001918252602082015260400190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012084519184018990529183015260608083018a90524260c01b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808401528d901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660888301526000609c830152935060bc016040516020818303038152906040528051906020012094505b5080611051816146ea565b915050610d40565b5060075467ffffffffffffffff90811690851611156110a4576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058390558567ffffffffffffffff858116908416146111a25760006110ca8487614590565b90506110e067ffffffffffffffff821683614722565b91506111617f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff16611119610887565b611123919061473b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906133a7565b50600780547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8816021790555b8015611331576112a6337f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663477fa2706040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190614548565b611267919061473b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692919061347b565b600a546040517f3b51be4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633b51be4b906113009085908d908d9060040161479b565b60006040518083038186803b15801561131857600080fd5b505afa15801561132c573d6000803e3d6000fd5b505050505b6040517f9a908e7300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff88166004820152602481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af11580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f591906147be565b90508067ffffffffffffffff167f3e54d0825ed78523037d00a81759237eb436ce774bd546993ee67a1b67b6e7668860405161143391815260200190565b60405180910390a250505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146114b9576040517fb9b3a2c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168367ffffffffffffffff167f9c72852172521097ba7e1482e6b44b351323df0155f97f4ea18fcec28e1f59668460405161150c91815260200190565b60405180910390a3505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314611570576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62093a8067ffffffffffffffff821611156115b7576040517ff5e37f2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315064c966040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164691906147db565b6116a75760075467ffffffffffffffff7001000000000000000000000000000000009091048116908216106116a7576040517ff5e37f2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040519081527fa7eb6cb8a613eb4e8bddc1ac3d61ec6cf10898760f0b187bcca794c6ca6fa40b906020015b60405180910390a150565b600380546109a0906145f3565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461178f576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff54144f9611984021529f814a1cb6a41e22c58351510a0d9f7e822618abb9cc090602001611720565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611871576040517fb9b3a2c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16158080156118915750600054600160ff909116105b806118ab5750303b1580156118ab575060005460ff166001145b61193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561199a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b606073ffffffffffffffffffffffffffffffffffffffff851615611c01576040517fc00f14ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c00f14ab90602401600060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611a8a91908101906147f8565b6040517f318aee3d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291925060009182917f00000000000000000000000000000000000000000000000000000000000000009091169063318aee3d9060240160408051808303816000875af1158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190614866565b915091508163ffffffff16600014611bbd576009805463ffffffff841674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff841617179055611bfe565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790555b50505b600954600090611c4990889073ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900463ffffffff168561292f565b9050600081805190602001209050600042905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633ed691ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ced9190614548565b90506000808483858f611d01600143614722565b60408051602081019790975286019490945260608086019390935260c09190911b7fffffffffffffffff000000000000000000000000000000000000000000000000166080850152901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608883015240609c82015260bc01604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815290829052805160209091012060058190557f9a908e73000000000000000000000000000000000000000000000000000000008252600160048301526024820181905291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af1158015611e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6e91906147be565b508c600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508860039081611f0091906148e6565b506004611f0d89826148e6565b508c600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062069780600760106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f060116213bcbf54ca19fd649dc84b59ab2bbd200ab199770e4d923e222a28e7f85838e604051611fae93929190614a00565b60405180910390a1505050505050801561201f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461207f576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd331bd4c4cd1afecb94a225184bded161ff3213624ba4fb58c4f30c5a861144a90602001611720565b60015473ffffffffffffffffffffffffffffffffffffffff163314612143576040517fd1ec4b2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff1673ffffffffffffffffffffffffffffffffffffffff9092166201000081029290921790556040519081527f056dc487bbf0795d0bbb1b4f0af523a855503cff740bfb4d5475f7a90c091e8e9060200160405180910390a1565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461221c576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff1661226b576040517fc89374d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5fbd7dd171301c4a1611a84aac4ba86d119478560557755f7927595b082634fb90602001611720565b60085473ffffffffffffffffffffffffffffffffffffffff16801580159061231c575073ffffffffffffffffffffffffffffffffffffffff81163314155b15612353576040517f24eff8c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4262093a807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330c27dde6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e791906147be565b6123f19190614a3f565b67ffffffffffffffff161115612433576040517f3d49ed4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600081900361246f576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88111156124ab576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff808216916124d391849168010000000000000000900416614a60565b111561250b576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546005546801000000000000000090910467ffffffffffffffff169060005b838110156127ab57600087878381811061254857612548614646565b905060200281019061255a9190614a73565b61256390614ab1565b90508361256f816146c3565b825180516020918201208185015160408087015160608801519151959a509295506000946125dc948794929101938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8916600090815260069093529120549091508114612665576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff861660009081526006602052604081205561268a600188614722565b84036126f95742600760109054906101000a900467ffffffffffffffff1684604001516126b79190614a3f565b67ffffffffffffffff1611156126f9576040517fc44a082100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208381015160408086015160608088015183519586018b90529285018790528481019390935260c01b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808401523390911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166088830152609c82015260bc0160405160208183030381529060405280519060200120945050505080806127a3906146ea565b91505061252c565b506127d97f000000000000000000000000000000000000000000000000000000000000000084611119610887565b60058190556007805467ffffffffffffffff841668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9091161790556040517f9a908e7300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639a908e73906128ab908790869060040167ffffffffffffffff929092168252602082015260400190565b6020604051808303816000875af11580156128ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ee91906147be565b60405190915067ffffffffffffffff8216907f648a61dd2438f072f5a1960939abd30f37aea80d2e94c9792ad142d3e0a490a490600090a250505050505050565b6060600085858573a40d5f56745a118d0906a34e69aec8c0db1cb8fa60008760405160240161296396959493929190614b1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff811bff7000000000000000000000000000000000000000000000000000000001790528351909150606090600003612ab45760f9601f83516129f89190614b82565b6040518060400160405280600881526020017f80808401c9c380940000000000000000000000000000000000000000000000008152507f00000000000000000000000000000000000000000000000000000000000000006040518060400160405280600281526020017f80b800000000000000000000000000000000000000000000000000000000000081525060e487604051602001612a9e9796959493929190614b9d565b6040516020818303038152906040529050612bb8565b815161ffff1015612af1576040517f248b8f8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160f9612b00602083614b82565b6040518060400160405280600881526020017f80808401c9c380940000000000000000000000000000000000000000000000008152507f00000000000000000000000000000000000000000000000000000000000000006040518060400160405280600281526020017f80b90000000000000000000000000000000000000000000000000000000000008152508588604051602001612ba59796959493929190614c80565b6040516020818303038152906040529150505b805160208083019190912060408051600080825293810180835292909252601b908201526405ca1ab1e06060820152635ca1ab1e608082015260019060a0016020604051602081039080840390855afa158015612c19573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612c91576040517fcd16196600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051600090612cd79084906405ca1ab1e090635ca1ab1e90601b907fff0000000000000000000000000000000000000000000000000000000000000090602001614d63565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529450505050505b949350505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314612d6b576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fa5b56b7906fd0a20e3f35120dd8343db1e12e037a6c90111c7e42885e82a1ce690602001611720565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314612e35576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003612e4182826148e6565b507f6b8f723a4c7a5335cafae8a598a0aa0301be1387c037dccc085b62add6448b20816040516117209190613f76565b60085473ffffffffffffffffffffffffffffffffffffffff168015801590612eaf575073ffffffffffffffffffffffffffffffffffffffff81163314155b15612ee6576040517f24eff8c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315064c966040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7591906147db565b15612fac576040517f39258d1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663604691696040518163ffffffff1660e01b8152600401602060405180830381865afa158015613019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061303d9190614548565b905082811115613079576040517f2354600f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113888411156130b5576040517fa29a6c7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130f773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308461347b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633ed691ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131889190614548565b6007805491925067ffffffffffffffff9091169060006131a7836146c3565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505085856040516131de929190614dbf565b60405190819003902081426131f4600143614722565b60408051602081019590955284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166060830152406068820152608801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012060075467ffffffffffffffff16600090815260069093529120553233036132ec57600754604080518381523360208201526060818301819052600090820152905167ffffffffffffffff909216917ff94bb37db835f1ab585ee00041849a09b12cd081d77fa15ca070757619cbc9319181900360800190a261333b565b60075460405167ffffffffffffffff909116907ff94bb37db835f1ab585ee00041849a09b12cd081d77fa15ca070757619cbc9319061333290849033908b908b90614dcf565b60405180910390a25b505050505050565b600a5474010000000000000000000000000000000000000000900460ff16613397576040517f821935b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6133a28383836134df565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526133a29084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c8b565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526134d99085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016133f9565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314613530576040517f11e7be1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600081900361356c576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88111156135a8576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379e2cf976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561361057600080fd5b505af1158015613624573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635ca1e1656040518163ffffffff1660e01b8152600401602060405180830381865afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614548565b60075460055491925042916801000000000000000090910467ffffffffffffffff16908160005b868110156139e25760008a8a838181106136fc576136fc614646565b905060200281019061370e9190614a73565b61371790614ab1565b8051805160209091012060408201519192509067ffffffffffffffff16156138fc5785613743816146c3565b9650506000818360200151846040015185606001516040516020016137a69493929190938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8a1660009081526006909352912054909150811461382f576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208381015160408086015160608088015183519586018c90529285018790528481019390935260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166080840152908d901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166088830152609c82015260bc01604051602081830303815290604052805190602001209550600660008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009055506139cd565b8151516201d4c0101561393b576040517fa29a6c7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020810187905290810182905260608082018a905260c089901b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808301528b901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660888201526000609c82015260bc016040516020818303038152906040528051906020012094505b505080806139da906146ea565b9150506136e0565b5060075467ffffffffffffffff9081169084161115613a2d576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058290558567ffffffffffffffff84811690831614613ae3576000613a538386614590565b9050613a6967ffffffffffffffff821683614722565b9150613aa27f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff16611119610887565b50600780547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8716021790555b613b74337f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663477fa2706040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b6040517f9a908e7300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff88166004820152602481018490526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af1158015613c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3891906147be565b90508067ffffffffffffffff167f3e54d0825ed78523037d00a81759237eb436ce774bd546993ee67a1b67b6e76688604051613c7691815260200190565b60405180910390a25050505050505050505050565b6000613ced826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613d979092919063ffffffff16565b8051909150156133a25780806020019051810190613d0b91906147db565b6133a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611933565b6060612d0c8484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051613dcb9190614e0f565b60006040518083038185875af1925050503d8060008114613e08576040519150601f19603f3d011682016040523d82523d6000602084013e613e0d565b606091505b5091509150613e1e87838387613e29565b979650505050505050565b60608315613ebf578251600003613eb85773ffffffffffffffffffffffffffffffffffffffff85163b613eb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611933565b5081612d0c565b612d0c8383815115613ed45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119339190613f76565b60005b83811015613f23578181015183820152602001613f0b565b50506000910152565b60008151808452613f44816020860160208601613f08565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613f896020830184613f2c565b9392505050565b8015158114613f9e57600080fd5b50565b600060208284031215613fb357600080fd5b8135613f8981613f90565b73ffffffffffffffffffffffffffffffffffffffff81168114613f9e57600080fd5b8035613feb81613fbe565b919050565b60008083601f84011261400257600080fd5b50813567ffffffffffffffff81111561401a57600080fd5b60208301915083602082850101111561403257600080fd5b9250929050565b60008060008060006060868803121561405157600080fd5b853567ffffffffffffffff8082111561406957600080fd5b818801915088601f83011261407d57600080fd5b81358181111561408c57600080fd5b8960208260071b85010111156140a157600080fd5b602083019750809650506140b760208901613fe0565b945060408801359150808211156140cd57600080fd5b506140da88828901613ff0565b969995985093965092949392505050565b67ffffffffffffffff81168114613f9e57600080fd5b60008060006060848603121561411657600080fd5b8335614121816140eb565b925060208401359150604084013561413881613fbe565b809150509250925092565b60006020828403121561415557600080fd5b8135613f89816140eb565b60006020828403121561417257600080fd5b8135613f8981613fbe565b63ffffffff81168114613f9e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156141e1576141e161418f565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561422e5761422e61418f565b604052919050565b600067ffffffffffffffff8211156142505761425061418f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261428d57600080fd5b81356142a061429b82614236565b6141e7565b8181528460208386010111156142b557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156142eb57600080fd5b86356142f681613fbe565b9550602087013561430681613fbe565b945060408701356143168161417d565b9350606087013561432681613fbe565b9250608087013567ffffffffffffffff8082111561434357600080fd5b61434f8a838b0161427c565b935060a089013591508082111561436557600080fd5b5061437289828a0161427c565b9150509295509295509295565b60008083601f84011261439157600080fd5b50813567ffffffffffffffff8111156143a957600080fd5b6020830191508360208260051b850101111561403257600080fd5b600080602083850312156143d757600080fd5b823567ffffffffffffffff8111156143ee57600080fd5b6143fa8582860161437f565b90969095509350505050565b6000806000806080858703121561441c57600080fd5b84356144278161417d565b9350602085013561443781613fbe565b925060408501356144478161417d565b9150606085013567ffffffffffffffff81111561446357600080fd5b61446f8782880161427c565b91505092959194509250565b60006020828403121561448d57600080fd5b813567ffffffffffffffff8111156144a457600080fd5b612d0c8482850161427c565b6000806000604084860312156144c557600080fd5b833567ffffffffffffffff8111156144dc57600080fd5b6144e886828701613ff0565b909790965060209590950135949350505050565b60008060006040848603121561451157600080fd5b833567ffffffffffffffff81111561452857600080fd5b6145348682870161437f565b909450925050602084013561413881613fbe565b60006020828403121561455a57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff8281168282160390808211156145b1576145b1614561565b5092915050565b6000826145ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181811c9082168061460757607f821691505b602082108103614640577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006080828403121561468757600080fd5b61468f6141be565b823581526020830135602082015260408301356146ab816140eb565b60408201526060928301359281019290925250919050565b600067ffffffffffffffff8083168181036146e0576146e0614561565b6001019392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361471b5761471b614561565b5060010190565b8181038181111561473557614735614561565b92915050565b808202811582820484141761473557614735614561565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006147b5604083018486614752565b95945050505050565b6000602082840312156147d057600080fd5b8151613f89816140eb565b6000602082840312156147ed57600080fd5b8151613f8981613f90565b60006020828403121561480a57600080fd5b815167ffffffffffffffff81111561482157600080fd5b8201601f8101841361483257600080fd5b805161484061429b82614236565b81815285602083850101111561485557600080fd5b6147b5826020830160208601613f08565b6000806040838503121561487957600080fd5b82516148848161417d565b602084015190925061489581613fbe565b809150509250929050565b601f8211156133a257600081815260208120601f850160051c810160208610156148c75750805b601f850160051c820191505b8181101561333b578281556001016148d3565b815167ffffffffffffffff8111156149005761490061418f565b6149148161490e84546145f3565b846148a0565b602080601f83116001811461496757600084156149315750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561333b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156149b457888601518255948401946001909101908401614995565b50858210156149f057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b606081526000614a136060830186613f2c565b905083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b67ffffffffffffffff8181168382160190808211156145b1576145b1614561565b8082018082111561473557614735614561565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112614aa757600080fd5b9190910192915050565b600060808236031215614ac357600080fd5b614acb6141be565b823567ffffffffffffffff811115614ae257600080fd5b614aee3682860161427c565b825250602083013560208201526040830135614b09816140eb565b6040820152606092830135928101929092525090565b600063ffffffff808916835273ffffffffffffffffffffffffffffffffffffffff8089166020850152818816604085015280871660608501528086166080850152505060c060a0830152614b7660c0830184613f2c565b98975050505050505050565b61ffff8181168382160190808211156145b1576145b1614561565b60007fff00000000000000000000000000000000000000000000000000000000000000808a60f81b1683527fffff0000000000000000000000000000000000000000000000000000000000008960f01b1660018401528751614c06816003860160208c01613f08565b80840190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1660038201528651614c49816017840160208b01613f08565b808201915050818660f81b16601782015284519150614c6f826018830160208801613f08565b016018019998505050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffff000000000000000000000000000000000000000000000000000000000000808960f01b1660018401528751614ce9816003860160208c01613f08565b80840190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1660038201528651614d2c816017840160208b01613f08565b808201915050818660f01b16601782015284519150614d52826019830160208801613f08565b016019019998505050505050505050565b60008651614d75818460208b01613f08565b9190910194855250602084019290925260f81b7fff000000000000000000000000000000000000000000000000000000000000009081166040840152166041820152604201919050565b8183823760009101908152919050565b84815273ffffffffffffffffffffffffffffffffffffffff84166020820152606060408201526000614e05606083018486614752565b9695505050505050565b60008251614aa7818460208701613f0856fea26469706673582212202b1aac8044495ff24c092985345ae3acad17857482744a4c6de2a7a856a7f79e64736f6c63430008140033 +6101006040523480156200001257600080fd5b506040516200504338038062005043833981016040819052620000359162000071565b6001600160a01b0393841660a052918316608052821660c0521660e052620000d9565b6001600160a01b03811681146200006e57600080fd5b50565b600080600080608085870312156200008857600080fd5b8451620000958162000058565b6020860151909450620000a88162000058565b6040860151909350620000bb8162000058565b6060860151909250620000ce8162000058565b939692955090935050565b60805160a05160c05160e051614e57620001ec6000396000818161054d015281816110e7015281816111ae015281816111d0015281816113730152818161144c015281816115b90152818161180401528181611dec0152818161235a015281816127b10152818161285f01528181612ee801528181612fb001528181613a7001528181613ae901528181613b0b0152613bb60152600081816106ef01528181610c0c015281816119fd01528181611ad701528181612a3001528181612b3801526135aa0152600081816107ab01528181610c8e01528181611c60015281816130fb015261362c0152600081816107dd015281816108cf0152818161113a0152818161127e01526130cf0152614e576000f3fe608060405234801561001057600080fd5b50600436106103145760003560e01c806371257022116101a7578063c7fffd4b116100ee578063e57a0b4c11610097578063ecef3f9911610071578063ecef3f9914610846578063f35dda4714610859578063f851a4401461086157600080fd5b8063e57a0b4c146107ff578063e7a7ed021461081f578063eaeb077b1461083357600080fd5b8063d02103ca116100c8578063d02103ca146107a6578063d7bc90ff146107cd578063e46761c4146107d857600080fd5b8063c7fffd4b1461076b578063c89e42df14610773578063cfa8ed471461078657600080fd5b80639f26f84011610150578063ada8f9191161012a578063ada8f91914610724578063b0afe15414610737578063c754c7ed1461074357600080fd5b80639f26f840146106d7578063a3c573eb146106ea578063a652f26c1461071157600080fd5b80638c3d7301116101815780638c3d7301146106a157806391cafe32146106a95780639e001877146106bc57600080fd5b8063712570221461063f5780637a5460c5146106525780637cd76b8b1461068e57600080fd5b80633cbc795b1161026b57806352bdeb6d116102145780636b8616ce116101ee5780636b8616ce146106035780636e05d2cd146106235780636ff512cc1461062c57600080fd5b806352bdeb6d146105b7578063542028d5146105f3578063676870d2146105fb57600080fd5b806349b7b8021161024557806349b7b802146105485780634c21fef31461056f5780634e487706146105a457600080fd5b80633cbc795b1461047a57806340b5de6c146104b7578063456052671461050f57600080fd5b806326782247116102cd5780632d72c248116102a75780632d72c2481461043457806332c2d153146104475780633c351e101461045a57600080fd5b806326782247146103ba5780632acdc2b6146103ff5780632c111c061461041457600080fd5b806305835f37116102fe57806305835f371461034f578063107bf28c1461039857806311e892d4146103a057600080fd5b8062d0295d146103195780630350896314610334575b600080fd5b610321610887565b6040519081526020015b60405180910390f35b61033c602081565b60405161ffff909116815260200161032b565b61038b6040518060400160405280600881526020017f80808401c9c3809400000000000000000000000000000000000000000000000081525081565b60405161032b9190613f76565b61038b610993565b6103a860f981565b60405160ff909116815260200161032b565b6001546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161032b565b61041261040d366004613fa1565b610a21565b005b6008546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b610412610442366004614039565b610b41565b610412610455366004614101565b61144a565b6009546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b6009546104a29074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200161032b565b6104de7fff0000000000000000000000000000000000000000000000000000000000000081565b6040517fff00000000000000000000000000000000000000000000000000000000000000909116815260200161032b565b60075461052f9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161032b565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b600a546105949074010000000000000000000000000000000000000000900460ff1681565b604051901515815260200161032b565b6104126105b2366004614143565b611519565b61038b6040518060400160405280600281526020017f80b800000000000000000000000000000000000000000000000000000000000081525081565b61038b61172b565b61033c601f81565b610321610611366004614143565b60066020526000908152604090205481565b61032160055481565b61041261063a366004614160565b611738565b61041261064d3660046142d2565b611802565b61038b6040518060400160405280600281526020017f80b900000000000000000000000000000000000000000000000000000000000081525081565b61041261069c366004614160565b612028565b6104126120f2565b6104126106b7366004614160565b6121c5565b6103da73a40d5f56745a118d0906a34e69aec8c0db1cb8fa81565b6104126106e53660046143c4565b6122de565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b61038b61071f366004614406565b61292f565b610412610732366004614160565b612d14565b6103216405ca1ab1e081565b60075461052f90700100000000000000000000000000000000900467ffffffffffffffff1681565b6103a860e481565b61041261078136600461447b565b612dde565b6002546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b610321635ca1ab1e81565b6103da7f000000000000000000000000000000000000000000000000000000000000000081565b600a546103da9073ffffffffffffffffffffffffffffffffffffffff1681565b60075461052f9067ffffffffffffffff1681565b6104126108413660046144b0565b612e71565b6104126108543660046144fc565b613343565b6103a8601b81565b6000546103da9062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190614548565b6007549091506000906109659067ffffffffffffffff68010000000000000000820481169116614590565b67ffffffffffffffff169050806000036109825760009250505090565b61098c81836145b8565b9250505090565b600480546109a0906145f3565b80601f01602080910402602001604051908101604052809291908181526020018280546109cc906145f3565b8015610a195780601f106109ee57610100808354040283529160200191610a19565b820191906000526020600020905b8154815290600101906020018083116109fc57829003601f168201915b505050505081565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314610a78576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5474010000000000000000000000000000000000000000900460ff16151581151503610ad2576040517f5f0e7abe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000831515021790556040517ff32a0473f809a720a4f8af1e50d353f1caf7452030626fdaac4273f5e6587f4190600090a150565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b92576040517f11e7be1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836000819003610bce576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8811115610c0a576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379e2cf976040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635ca1e1656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1b9190614548565b60075460055491925068010000000000000000900467ffffffffffffffff1690816000805b868110156110595760008c8c83818110610d5c57610d5c614646565b905060800201803603810190610d729190614675565b604081015190915067ffffffffffffffff1615610f665785610d93816146c3565b96505060008160000151826020015183604001518460600151604051602001610dfa9493929190938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8a16600090815260069093529120549091508114610e83576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b858260000151836020015184604001518f8660600151604051602001610f1d969594939291909586526020860194909452604085019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166060808501919091521b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166068830152607c820152609c0190565b604051602081830303815290604052805190602001209550600660008867ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206000905550611046565b8051604051610f82918591602001918252602082015260400190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012084519184018990529183015260608083018a90524260c01b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808401528d901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660888301526000609c830152935060bc016040516020818303038152906040528051906020012094505b5080611051816146ea565b915050610d40565b5060075467ffffffffffffffff90811690851611156110a4576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058390558567ffffffffffffffff858116908416146111a25760006110ca8487614590565b90506110e067ffffffffffffffff821683614722565b91506111617f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff16611119610887565b611123919061473b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906133a7565b50600780547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8816021790555b8015611331576112a6337f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663477fa2706040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190614548565b611267919061473b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692919061347b565b600a546040517f3b51be4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633b51be4b906113009085908d908d9060040161479b565b60006040518083038186803b15801561131857600080fd5b505afa15801561132c573d6000803e3d6000fd5b505050505b6040517f9a908e7300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff88166004820152602481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af11580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f591906147be565b90508067ffffffffffffffff167f3e54d0825ed78523037d00a81759237eb436ce774bd546993ee67a1b67b6e7668860405161143391815260200190565b60405180910390a250505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146114b9576040517fb9b3a2c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168367ffffffffffffffff167f9c72852172521097ba7e1482e6b44b351323df0155f97f4ea18fcec28e1f59668460405161150c91815260200190565b60405180910390a3505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314611570576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62093a8067ffffffffffffffff821611156115b7576040517ff5e37f2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315064c966040518163ffffffff1660e01b8152600401602060405180830381865afa158015611622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164691906147db565b6116a75760075467ffffffffffffffff7001000000000000000000000000000000009091048116908216106116a7576040517ff5e37f2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040519081527fa7eb6cb8a613eb4e8bddc1ac3d61ec6cf10898760f0b187bcca794c6ca6fa40b906020015b60405180910390a150565b600380546109a0906145f3565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461178f576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff54144f9611984021529f814a1cb6a41e22c58351510a0d9f7e822618abb9cc090602001611720565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314611871576040517fb9b3a2c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16158080156118915750600054600160ff909116105b806118ab5750303b1580156118ab575060005460ff166001145b61193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561199a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b606073ffffffffffffffffffffffffffffffffffffffff851615611c01576040517fc00f14ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c00f14ab90602401600060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611a8a91908101906147f8565b6040517f318aee3d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291925060009182917f00000000000000000000000000000000000000000000000000000000000000009091169063318aee3d9060240160408051808303816000875af1158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190614866565b915091508163ffffffff16600014611bbd576009805463ffffffff841674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff841617179055611bfe565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89161790555b50505b600954600090611c4990889073ffffffffffffffffffffffffffffffffffffffff81169074010000000000000000000000000000000000000000900463ffffffff168561292f565b9050600081805190602001209050600042905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633ed691ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ced9190614548565b90506000808483858f611d01600143614722565b60408051602081019790975286019490945260608086019390935260c09190911b7fffffffffffffffff000000000000000000000000000000000000000000000000166080850152901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016608883015240609c82015260bc01604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815290829052805160209091012060058190557f9a908e73000000000000000000000000000000000000000000000000000000008252600160048301526024820181905291507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af1158015611e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6e91906147be565b508c600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508860039081611f0091906148e6565b506004611f0d89826148e6565b508c600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062069780600760106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507f060116213bcbf54ca19fd649dc84b59ab2bbd200ab199770e4d923e222a28e7f85838e604051611fae93929190614a00565b60405180910390a1505050505050801561201f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461207f576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd331bd4c4cd1afecb94a225184bded161ff3213624ba4fb58c4f30c5a861144a90602001611720565b60015473ffffffffffffffffffffffffffffffffffffffff163314612143576040517fd1ec4b2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff1673ffffffffffffffffffffffffffffffffffffffff9092166201000081029290921790556040519081527f056dc487bbf0795d0bbb1b4f0af523a855503cff740bfb4d5475f7a90c091e8e9060200160405180910390a1565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461221c576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff1661226b576040517fc89374d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5fbd7dd171301c4a1611a84aac4ba86d119478560557755f7927595b082634fb90602001611720565b60085473ffffffffffffffffffffffffffffffffffffffff16801580159061231c575073ffffffffffffffffffffffffffffffffffffffff81163314155b15612353576040517f24eff8c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4262093a807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330c27dde6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e791906147be565b6123f19190614a3f565b67ffffffffffffffff161115612433576040517f3d49ed4c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600081900361246f576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88111156124ab576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075467ffffffffffffffff808216916124d391849168010000000000000000900416614a60565b111561250b576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546005546801000000000000000090910467ffffffffffffffff169060005b838110156127ab57600087878381811061254857612548614646565b905060200281019061255a9190614a73565b61256390614ab1565b90508361256f816146c3565b825180516020918201208185015160408087015160608801519151959a509295506000946125dc948794929101938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8916600090815260069093529120549091508114612665576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff861660009081526006602052604081205561268a600188614722565b84036126f95742600760109054906101000a900467ffffffffffffffff1684604001516126b79190614a3f565b67ffffffffffffffff1611156126f9576040517fc44a082100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208381015160408086015160608088015183519586018b90529285018790528481019390935260c01b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808401523390911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166088830152609c82015260bc0160405160208183030381529060405280519060200120945050505080806127a3906146ea565b91505061252c565b506127d97f000000000000000000000000000000000000000000000000000000000000000084611119610887565b60058190556007805467ffffffffffffffff841668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9091161790556040517f9a908e7300000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639a908e73906128ab908790869060040167ffffffffffffffff929092168252602082015260400190565b6020604051808303816000875af11580156128ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ee91906147be565b60405190915067ffffffffffffffff8216907f648a61dd2438f072f5a1960939abd30f37aea80d2e94c9792ad142d3e0a490a490600090a250505050505050565b6060600085858573a40d5f56745a118d0906a34e69aec8c0db1cb8fa60008760405160240161296396959493929190614b1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff811bff7000000000000000000000000000000000000000000000000000000001790528351909150606090600003612ab45760f9601f83516129f89190614b82565b6040518060400160405280600881526020017f80808401c9c380940000000000000000000000000000000000000000000000008152507f00000000000000000000000000000000000000000000000000000000000000006040518060400160405280600281526020017f80b800000000000000000000000000000000000000000000000000000000000081525060e487604051602001612a9e9796959493929190614b9d565b6040516020818303038152906040529050612bb8565b815161ffff1015612af1576040517f248b8f8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160f9612b00602083614b82565b6040518060400160405280600881526020017f80808401c9c380940000000000000000000000000000000000000000000000008152507f00000000000000000000000000000000000000000000000000000000000000006040518060400160405280600281526020017f80b90000000000000000000000000000000000000000000000000000000000008152508588604051602001612ba59796959493929190614c80565b6040516020818303038152906040529150505b805160208083019190912060408051600080825293810180835292909252601b908201526405ca1ab1e06060820152635ca1ab1e608082015260019060a0016020604051602081039080840390855afa158015612c19573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612c91576040517fcd16196600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051600090612cd79084906405ca1ab1e090635ca1ab1e90601b907fff0000000000000000000000000000000000000000000000000000000000000090602001614d63565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529450505050505b949350505050565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314612d6b576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fa5b56b7906fd0a20e3f35120dd8343db1e12e037a6c90111c7e42885e82a1ce690602001611720565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff163314612e35576040517f4755657900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003612e4182826148e6565b507f6b8f723a4c7a5335cafae8a598a0aa0301be1387c037dccc085b62add6448b20816040516117209190613f76565b60085473ffffffffffffffffffffffffffffffffffffffff168015801590612eaf575073ffffffffffffffffffffffffffffffffffffffff81163314155b15612ee6576040517f24eff8c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166315064c966040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7591906147db565b15612fac576040517f39258d1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663604691696040518163ffffffff1660e01b8152600401602060405180830381865afa158015613019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061303d9190614548565b905082811115613079576040517f2354600f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113888411156130b5576040517fa29a6c7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130f773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308461347b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633ed691ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131889190614548565b6007805491925067ffffffffffffffff9091169060006131a7836146c3565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505085856040516131de929190614dbf565b60405190819003902081426131f4600143614722565b60408051602081019590955284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166060830152406068820152608801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012060075467ffffffffffffffff16600090815260069093529120553233036132ec57600754604080518381523360208201526060818301819052600090820152905167ffffffffffffffff909216917ff94bb37db835f1ab585ee00041849a09b12cd081d77fa15ca070757619cbc9319181900360800190a261333b565b60075460405167ffffffffffffffff909116907ff94bb37db835f1ab585ee00041849a09b12cd081d77fa15ca070757619cbc9319061333290849033908b908b90614dcf565b60405180910390a25b505050505050565b600a5474010000000000000000000000000000000000000000900460ff16613397576040517f821935b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6133a28383836134df565b505050565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526133a29084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c8b565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526134d99085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016133f9565b50505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314613530576040517f11e7be1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600081900361356c576040517fcb591a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88111156135a8576040517fb59f753a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379e2cf976040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561361057600080fd5b505af1158015613624573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635ca1e1656040518163ffffffff1660e01b8152600401602060405180830381865afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614548565b60075460055491925042916801000000000000000090910467ffffffffffffffff16908160005b868110156139e25760008a8a838181106136fc576136fc614646565b905060200281019061370e9190614a73565b61371790614ab1565b8051805160209091012060408201519192509067ffffffffffffffff16156138fc5785613743816146c3565b9650506000818360200151846040015185606001516040516020016137a69493929190938452602084019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166040830152604882015260680190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012067ffffffffffffffff8a1660009081526006909352912054909150811461382f576040517fce3d755e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208381015160408086015160608088015183519586018c90529285018790528481019390935260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166080840152908d901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166088830152609c82015260bc01604051602081830303815290604052805190602001209550600660008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009055506139cd565b8151516201d4c0101561393b576040517fa29a6c7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516020810187905290810182905260608082018a905260c089901b7fffffffffffffffff0000000000000000000000000000000000000000000000001660808301528b901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660888201526000609c82015260bc016040516020818303038152906040528051906020012094505b505080806139da906146ea565b9150506136e0565b5060075467ffffffffffffffff9081169084161115613a2d576040517fc630a00d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058290558567ffffffffffffffff84811690831614613ae3576000613a538386614590565b9050613a6967ffffffffffffffff821683614722565b9150613aa27f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff16611119610887565b50600780547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8716021790555b613b74337f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663477fa2706040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b6040517f9a908e7300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff88166004820152602481018490526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690639a908e73906044016020604051808303816000875af1158015613c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3891906147be565b90508067ffffffffffffffff167f3e54d0825ed78523037d00a81759237eb436ce774bd546993ee67a1b67b6e76688604051613c7691815260200190565b60405180910390a25050505050505050505050565b6000613ced826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613d979092919063ffffffff16565b8051909150156133a25780806020019051810190613d0b91906147db565b6133a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611933565b6060612d0c8484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051613dcb9190614e0f565b60006040518083038185875af1925050503d8060008114613e08576040519150601f19603f3d011682016040523d82523d6000602084013e613e0d565b606091505b5091509150613e1e87838387613e29565b979650505050505050565b60608315613ebf578251600003613eb85773ffffffffffffffffffffffffffffffffffffffff85163b613eb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611933565b5081612d0c565b612d0c8383815115613ed45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119339190613f76565b60005b83811015613f23578181015183820152602001613f0b565b50506000910152565b60008151808452613f44816020860160208601613f08565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613f896020830184613f2c565b9392505050565b8015158114613f9e57600080fd5b50565b600060208284031215613fb357600080fd5b8135613f8981613f90565b73ffffffffffffffffffffffffffffffffffffffff81168114613f9e57600080fd5b8035613feb81613fbe565b919050565b60008083601f84011261400257600080fd5b50813567ffffffffffffffff81111561401a57600080fd5b60208301915083602082850101111561403257600080fd5b9250929050565b60008060008060006060868803121561405157600080fd5b853567ffffffffffffffff8082111561406957600080fd5b818801915088601f83011261407d57600080fd5b81358181111561408c57600080fd5b8960208260071b85010111156140a157600080fd5b602083019750809650506140b760208901613fe0565b945060408801359150808211156140cd57600080fd5b506140da88828901613ff0565b969995985093965092949392505050565b67ffffffffffffffff81168114613f9e57600080fd5b60008060006060848603121561411657600080fd5b8335614121816140eb565b925060208401359150604084013561413881613fbe565b809150509250925092565b60006020828403121561415557600080fd5b8135613f89816140eb565b60006020828403121561417257600080fd5b8135613f8981613fbe565b63ffffffff81168114613f9e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156141e1576141e161418f565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561422e5761422e61418f565b604052919050565b600067ffffffffffffffff8211156142505761425061418f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261428d57600080fd5b81356142a061429b82614236565b6141e7565b8181528460208386010111156142b557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156142eb57600080fd5b86356142f681613fbe565b9550602087013561430681613fbe565b945060408701356143168161417d565b9350606087013561432681613fbe565b9250608087013567ffffffffffffffff8082111561434357600080fd5b61434f8a838b0161427c565b935060a089013591508082111561436557600080fd5b5061437289828a0161427c565b9150509295509295509295565b60008083601f84011261439157600080fd5b50813567ffffffffffffffff8111156143a957600080fd5b6020830191508360208260051b850101111561403257600080fd5b600080602083850312156143d757600080fd5b823567ffffffffffffffff8111156143ee57600080fd5b6143fa8582860161437f565b90969095509350505050565b6000806000806080858703121561441c57600080fd5b84356144278161417d565b9350602085013561443781613fbe565b925060408501356144478161417d565b9150606085013567ffffffffffffffff81111561446357600080fd5b61446f8782880161427c565b91505092959194509250565b60006020828403121561448d57600080fd5b813567ffffffffffffffff8111156144a457600080fd5b612d0c8482850161427c565b6000806000604084860312156144c557600080fd5b833567ffffffffffffffff8111156144dc57600080fd5b6144e886828701613ff0565b909790965060209590950135949350505050565b60008060006040848603121561451157600080fd5b833567ffffffffffffffff81111561452857600080fd5b6145348682870161437f565b909450925050602084013561413881613fbe565b60006020828403121561455a57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff8281168282160390808211156145b1576145b1614561565b5092915050565b6000826145ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181811c9082168061460757607f821691505b602082108103614640577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006080828403121561468757600080fd5b61468f6141be565b823581526020830135602082015260408301356146ab816140eb565b60408201526060928301359281019290925250919050565b600067ffffffffffffffff8083168181036146e0576146e0614561565b6001019392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361471b5761471b614561565b5060010190565b8181038181111561473557614735614561565b92915050565b808202811582820484141761473557614735614561565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006147b5604083018486614752565b95945050505050565b6000602082840312156147d057600080fd5b8151613f89816140eb565b6000602082840312156147ed57600080fd5b8151613f8981613f90565b60006020828403121561480a57600080fd5b815167ffffffffffffffff81111561482157600080fd5b8201601f8101841361483257600080fd5b805161484061429b82614236565b81815285602083850101111561485557600080fd5b6147b5826020830160208601613f08565b6000806040838503121561487957600080fd5b82516148848161417d565b602084015190925061489581613fbe565b809150509250929050565b601f8211156133a257600081815260208120601f850160051c810160208610156148c75750805b601f850160051c820191505b8181101561333b578281556001016148d3565b815167ffffffffffffffff8111156149005761490061418f565b6149148161490e84546145f3565b846148a0565b602080601f83116001811461496757600084156149315750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561333b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156149b457888601518255948401946001909101908401614995565b50858210156149f057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b606081526000614a136060830186613f2c565b905083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b67ffffffffffffffff8181168382160190808211156145b1576145b1614561565b8082018082111561473557614735614561565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112614aa757600080fd5b9190910192915050565b600060808236031215614ac357600080fd5b614acb6141be565b823567ffffffffffffffff811115614ae257600080fd5b614aee3682860161427c565b825250602083013560208201526040830135614b09816140eb565b6040820152606092830135928101929092525090565b600063ffffffff808916835273ffffffffffffffffffffffffffffffffffffffff8089166020850152818816604085015280871660608501528086166080850152505060c060a0830152614b7660c0830184613f2c565b98975050505050505050565b61ffff8181168382160190808211156145b1576145b1614561565b60007fff00000000000000000000000000000000000000000000000000000000000000808a60f81b1683527fffff0000000000000000000000000000000000000000000000000000000000008960f01b1660018401528751614c06816003860160208c01613f08565b80840190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1660038201528651614c49816017840160208b01613f08565b808201915050818660f81b16601782015284519150614c6f826018830160208801613f08565b016018019998505050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffff000000000000000000000000000000000000000000000000000000000000808960f01b1660018401528751614ce9816003860160208c01613f08565b80840190507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b1660038201528651614d2c816017840160208b01613f08565b808201915050818660f01b16601782015284519150614d52826019830160208801613f08565b016019019998505050505050505050565b60008651614d75818460208b01613f08565b9190910194855250602084019290925260f81b7fff000000000000000000000000000000000000000000000000000000000000009081166040840152166041820152604201919050565b8183823760009101908152919050565b84815273ffffffffffffffffffffffffffffffffffffffff84166020820152606060408201526000614e05606083018486614752565b9695505050505050565b60008251614aa7818460208701613f0856fea26469706673582212202b1aac8044495ff24c092985345ae3acad17857482744a4c6de2a7a856a7f79e64736f6c63430008140033 \ No newline at end of file