0x68922b2d71d30ba2c12ed1a5f5d39e1126f7a5a4db6e27bdf8fefc6d9f29687b
2 (EIP-1559)
12 months ago (Monday, November 4, 2024 at 6:06:41 AM Coordinated Universal Time)
1.60232250001068215 WEMIX
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161c00b6200011f60003960008181610894015281816108d701528181610980015281816109c30152610b84015261c00b6000f3fe608060405260043610620001be5760003560e01c8063715018a611620000ff578063d63843cd1162000095578063e1a1d026116200006c578063e1a1d026146200050c578063f2fde38b1462000531578063f8c8765e1462000556578063f971fac6146200057b57600080fd5b8063d63843cd14620004a3578063d6a1524014620004c6578063d9f8bd2314620004e957600080fd5b8063a9445d9b11620000d6578063a9445d9b1462000421578063b13295701462000444578063b5435e29146200045d578063bd985e7b146200048057600080fd5b8063715018a614620003c45780638da5cb5b14620003dc578063a79a052514620003fc57600080fd5b80632dd507b211620001755780634f1ef286116200014c5780634f1ef286146200033c5780635112e3a6146200035357806352d1902d146200037857806357c41942146200039f57600080fd5b80632dd507b214620002cf5780633659cfe614620002f45780634a6a3d10146200031957600080fd5b806301fcdf2014620001c357806301ffc9a714620002035780630a9dfc7414620002395780631f010dd114620002605780632a2b6ba014620002855780632ae9c60014620002a8575b600080fd5b348015620001d057600080fd5b5061013054620001e6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200021057600080fd5b506200022862000222366004620038cf565b620005a0565b6040519015158152602001620001fa565b3480156200024657600080fd5b506200025e6200025836600462003911565b620005e1565b005b3480156200026d57600080fd5b506200025e6200027f36600462003931565b62000660565b3480156200029257600080fd5b5061013154620001e6906001600160a01b031681565b348015620002b557600080fd5b50620002c0620007de565b604051620001fa91906200396f565b348015620002dc57600080fd5b506200025e620002ee36600462003911565b6200080a565b3480156200030157600080fd5b506200025e6200031336600462003911565b62000889565b3480156200032657600080fd5b5061013654620001e6906001600160a01b031681565b6200025e6200034d36600462003a3e565b62000975565b3480156200036057600080fd5b506200025e6200037236600462003931565b62000a52565b3480156200038557600080fd5b506200039062000b77565b604051908152602001620001fa565b348015620003ac57600080fd5b506200025e620003be36600462003911565b62000c2d565b348015620003d157600080fd5b506200025e62000cac565b348015620003e957600080fd5b506097546001600160a01b0316620001e6565b3480156200040957600080fd5b506200025e6200041b36600462003b34565b62000cc4565b3480156200042e57600080fd5b5061013254620001e6906001600160a01b031681565b3480156200045157600080fd5b50620003906101385481565b3480156200046a57600080fd5b5061013754620001e6906001600160a01b031681565b3480156200048d57600080fd5b5061013454620001e6906001600160a01b031681565b348015620004b057600080fd5b5061013554620001e6906001600160a01b031681565b348015620004d357600080fd5b5061013354620001e6906001600160a01b031681565b348015620004f657600080fd5b5061012f54620001e6906001600160a01b031681565b3480156200051957600080fd5b506200025e6200052b36600462003c13565b62001235565b3480156200053e57600080fd5b506200025e6200055036600462003911565b62001557565b3480156200056357600080fd5b506200025e6200057536600462003c74565b620015d3565b3480156200058857600080fd5b50620003906200059a36600462003cd9565b62001890565b60006301ffc9a760e01b6001600160e01b031983161480620005db57506001600160e01b03198216600090815260fb602052604090205460ff165b92915050565b620005eb620018b7565b6001600160a01b0381166200061357604051630178409b60e41b815260040160405180910390fd5b61013480546001600160a01b0319166001600160a01b03831690811790915560405133907f3788d8bdb35e51a3e1640d6d4a3f5a4e08e25eca2c9976b15fe89e97f12ec5aa90600090a350565b80336001600160a01b038216146200069a578033604051635b6d824b60e01b81526004016200069192919062003d08565b60405180910390fd5b61013354604051634a56f36d60e01b81526001600160a01b0385811660048301526000921690634a56f36d90602401600060405180830381865afa158015620006e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000711919081019062003dc6565b9050826001600160a01b03168160008151811062000733576200073362003dfe565b60200260200101516001600160a01b0316146200076f5760405163221791dd60e01b81526001600160a01b038516600482015260240162000691565b61013354604051631f010dd160e01b81526001600160a01b0390911690631f010dd190620007a4908690889060040162003d08565b600060405180830381600087803b158015620007bf57600080fd5b505af1158015620007d4573d6000803e3d6000fd5b5050505050505050565b620007e862003887565b5060408051606081018252600181526003602082015260009181019190915290565b62000814620018b7565b6001600160a01b0381166200083c57604051630178409b60e41b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b03831690811790915560405133907f23282353163de98276fc048fab0060eaebd8866bac8d66938028043dfde9f3ca90600090a350565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415620008d55760405162461bcd60e51b8152600401620006919062003e14565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620009206000805160206200bf8f833981519152546001600160a01b031690565b6001600160a01b031614620009495760405162461bcd60e51b8152600401620006919062003e60565b620009548162001913565b6040805160008082526020820190925262000972918391906200191d565b50565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415620009c15760405162461bcd60e51b8152600401620006919062003e14565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a0c6000805160206200bf8f833981519152546001600160a01b031690565b6001600160a01b03161462000a355760405162461bcd60e51b8152600401620006919062003e60565b62000a408262001913565b62000a4e828260016200191d565b5050565b80336001600160a01b0382161462000a83578033604051635b6d824b60e01b81526004016200069192919062003d08565b61013354604051634a56f36d60e01b81526001600160a01b0385811660048301526000921690634a56f36d90602401600060405180830381865afa15801562000ad0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000afa919081019062003dc6565b9050805160001462000b4257838160008151811062000b1d5762000b1d62003dfe565b602002602001015160405163a3ecea2360e01b81526004016200069192919062003d08565b6101335460405163288971d360e11b81526001600160a01b0390911690635112e3a690620007a4908690889060040162003d08565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000c195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000691565b506000805160206200bf8f83398151915290565b62000c37620018b7565b6001600160a01b03811662000c5f57604051630178409b60e41b815260040160405180910390fd5b61013380546001600160a01b0319166001600160a01b03831690811790915560405133907fb793d8c15c5526fea9db962f3e8ed32814a064ea7c9935c618c6f4f2f513a23390600090a350565b62000cb6620018b7565b62000cc2600062001a9a565b565b610133546001600160a01b031662000cef57604051630e95f75760e41b815260040160405180910390fd5b6101335460405163096beb5360e11b815233916001600160a01b0316906312d7d6a69062000d2c9084908b908b908b908b908b9060040162003f47565b60006040518083038186803b15801562000d4557600080fd5b505afa15801562000d5a573d6000803e3d6000fd5b505050851515905062000d8057604051638aec24df60e01b815260040160405180910390fd5b600062000d8d8862001aec565b61013154604051632a99dcd560e21b81529192506001600160a01b03169063aa6773549062000dc3908490869060040162003d08565b600060405180830381600087803b15801562000dde57600080fd5b505af115801562000df3573d6000803e3d6000fd5b50506101335460405163288971d360e11b81526001600160a01b039091169250635112e3a6915062000e2c908490309060040162003d08565b600060405180830381600087803b15801562000e4757600080fd5b505af115801562000e5c573d6000803e3d6000fd5b5050505062000e6c818362001bb3565b600062000e7a82846200241c565b905060005b87811015620010ff5760008061013260009054906101000a90046001600160a01b03166001600160a01b0316633c8c01d18660405180604001604052808f8f8981811062000ed15762000ed162003dfe565b905060200281019062000ee59190620040c1565b62000ef79036819003810190620040e2565b81526020018f8f8981811062000f115762000f1162003dfe565b905060200281019062000f259190620040c1565b62000f359060808101906200415e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516001600160e01b031960e085901b16815262000f8f92919060040162004204565b6000604051808303816000875af115801562000faf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000fd991908101906200426a565b610132546040805160a081019091529294509092506001600160a01b03169063dbf9ee9e908790808f8f8981811062001016576200101662003dfe565b90506020028101906200102a9190620040c1565b6200103c9036819003810190620040e2565b8152602001866001600160a01b031681526020018560200151815260200162001069866000015162002498565b81526020018f8f8981811062001083576200108362003dfe565b9050602002810190620010979190620040c1565b606001358152506040518363ffffffff1660e01b8152600401620010bd92919062004428565b600060405180830381600087803b158015620010d857600080fd5b505af1158015620010ed573d6000803e3d6000fd5b50505050826001019250505062000e7f565b506200110b82620024ca565b620011168262002a29565b6101386000815462001128906200452d565b90915550610138546101375460009162001153916001600160a01b03166244414f60e81b8662002c6c565b6040805160208101825260008152905163372d96d360e01b81529192506001600160a01b0385169163372d96d39162001192918891906004016200454b565b600060405180830381600087803b158015620011ad57600080fd5b505af1158015620011c2573d6000803e3d6000fd5b50505050816001600160a01b0316836001600160a01b0316856001600160a01b03167f212165f062300cb1b3bd5af2780630eb09a865a665254dc88ee86fb72ce547ee88620012118662002dc8565b6040516200122192919062004581565b60405180910390a450505050505050505050565b61013354604051634a56f36d60e01b81526001600160a01b03868116600483015290911690634a56f36d90602401600060405180830381865afa15801562001281573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620012ab919081019062003dc6565b51620012d65760405163221791dd60e01b81526001600160a01b038516600482015260240162000691565b61013354604051634a56f36d60e01b81526001600160a01b0386811660048301526000921690634a56f36d90602401600060405180830381865afa15801562001323573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200134d919081019062003dc6565b60008151811062001362576200136262003dfe565b602002602001015190506000620013818663e1a1d02660e01b62002ee8565b8287604051602001620013bd93929190928352606091821b6bffffffffffffffffffffffff199081166020850152911b16603482015260480190565b604051602081830303815290604052805190602001209050620013e38682878762002f67565b61013454604051639cb0f8f360e01b81526001600160a01b03848116600483015290911690639cb0f8f39060240160006040518083038186803b1580156200142a57600080fd5b505afa1580156200143f573d6000803e3d6000fd5b50505050816001600160a01b0316639df8c6f76040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b505061013354604051631f010dd160e01b81526001600160a01b039091169250631f010dd19150620014cd9085908a9060040162003d08565b600060405180830381600087803b158015620014e857600080fd5b505af1158015620014fd573d6000803e3d6000fd5b50505050816001600160a01b0316866001600160a01b03167f9302036d3432389788380e0055796c5d90c3c414aaef0d35ab860ece5579c098856040516200154791815260200190565b60405180910390a3505050505050565b62001561620018b7565b6001600160a01b038116620015c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000691565b620009728162001a9a565b600054610100900460ff1615808015620015f45750600054600160ff909116105b80620016105750303b15801562001610575060005460ff166001145b620016755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000691565b6000805460ff19166001179055801562001699576000805461ff0019166101001790555b6001600160a01b038516620016c157604051630178409b60e41b815260040160405180910390fd5b6001600160a01b038416620016e957604051630178409b60e41b815260040160405180910390fd5b6001600160a01b0383166200171157604051630178409b60e41b815260040160405180910390fd5b61013180546001600160a01b038088166001600160a01b03199283161790925561013280549287169290911691909117905562001754621574e360e91b62002fd7565b61013680546001600160a01b0319166001600160a01b0385161790556040516200177e90620038a5565b604051809103906000f0801580156200179b573d6000803e3d6000fd5b5061012f80546001600160a01b0319166001600160a01b0392909216919091179055604051620017cb90620038b3565b604051809103906000f080158015620017e8573d6000803e3d6000fd5b5061013080546001600160a01b03199081166001600160a01b039384161790915561013780549091169184169190911790556200183867636c6f736544616f60c01b6370d0e81360e11b62003058565b62001842620030f4565b801562001889576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600081815261012d6020526040812054620018b090849060e01b62002ee8565b9392505050565b6097546001600160a01b0316331462000cc25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000691565b62000972620018b7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200195857620019538362003128565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620019b5575060408051601f3d908101601f19168201909252620019b2918101906200459c565b60015b62001a1a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000691565b6000805160206200bf8f833981519152811462001a8c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000691565b5062001953838383620031c7565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61012f54604080516020810190915260008082529162001b18916001600160a01b0390911690620031f8565b90506001600160a01b03811663eafb8b0662001b3860408501856200415e565b3062001b48602088018862003911565b62001b5760208901896200415e565b6040518763ffffffff1660e01b815260040162001b7a96959493929190620045b6565b600060405180830381600087803b15801562001b9557600080fd5b505af115801562001baa573d6000803e3d6000fd5b50505050919050565b600061013260009054906101000a90046001600160a01b031690506000836001600160a01b03166309e56b146040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001c0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c3591906200459c565b9050600061013260009054906101000a90046001600160a01b03166001600160a01b031663747e5ec16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001c8e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cb491906200459c565b90506000856001600160a01b0316636a582b446040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cf7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d1d91906200459c565b90506000866001600160a01b0316638a51e6096040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001d60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d8691906200459c565b90506000876001600160a01b031663dd9d65036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001dc9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001def91906200459c565b90506000886001600160a01b031663b276e71e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001e32573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e5891906200459c565b6040516335a2eb4b60e21b81529091507f3c2519c4487d47714872f92cf90a50c25f5deaec2789dc2a497b1272df611db6907ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c906001600160a01b038c169063d68bad2c9062001ed1908e908d908b9060040162004605565b600060405180830381600087803b15801562001eec57600080fd5b505af115801562001f01573d6000803e3d6000fd5b50506040516335a2eb4b60e21b81526001600160a01b038e16925063d68bad2c915062001f37908e908d908d9060040162004605565b600060405180830381600087803b15801562001f5257600080fd5b505af115801562001f67573d6000803e3d6000fd5b50506040516335a2eb4b60e21b81526001600160a01b038e16925063d68bad2c915062001f9d908c9030908c9060040162004605565b600060405180830381600087803b15801562001fb857600080fd5b505af115801562001fcd573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c8a62001ff46097546001600160a01b031690565b8a6040518463ffffffff1660e01b8152600401620020159392919062004605565b600060405180830381600087803b1580156200203057600080fd5b505af115801562002045573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c8c61013560009054906101000a90046001600160a01b03168b6040518463ffffffff1660e01b8152600401620020919392919062004605565b600060405180830381600087803b158015620020ac57600080fd5b505af1158015620020c1573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c8c61013460009054906101000a90046001600160a01b03168b6040518463ffffffff1660e01b81526004016200210d9392919062004605565b600060405180830381600087803b1580156200212857600080fd5b505af11580156200213d573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c61013560009054906101000a90046001600160a01b03168c846040518463ffffffff1660e01b8152600401620021899392919062004605565b600060405180830381600087803b158015620021a457600080fd5b505af1158015620021b9573d6000803e3d6000fd5b50506040516335a2eb4b60e21b81526001600160a01b038e16925063d68bad2c9150620021ef908e908e908a9060040162004605565b600060405180830381600087803b1580156200220a57600080fd5b505af11580156200221f573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c61013460009054906101000a90046001600160a01b03168c856040518463ffffffff1660e01b81526004016200226b9392919062004605565b600060405180830381600087803b1580156200228657600080fd5b505af11580156200229b573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c8c61013460009054906101000a90046001600160a01b0316876040518463ffffffff1660e01b8152600401620022e79392919062004605565b600060405180830381600087803b1580156200230257600080fd5b505af115801562002317573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c61013460009054906101000a90046001600160a01b031630856040518463ffffffff1660e01b8152600401620023639392919062004605565b600060405180830381600087803b1580156200237e57600080fd5b505af115801562002393573d6000803e3d6000fd5b505050508a6001600160a01b031663d68bad2c8c620023ba6097546001600160a01b031690565b866040518463ffffffff1660e01b8152600401620023db9392919062004605565b600060405180830381600087803b158015620023f657600080fd5b505af11580156200240b573d6000803e3d6000fd5b505050505050505050505050505050565b610134546040516301358eb960e31b81526000916001600160a01b0316906309ac75c89062002452908690869060040162003d08565b6020604051808303816000875af115801562002472573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018b0919062004629565b600081604051602001620024ad919062004649565b604051602081830303815290604052805190602001209050919050565b6040805160078082526101008201909252600091816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181620024e35790505060408051606081019091529091508060008152602001836001600160a01b03168152602001836001600160a01b03166309e56b146040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200259b91906200459c565b81525081600081518110620025b457620025b462003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b03166324b4d73f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200264691906200459c565b815250816001815181106200265f576200265f62003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b031663e2e355636040518163ffffffff1660e01b8152600401602060405180830381865afa158015620026cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026f191906200459c565b815250816002815181106200270a576200270a62003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b031663829331a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002776573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200279c91906200459c565b81525081600381518110620027b557620027b562003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b031663e306bee76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200284791906200459c565b8152508160048151811062002860576200286062003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b03166326875b1f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028f291906200459c565b815250816005815181106200290b576200290b62003dfe565b602090810291909101015260408051606081019091528060008152602001836001600160a01b03168152602001836001600160a01b031663dd9d65036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200299d91906200459c565b81525081600681518110620029b657620029b662003dfe565b60209081029190910101526040516308a1134160e21b81526001600160a01b038316906322844d0490620029f1908590859060040162004698565b600060405180830381600087803b15801562002a0c57600080fd5b505af115801562002a21573d6000803e3d6000fd5b505050505050565b610132546040805163747e5ec160e01b815290516001600160a01b0390921691600091839163747e5ec1916004808201926020929091908290030181865afa15801562002a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002aa091906200459c565b90506000836001600160a01b031663dd9d65036040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002ae3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b0991906200459c565b604051633658153160e21b81529091507f3c2519c4487d47714872f92cf90a50c25f5deaec2789dc2a497b1272df611db6906001600160a01b0386169063d96054c49062002b609087903090889060040162004605565b600060405180830381600087803b15801562002b7b57600080fd5b505af115801562002b90573d6000803e3d6000fd5b5050604051633658153160e21b81526001600160a01b038816925063d96054c4915062002bc69088903090879060040162004605565b600060405180830381600087803b15801562002be157600080fd5b505af115801562002bf6573d6000803e3d6000fd5b505061013454604051633658153160e21b81526001600160a01b03808a16945063d96054c4935062002c319216903090869060040162004605565b600060405180830381600087803b15801562002c4c57600080fd5b505af115801562002c61573d6000803e3d6000fd5b505050505050505050565b60008062002c7a8462002dc8565b62002c858762003234565b60405160200162002c9892919062004712565b60405160208183030381529060405290506000602082511062002cc15750602081015162002d4f565b60208201519050818251602062002cd9919062004752565b6001600160401b0381111562002cf35762002cf3620039a5565b6040519080825280601f01601f19166020018201604052801562002d1e576020820181803683370190505b5060405160200162002d329291906200476c565b60405160208183030381529060405262002d4c906200479f565b90505b604051630221c53b60e61b81526001600160a01b0387811660048301819052602483018490529086166044830152906388714ec090606401600060405180830381600087803b15801562002da257600080fd5b505af115801562002db7573d6000803e3d6000fd5b50929450505050505b949350505050565b606060005b60208160ff1610801562002e055750828160ff166020811062002df45762002df462003dfe565b1a60f81b6001600160f81b03191615155b1562002e20578062002e1781620047c7565b91505062002dcd565b60008160ff166001600160401b0381111562002e405762002e40620039a5565b6040519080825280601f01601f19166020018201604052801562002e6b576020820181803683370190505b50905060005b8260ff168160ff16101562002ee057848160ff166020811062002e985762002e9862003dfe565b1a60f81b828260ff168151811062002eb45762002eb462003dfe565b60200101906001600160f81b031916908160001a9053508062002ed781620047c7565b91505062002e71565b509392505050565b6001600160a01b038216600090815261012e602090815260409182902054825130606090811b6bffffffffffffffffffffffff199081168386015246603484015296901b90951660548601526001600160e01b03199093166068850152606c8085019390935281518085039093018352608c9093019052805191012090565b600062002f76848484620032d1565b9050806001600160a01b0316856001600160a01b03161462002fb15784816040516310b5d43760e21b81526004016200069192919062003d08565b62001889856001600160a01b0316600090815261012e6020526040902080546001019055565b6001600160e01b03198082161415620030335760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015260640162000691565b6001600160e01b031916600090815260fb60205260409020805460ff19166001179055565b816200307f81600090815261012d602052604090205460e01b6001600160e01b0319161590565b620030cd5760405162461bcd60e51b815260206004820152601d60248201527f5665726966794b65793a20616c72656164792072656769737465726564000000604482015260640162000691565b600090815261012d60205260409020805463ffffffff191660e09290921c91909117905550565b600054610100900460ff166200311e5760405162461bcd60e51b81526004016200069190620047ea565b62000cc26200334d565b6001600160a01b0381163b620031975760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000691565b6000805160206200bf8f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620031d28362003382565b600082511180620031e05750805b156200195357620031f28383620033c4565b50505050565b600082826040516200320a90620038c1565b6200321792919062004835565b604051809103906000f08015801562002ee0573d6000803e3d6000fd5b606060006200324383620033ec565b60010190506000816001600160401b03811115620032655762003265620039a5565b6040519080825280601f01601f19166020018201604052801562003290576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084620032cb5762002ee0565b6200329a565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c849052603c81206200334484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508593925050620034cb9050565b95945050505050565b600054610100900460ff16620033775760405162461bcd60e51b81526004016200069190620047ea565b62000cc23362001a9a565b6200338d8162003128565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620018b083836040518060600160405280602781526020016200bfaf60279139620034eb565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106200342c5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831062003459576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106200347857662386f26fc10000830492506010015b6305f5e100831062003491576305f5e100830492506008015b6127108310620034a657612710830492506004015b60648310620034b9576064830492506002015b600a8310620005db5760010192915050565b6000806000620034dc858562003569565b9150915062002ee081620035b3565b6060600080856001600160a01b0316856040516200350a91906200485b565b600060405180830381855af49150503d806000811462003547576040519150601f19603f3d011682016040523d82523d6000602084013e6200354c565b606091505b50915091506200355f8683838762003714565b9695505050505050565b600080825160411415620035a45760208301516040840151606085015160001a620035978782858562003791565b94509450505050620035ac565b506000905060025b9250929050565b6000816004811115620035ca57620035ca620043ef565b1415620035d45750565b6001816004811115620035eb57620035eb620043ef565b14156200363b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640162000691565b6002816004811115620036525762003652620043ef565b1415620036a25760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640162000691565b6003816004811115620036b957620036b9620043ef565b1415620009725760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840162000691565b60608315620037855782516200377d576001600160a01b0385163b6200377d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000691565b508162002dc0565b62002dc083836200385a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115620037ca575060009050600362003851565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156200381f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166200384a5760006001925092505062003851565b9150600090505b94509492505050565b8151156200386b5781518083602001fd5b8060405162461bcd60e51b81526004016200069191906200486f565b60405180606001604052806003906020820280368337509192915050565b614ad2806200488583390190565b612503806200935783390190565b610735806200b85a83390190565b600060208284031215620038e257600080fd5b81356001600160e01b031981168114620018b057600080fd5b6001600160a01b03811681146200097257600080fd5b6000602082840312156200392457600080fd5b8135620018b081620038fb565b600080604083850312156200394557600080fd5b82356200395281620038fb565b915060208301356200396481620038fb565b809150509250929050565b60608101818360005b60038110156200399c57815160ff1683526020928301929091019060010162003978565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620039e057620039e0620039a5565b60405290565b60405160a081016001600160401b0381118282101715620039e057620039e0620039a5565b604051601f8201601f191681016001600160401b038111828210171562003a365762003a36620039a5565b604052919050565b6000806040838503121562003a5257600080fd5b823562003a5f81620038fb565b91506020838101356001600160401b038082111562003a7d57600080fd5b818601915086601f83011262003a9257600080fd5b81358181111562003aa75762003aa7620039a5565b62003abb601f8201601f1916850162003a0b565b9150808252878482850101111562003ad257600080fd5b80848401858401376000848284010152508093505050509250929050565b60008083601f84011262003b0357600080fd5b5081356001600160401b0381111562003b1b57600080fd5b602083019150836020828501011115620035ac57600080fd5b6000806000806000806080878903121562003b4e57600080fd5b86356001600160401b038082111562003b6657600080fd5b908801906080828b03121562003b7b57600080fd5b9096506020880135908082111562003b9257600080fd5b818901915089601f83011262003ba757600080fd5b81358181111562003bb757600080fd5b8a60208260051b850101111562003bcd57600080fd5b60208301975080965050604089013591508082111562003bec57600080fd5b5062003bfb89828a0162003af0565b979a9699509497949695606090950135949350505050565b6000806000806060858703121562003c2a57600080fd5b843562003c3781620038fb565b935060208501356001600160401b0381111562003c5357600080fd5b62003c618782880162003af0565b9598909750949560400135949350505050565b6000806000806080858703121562003c8b57600080fd5b843562003c9881620038fb565b9350602085013562003caa81620038fb565b9250604085013562003cbc81620038fb565b9150606085013562003cce81620038fb565b939692955090935050565b6000806040838503121562003ced57600080fd5b823562003cfa81620038fb565b946020939093013593505050565b6001600160a01b0392831681529116602082015260400190565b60006001600160401b0382111562003d3e5762003d3e620039a5565b5060051b60200190565b600082601f83011262003d5a57600080fd5b8151602062003d7362003d6d8362003d22565b62003a0b565b82815260059290921b8401810191818101908684111562003d9357600080fd5b8286015b8481101562003dbb57805162003dad81620038fb565b835291830191830162003d97565b509695505050505050565b60006020828403121562003dd957600080fd5b81516001600160401b0381111562003df057600080fd5b62002dc08482850162003d48565b634e487b7160e01b600052603260045260246000fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000808335601e1984360301811262003ec457600080fd5b83016020810192503590506001600160401b0381111562003ee457600080fd5b803603831315620035ac57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560ff8116811462003f2f57600080fd5b919050565b803561ffff8116811462003f2f57600080fd5b600060018060a01b0380891683526020608081850152883562003f6a81620038fb565b8216608085015262003f7f8982018a62003eac565b608060a087015262003f976101008701828462003ef4565b91505062003fa960408b018b62003eac565b868303607f190160c088015262003fc283828462003ef4565b60608d013560e089015287810360408901528a815292505050818101600589901b820183018a6000805b8c8110156200409857858403601f190185528235368f9003609e1901811262004013578283fd5b8e0160ff620040228262003f1d565b16855261ffff6200403589830162003f34565b168886015260408101356200404a81620038fb565b89166040860152606081810135908601526200406a608082018262003eac565b915060a060808701526200408360a08701838362003ef4565b96890196955050509186019160010162003fec565b5050508681036060880152620040b081898b62003ef4565b9d9c50505050505050505050505050565b60008235609e19833603018112620040d857600080fd5b9190910192915050565b60008183036060811215620040f657600080fd5b62004100620039bb565b60408212156200410f57600080fd5b62004119620039bb565b9150620041268462003f1d565b8252620041366020850162003f34565b60208301529081526040830135906200414f82620038fb565b60208101919091529392505050565b6000808335601e198436030181126200417657600080fd5b8301803591506001600160401b038211156200419157600080fd5b602001915036819003821315620035ac57600080fd5b60005b83811015620041c4578181015183820152602001620041aa565b83811115620031f25750506000910152565b60008151808452620041f0816020860160208601620041a7565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905282516200424d918301908051805160ff16835260209081015161ffff168184015201516001600160a01b0316604090910152565b60006020830151608060a08401526200334460c0840182620041d6565b60008060408084860312156200427f57600080fd5b83516200428c81620038fb565b809350506020808501516001600160401b0380821115620042ac57600080fd5b8187019150838289031215620042c157600080fd5b620042cb620039bb565b825182811115620042db57600080fd5b620042e98a82860162003d48565b8252508383015182811115620042fe57600080fd5b80840193505088601f8401126200431457600080fd5b825191506200432762003d6d8362003d22565b82815260a0928302840185019285820191908b8511156200434757600080fd5b948601945b84861015620043d85780868d031215620043665760008081fd5b62004370620039e6565b865160038110620043815760008081fd5b8152868801516200439281620038fb565b8189015286890151620043a581620038fb565b818a0152606087810151620043ba81620038fb565b9082015260808781015190820152835294850194918601916200434c565b508086840152505080955050505050509250929050565b634e487b7160e01b600052602160045260246000fd5b600381106200442457634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0383811682526040602080840182905284518051805160ff168685015282015161ffff1660608601528101518316608085015260009290610120850186820151831660a0878101919091528488015160e060c0890152805192839052830191600091906101408901905b80841015620044f0578451620044b183825162004405565b80870151881683880152888101518816898401526060808201518916908401526080908101519083015293850193600193909301929082019062004499565b5060608a015160e08a015260808a01516101008a0152809750505050505050509392505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141562004544576200454462004517565b5060010190565b6001600160a01b03831681526060602082018190526000906200457190830184620041d6565b9050600060408301529392505050565b82815260406020820152600062002dc06040830184620041d6565b600060208284031215620045af57600080fd5b5051919050565b608081526000620045cc60808301888a62003ef4565b6001600160a01b038781166020850152861660408401528281036060840152620045f881858762003ef4565b9998505050505050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602082840312156200463c57600080fd5b8151620018b081620038fb565b6020808252825182820181905260009190848201906040850190845b818110156200468c5783516001600160a01b03168352928401929184019160010162004665565b50909695505050505050565b6001600160a01b038381168252604060208084018290528451848301819052600093606092909183870190888301875b8281101562004702578151620046e085825162004405565b80860151871685870152880151888501529286019290840190600101620046c8565b50919a9950505050505050505050565b6000835162004726818460208801620041a7565b605f60f81b908301908152835162004746816001840160208801620041a7565b01600101949350505050565b60008282101562004767576200476762004517565b500390565b6000835162004780818460208801620041a7565b83519083019062004796818360208801620041a7565b01949350505050565b80516020808301519190811015620047c1576000198160200360031b1b821691505b50919050565b600060ff821660ff811415620047e157620047e162004517565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038316815260406020820181905260009062002dc090830184620041d6565b60008251620040d8818460208701620041a7565b602081526000620018b06020830184620041d656fe60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516149b36200011f60003960008181610f4501528181610f85015281816117c501528181611805015261189801526149b36000f3fe6080604052600436106102e85760003560e01c80638da5cb5b11610190578063d96054c4116100dc578063e978afe511610095578063ef0478cb1161006f578063ef0478cb14610a81578063f6be71d114610a94578063f971fac614610ab4578063fdef910614610ad457610327565b8063e978afe514610a21578063eafb8b0614610a41578063ee57e36f14610a6157610327565b8063d96054c414610937578063da74222814610957578063dd9d650314610977578063dfc061f0146109ab578063e2e35563146109cb578063e306bee7146109ff57610327565b8063c2b6b58c11610149578063c9dbc2a411610123578063c9dbc2a4146108b9578063ce1b815f146108d9578063d68bad2c146108f8578063d6db2d8c1461091857610327565b8063c2b6b58c1461084b578063c4a501451461086b578063c71bf3241461088b57610327565b80638da5cb5b14610790578063964c7ea4146107af5780639df8c6f7146107cf5780639e9bb3cf146107e4578063a124df5d146107f7578063b276e71e1461081757610327565b80633659cfe61161024f5780634f1ef286116102085780636a582b44116101e25780636a582b44146106e45780637034731b14610718578063829331a11461073a5780638a51e6091461076e57610327565b80634f1ef2861461069d5780634f8d397d146106b057806352d1902d146106cf57610327565b80633659cfe6146105dc578063372d96d3146105fc578063388da9341461061c5780633e2ab0d91461063d5780633ee3b5481461065d57806342d8e99e1461067d57610327565b806322844d04116102a157806322844d04146104ff57806324b4d73f1461051f5780632675fdd01461055357806326875b1f146105735780632ae9c600146105a7578063323a1a5c146105c957610327565b806301ffc9a7146103bc5780630729d054146103f157806309e56b14146104335780631080f99b146104555780631626ba7e1461047757806320b59d4c146104b057610327565b3661032757604080513381523460208201527f62c2c8e34665db7c56b2cabd7f5fb9702ccd352ffa8150147e450797e9f8e8f3910160405180910390a1005b34801561033357600080fd5b50600036606060006103876000356001600160e01b03191685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610af492505050565b604080516001600160e01b03198316602082015291925001604051602081830303815290604052915050915050805190602001f35b3480156103c857600080fd5b506103dc6103d7366004613906565b610b9d565b60405190151581526020015b60405180910390f35b3480156103fd57600080fd5b506104257fbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d81565b6040519081526020016103e8565b34801561043f57600080fd5b5061042560008051602061495e83398151915281565b34801561046157600080fd5b50610475610470366004613964565b610bd9565b005b34801561048357600080fd5b50610497610492366004613a5a565b610c2c565b6040516001600160e01b031990911681526020016103e8565b3480156104bc57600080fd5b506104e76104cb366004613aa0565b600090815261013360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016103e8565b34801561050b57600080fd5b5061047561051a366004613ace565b610cc3565b34801561052b57600080fd5b506104257f1f53edd44352e5d15bad2b29233baa93bcd595e09457780bc7c5445bbbe751cc81565b34801561055f57600080fd5b506103dc61056e366004613b55565b610d83565b34801561057f57600080fd5b506104257ffaf505be9907aa6951c2ebe5b0312f4980e14f21912ed355372103cc8bd683bc81565b3480156105b357600080fd5b506105bc610dce565b6040516103e89190613bc0565b6104756105d7366004613bf4565b610df8565b3480156105e857600080fd5b506104756105f7366004613c3a565b610f3a565b34801561060857600080fd5b50610475610617366004613c57565b61101a565b34801561062857600080fd5b5061012f546104e7906001600160a01b031681565b34801561064957600080fd5b50610475610658366004613c3a565b6114fe565b34801561066957600080fd5b50610475610678366004613cf6565b61157f565b34801561068957600080fd5b50610475610698366004613d3e565b611693565b6104756106ab366004613d95565b6117ba565b3480156106bc57600080fd5b50610136546001600160a01b03166104e7565b3480156106db57600080fd5b5061042561188b565b3480156106f057600080fd5b506104257f1e12de9297ca34945f202b437435f6658677eb661ea685d755d366e9ecd9702781565b34801561072457600080fd5b5061072d61193e565b6040516103e89190613e26565b34801561074657600080fd5b506104257f06d294bc8cbad2e393408b20dd019a772661f60b8d633e56761157cb1ec85f8c81565b34801561077a57600080fd5b5061042560008051602061491783398151915281565b34801561079c57600080fd5b50610135546001600160a01b03166104e7565b3480156107bb57600080fd5b506104756107ca366004613e39565b6119d1565b3480156107db57600080fd5b50610475611aae565b6104756107f2366004613e69565b611b64565b34801561080357600080fd5b50610475610812366004613c3a565b611cff565b34801561082357600080fd5b506104257f956f639cc5d9b1185c6be2abc22d2b4c92d6f91995f7c187b780a903a6305e0c81565b34801561085757600080fd5b5061013554600160a01b900460ff166103dc565b34801561087757600080fd5b50610475610886366004613ebb565b611de6565b34801561089757600080fd5b506108ab6108a6366004613f06565b611e70565b6040516103e8929190613f8e565b3480156108c557600080fd5b506104756108d4366004613fb0565b612132565b3480156108e557600080fd5b50610130546001600160a01b03166104e7565b34801561090457600080fd5b50610475610913366004614003565b612156565b34801561092457600080fd5b50610134546001600160a01b03166104e7565b34801561094357600080fd5b50610475610952366004614003565b6121a5565b34801561096357600080fd5b50610475610972366004613c3a565b6121c8565b34801561098357600080fd5b506104257fb85109705a29600da7da0d2e241bebc53a4100e48a7e340455419b3a38b6573c81565b3480156109b757600080fd5b506104756109c6366004613c3a565b6121fb565b3480156109d757600080fd5b506104257f0dcbfb19b09fb8ff4e9af583d4b8e9c8127cc1b26529b4d96dd3b7e77808837281565b348015610a0b57600080fd5b506104256000805160206148d783398151915281565b348015610a2d57600080fd5b50610475610a3c366004614044565b6122d0565b348015610a4d57600080fd5b50610475610a5c3660046140b8565b6123c8565b348015610a6d57600080fd5b50610475610a7c366004613964565b612553565b610475610a8f366004614150565b612575565b348015610aa057600080fd5b50610475610aaf366004613aa0565b61273e565b348015610ac057600080fd5b50610425610acf366004614178565b6127ef565b348015610ae057600080fd5b506103dc610aef366004613b55565b61280d565b6001600160e01b0319808316600090815260fb6020526040812054909160e09190911b908116610b5057604051632a5ee61f60e11b81526001600160e01b03198086166004830152821660248201526044015b60405180910390fd5b836001600160e01b0319167f4792cb6e46e49876374bea490ba23274bacea6b84c216a64f47abab54027589b3385604051610b8c9291906141a4565b60405180910390a290505b92915050565b60006301ffc9a760e01b6001600160e01b031983161480610b975750506001600160e01b03191660009081526033602052604090205460ff1690565b6000805160206148d7833981519152610bf181612848565b61013554600160a01b900460ff1615610c1d5760405163096859a160e01b815260040160405180910390fd5b610c27838361287d565b505050565b61012f546000906001600160a01b0316610c4857506000610b97565b61012f54604051630b135d3f60e11b81526001600160a01b0390911690631626ba7e90610c7b90869086906004016141c8565b602060405180830381865afa158015610c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbc91906141e1565b9392505050565b60008051602061495e833981519152610cdb81612848565b60005b82811015610d7c576000848483818110610cfa57610cfa6141fe565b905060600201803603810190610d109190614228565b9050600081516002811115610d2757610d27614290565b1415610d4557610d4086826020015183604001516128bc565b610d73565b600181516002811115610d5a57610d5a614290565b1415610d7357610d7386826020015183604001516128c9565b50600101610cde565b5050505050565b6000610d918585858561295d565b80610daa5750610daa856001600160a01b03858561295d565b80610dc35750610dc36001600160a01b0385858561295d565b90505b949350505050565b610dd6613839565b5060408051606081018252600181526003602082015260009181019190915290565b600080516020614917833981519152610e1081612848565b61013554600160a01b900460ff1615610e3c5760405163096859a160e01b815260040160405180910390fd5b82610e5a57604051631f2a200560e01b815260040160405180910390fd5b3415610e82576040516301abd56160e41b815260006004820152346024820152604401610b47565b610134546040516317d5759960e31b81526001600160a01b039091169063beabacc890610eb7908890889088906004016142a6565b600060405180830381600087803b158015610ed157600080fd5b505af1158015610ee5573d6000803e3d6000fd5b505060408051868152602081018690526001600160a01b0380891694508916925033917f5469329c558200c1fcf93c503aaf9f4ab6d9894c89cea9cce726658ff5f43786910160405180910390a45050505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f835760405162461bcd60e51b8152600401610b47906142ca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fcc6000805160206148f7833981519152546001600160a01b031690565b6001600160a01b031614610ff25760405162461bcd60e51b8152600401610b4790614316565b610ffb81612a49565b6040805160008082526020820190925261101791839190612a73565b50565b61013554600160a01b900460ff16156110465760405163096859a160e01b815260040160405180910390fd5b610135546001600160a01b0390811690851681141561108b57604051630180dcdd60e31b81526001600160a01b03808316600483015286166024820152604401610b47565b826110ef576110b9303360008051602061495e83398151915260405180602001604052806000815250610d83565b6110ea57303360008051602061495e833981519152604051631e09743f60e01b8152600401610b47939291906142a6565b611197565b6001600160a01b03851633146111235760405163b20f76e360e01b81526001600160a01b0386166004820152602401610b47565b60006111368263372d96d360e01b612bde565b6040805160208101929092526001600160601b031930606090811b82169284019290925284821b811660548401529088901b166068820152607c0160405160208183030381529060405280519060200120905061119582828787612c58565b505b6101365460405163288971d360e11b81526001600160a01b03878116600483015230602483015290911690635112e3a690604401600060405180830381600087803b1580156111e557600080fd5b505af11580156111f9573d6000803e3d6000fd5b505061013654604051631f010dd160e01b81526001600160a01b0385811660048301523060248301529091169250631f010dd19150604401600060405180830381600087803b15801561124b57600080fd5b505af115801561125f573d6000803e3d6000fd5b50505050600061013660009054906101000a90046001600160a01b03166001600160a01b031663bd985e7b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190614362565b9050600061013660009054906101000a90046001600160a01b03166001600160a01b031663d63843cd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190614362565b9050611374308860008051602061495e8339815191526128bc565b61138d30886000805160206149178339815191526128bc565b6113b882887f3c2519c4487d47714872f92cf90a50c25f5deaec2789dc2a497b1272df611db66128bc565b6113e381887ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c6128bc565b6113fc818860008051602061495e8339815191526128bc565b611415308460008051602061495e8339815191526128c9565b61142e30846000805160206149178339815191526128c9565b61145982847f3c2519c4487d47714872f92cf90a50c25f5deaec2789dc2a497b1272df611db66128c9565b61148481847ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c6128c9565b61149d818460008051602061495e8339815191526128c9565b61013580546001600160a01b0319166001600160a01b0389811691821790925560405186815290918516907f5c8d3e9fe84e0f85317f601c2eff7a3a4aa90296e11790c09ea95faa31bfa9809060200160405180910390a350505050505050565b7f0dcbfb19b09fb8ff4e9af583d4b8e9c8127cc1b26529b4d96dd3b7e77808837261152881612848565b61012f80546001600160a01b0319166001600160a01b0384169081179091556040519081527f3b25c5d3870ec0eac28822b177f18c9130233ade5b7f857c6a224a507c37fc4e906020015b60405180910390a15050565b60008051602061495e83398151915261159781612848565b61013554600160a01b900460ff16156115c35760405163096859a160e01b815260040160405180910390fd5b6101345460405163db50675560e01b81526000916001600160a01b03169063db506755906115fb90889088908b9089906004016143c8565b6000604051808303816000875af115801561161a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261164291908101906143f8565b9050856001600160a01b03167fcc24a2d333c07dc234216e555c012293966291d7f47f69dcfc9575357e2a4f3886868487604051611683949392919061449d565b60405180910390a2505050505050565b600054610100900460ff16158080156116b35750600054600160ff909116105b806116cd5750303b1580156116cd575060005460ff166001145b6116e95760405162461bcd60e51b8152600401610b47906144ff565b6000805460ff19166001179055801561170c576000805461ff0019166101001790555b611719602085018561455e565b60ff1660011461173e57836040516384833d6760e01b8152600401610b479190614579565b6002611750604086016020870161455e565b60ff161161176d5760016101325561176d621574e360e91b612cd1565b80156117b4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156118035760405162461bcd60e51b8152600401610b47906142ca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661184c6000805160206148f7833981519152546001600160a01b031690565b6001600160a01b0316146118725760405162461bcd60e51b8152600401610b4790614316565b61187b82612a49565b61188782826001612a73565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461192b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610b47565b506000805160206148f783398151915290565b6060610131805461194e906145ac565b80601f016020809104026020016040519081016040528092919081815260200182805461197a906145ac565b80156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b5050505050905090565b7f1e12de9297ca34945f202b437435f6658677eb661ea685d755d366e9ecd970276119fb81612848565b61013554600160a01b900460ff1615611a275760405163096859a160e01b815260040160405180910390fd5b60008381526101336020526040908190205490517f4f4be84bcfdd4db7c97110a111f9990d28b38e724287747cf4ab06f279e0fb8791611a76916001600160a01b0390911690859087906142a6565b60405180910390a1506000918252610133602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b610136546001600160a01b03163314611adc57604051630b5ec4a960e11b8152336004820152602401610b47565b61013554600160a01b900460ff1615611b085760405163096859a160e01b815260040160405180910390fd5b610135805460ff60a01b1916600160a01b9081179182905560405133927f3d5dcf88a66eaa27db67b694e554c9108e30665472c8c08216abbed0b3f136f592611b5a92910460ff161515815260200190565b60405180910390a2565b600080516020614917833981519152611b7c81612848565b61013554600160a01b900460ff1615611ba85760405163096859a160e01b815260040160405180910390fd5b82611bc657604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b038416611c0257823414611bfd576040516301abd56160e41b815260048101849052346024820152604401610b47565b611c2a565b3415611c2a576040516301abd56160e41b815260006004820152346024820152604401610b47565b61013454604051634a9227db60e11b8152600481018890523360248201526001600160a01b038681166044830152878116606483015260848201869052909116906395244fb690349060a4016000604051808303818588803b158015611c8f57600080fd5b505af1158015611ca3573d6000803e3d6000fd5b5050604080518a8152602081018890529081018690526001600160a01b03881693503392507f92e212113edeccc76b4cc394cdda02e804dfcf81c1b7649c794592dc9fe76d9491506060015b60405180910390a3505050505050565b7fb85109705a29600da7da0d2e241bebc53a4100e48a7e340455419b3a38b6573c611d2981612848565b61013554600160a01b900460ff1615611d555760405163096859a160e01b815260040160405180910390fd5b6001600160a01b038216611d8757604051634726455360e11b81526001600160a01b0383166004820152602401610b47565b610134546040516001600160a01b038085169216907febdbe863639dfcbf8017892ff3c10014a7e51f7a348e56877276fbcf7e4afd3090600090a35061013480546001600160a01b0319166001600160a01b0392909216919091179055565b7ffaf505be9907aa6951c2ebe5b0312f4980e14f21912ed355372103cc8bd683bc611e1081612848565b611e1984612cd1565b611e238383612d50565b604080516001600160e01b0319808716825280861660208301528416918101919091527ffc72fd547553f7a663e0048e590afc9c47b56a4242e960f31cf4c62e23d308b9906060016117ab565b606060006002610132541415611e99576040516306fda65d60e31b815260040160405180910390fd5b6002610132557fbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d611ec981612848565b610100851115611eec576040516308e3b1eb60e11b815260040160405180910390fd5b846001600160401b03811115611f0457611f046139a5565b604051908082528060200260200182016040528015611f3757816020015b6060815260200190600190039081611f225790505b50925060008060005b878110156120d2575a92506000808a8a84818110611f6057611f606141fe565b9050602002810190611f7291906145e7565b611f80906020810190613c3a565b6001600160a01b03168b8b85818110611f9b57611f9b6141fe565b9050602002810190611fad91906145e7565b602001358c8c86818110611fc357611fc36141fe565b9050602002810190611fd591906145e7565b611fe3906040810190614607565b604051611ff192919061464d565b60006040518083038185875af1925050503d806000811461202e576040519150601f19603f3d011682016040523d82523d6000602084013e612033565b606091505b50915091505a9350600160ff84161b891661206e57816120695760405163a6a7dbbd60e01b815260048101849052602401610b47565b6120aa565b816120aa5761207e60408661465d565b84101561209e576040516307099c5360e21b815260040160405180910390fd5b600160ff84161b871896505b808884815181106120bd576120bd6141fe565b60209081029190910101525050600101611f40565b50336001600160a01b03167fd4e57c2049f004fb297ef78591cd409503ceb6b2c722d7ffed032fc99e5f3b588a8a8a8a898b604051612116969594939291906146a8565b60405180910390a2505060016101325550909590945092505050565b60008051602061495e83398151915261214a81612848565b610d7c85858585612d82565b60008051602061495e83398151915261216e81612848565b61013554600160a01b900460ff161561219a5760405163096859a160e01b815260040160405180910390fd5b6117b48484846128bc565b60008051602061495e8339815191526121bd81612848565b6117b48484846128c9565b7f06d294bc8cbad2e393408b20dd019a772661f60b8d633e56761157cb1ec85f8c6121f281612848565b61188782612f57565b60008051602061495e83398151915261221381612848565b61013554600160a01b900460ff161561223f5760405163096859a160e01b815260040160405180910390fd5b6001600160a01b03821661227157604051634726455360e11b81526001600160a01b0383166004820152602401610b47565b610136546040516001600160a01b038085169216907fc4e70bdbe924b1d891091b2de92612176266c18efda78a020296e94873573bb890600090a35061013680546001600160a01b0319166001600160a01b0392909216919091179055565b60008051602061495e8339815191526122e881612848565b60005b828110156117b4576000848483818110612307576123076141fe565b905060a0020180360381019061231d91906147b4565b905060008151600281111561233457612334614290565b1415612356576123518160200151826040015183608001516128bc565b6123bf565b60018151600281111561236b5761236b614290565b1415612388576123518160200151826040015183608001516128c9565b60028151600281111561239d5761239d614290565b14156123bf576123bf8160200151826040015183608001518460600151612d82565b506001016122eb565b600054610100900460ff16158080156123e85750600054600160ff909116105b806124025750303b158015612402575060005460ff166001145b61241e5760405162461bcd60e51b8152600401610b47906144ff565b6000805460ff191660011790558015612441576000805461ff0019166101001790555b6001610132556124576367df4c8b60e01b612cd1565b612467630b135d3f60e11b612cd1565b612477637034731b60e01b612cd1565b612486621574e360e91b612cd1565b61248e612fac565b6124988787613001565b6124a184612f57565b6124ab838361287d565b6124b485613032565b6124d97007472616e736665724f776e65727368697607c1b63372d96d360e01b6130a6565b6101368054336001600160a01b03199182161790915561013580549091166001600160a01b038716179055801561254a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6000805160206148d783398151915261256b81612848565b610c278383613001565b60008051602061491783398151915261258d81612848565b61013554600160a01b900460ff16156125b95760405163096859a160e01b815260040160405180910390fd5b826125d757604051631f2a200560e01b815260040160405180910390fd5b34156125ff576040516301abd56160e41b815260006004820152346024820152604401610b47565b61013454604051631370ca1160e11b8152600481018790526001600160a01b038681166024830152336044830152606482018690526084820185905260009216906326e194229060a4016020604051808303816000875af1158015612668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268c9190614842565b9050806126eb57604080518781526020810186905242818301526060810185905290516001600160a01b0387169133917f10716fa1320b2992125c17007fddd124399c3ea970930427222389f980585f899181900360800190a3612736565b60408051878152602081018690529081018490526001600160a01b0386169033907f521f5e5e539acf8d5620309c1ea9b87be10785cd4d69a8ddf77dae473ac2b6b990606001611cef565b505050505050565b7f956f639cc5d9b1185c6be2abc22d2b4c92d6f91995f7c187b780a903a6305e0c61276881612848565b61013554600160a01b900460ff16156127945760405163096859a160e01b815260040160405180910390fd5b6101345460405163f6be71d160e01b8152600481018490526001600160a01b039091169063f6be71d190602401600060405180830381600087803b1580156127db57600080fd5b505af1158015612736573d6000803e3d6000fd5b600081815261012d6020526040812054610cbc90849060e01b612bde565b61013554600090600160a01b900460ff161561283c5760405163096859a160e01b815260040160405180910390fd5b610dc385858585610d83565b61013554600160a01b900460ff16156128745760405163096859a160e01b815260040160405180910390fd5b6110178161313f565b61288a6101318383613857565b507fe9b617ecb5f63f6a9ccd8d4d5fa0d7b2ef9b17ce3f48e6b135808d6a40e677428282604051611573929190614864565b610c278383836002612d82565b60006128d68484846131a5565b600081815260c960205260409020549091506001600160a01b0316156117b457600081815260c9602090815260409182902080546001600160a01b031916905590516001600160a01b038681168252851691339185917f3ca48185ec3f6e47e24db18b13f1c65b1ce05da1659f9c1c4fe717dda5f67524910160405180910390a450505050565b60008060c9600061296f8888886131a5565b81526020810191909152604001600020546001600160a01b031690508061299a576000915050610dc6565b6001600160a01b038116600214156129b6576001915050610dc6565b6040516302675fdd60e41b81526001600160a01b03821690632675fdd0906129e8908990899089908990600401614878565b602060405180830381865afa925050508015612a21575060408051601f3d908101601f19168201909252612a1e91810190614842565b60015b612a2a57612a3d565b8015612a3b57600192505050610dc6565b505b50600095945050505050565b7f1f53edd44352e5d15bad2b29233baa93bcd595e09457780bc7c5445bbbe751cc61188781612848565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612aa657610c2783613205565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612b00575060408051601f3d908101601f19168201909252612afd918101906148ab565b60015b612b635760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610b47565b6000805160206148f78339815191528114612bd25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610b47565b50610c278383836132a1565b6001600160a01b038216600090815261012e602090815260409182902054825130606090811b6001600160601b03199081168386015246603484015296901b90951660548601526001600160e01b03199093166068850152606c8085019390935281518085039093018352608c9093019052805191012090565b6000612c658484846132c6565b9050806001600160a01b0316856001600160a01b031614612cac576040516310b5d43760e21b81526001600160a01b03808716600483015282166024820152604401610b47565b610d7c856001600160a01b0316600090815261012e6020526040902080546001019055565b6001600160e01b03198082161415612d2b5760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e74657266616365206964000000006044820152606401610b47565b6001600160e01b0319166000908152603360205260409020805460ff19166001179055565b6001600160e01b031991909116600090815260fb60205260409020805463ffffffff191660e09290921c919091179055565b6001600160a01b03848116148015612da257506001600160a01b03838116145b15612dc0576040516385f1ba9960e01b815260040160405180910390fd5b6001600160a01b038481161480612ddf57506001600160a01b03838116145b15612e55576000612def83613340565b905060008051602061495e833981519152831480612e0a5750805b15612e28576040516324159e5b60e01b815260040160405180910390fd5b6001600160a01b03821660021415612e53576040516324aadf4360e21b815260040160405180910390fd5b505b6000612e628585856131a5565b600081815260c960205260409020549091506001600160a01b03168281612efb57600083815260c9602090815260409182902080546001600160a01b0319166001600160a01b038581169190911790915582518a8216815287821692810192909252881691339188917f0f579ad49235a8c1fd9041427e7067b1eb10926bbed380bf6fabc73e0e807644910160405180910390a461254a565b806001600160a01b0316826001600160a01b03161461254a576040516305cc3c4f60e11b81526001600160a01b03808916600483015280881660248301526044820187905280841660648301528216608482015260a401610b47565b61013080546001600160a01b0319166001600160a01b0383169081179091556040519081527fd91237492a9e30cd2faf361fc103998a382ff0ec2b1b07dc1cbebb76ae2f1ea29060200160405180910390a150565b612fbc630a85bd0160e11b612cd1565b612fcc630271189760e51b612cd1565b612fdd630a85bd0160e11b80612d50565b612fee63f23a6e6160e01b80612d50565b612fff63bc197c8160e01b80612d50565b565b7fbb39ebb37e60fb5d606ffdb749d2336e56b88e6c88c4bd6513b308f643186eed8282604051611573929190614864565b600054610100900460ff1661309d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610b47565b61101781613427565b816130cc81600090815261012d602052604090205460e01b6001600160e01b0319161590565b6131185760405162461bcd60e51b815260206004820152601d60248201527f5665726966794b65793a20616c726561647920726567697374657265640000006044820152606401610b47565b600090815261012d60205260409020805463ffffffff191660e09290921c91909117905550565b6131823033836000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d8392505050565b61101757303382604051631e09743f60e01b8152600401610b47939291906142a6565b604051692822a926a4a9a9a4a7a760b11b60208201526001600160601b0319606084811b8216602a84015285901b16603e820152605281018290526000906072016040516020818303038152906040528051906020012090509392505050565b6001600160a01b0381163b6132725760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b47565b6000805160206148f783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6132aa83613440565b6000825111806132b75750805b15610c27576117b48383613480565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c849052603c812061333784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085939250506134a59050565b95945050505050565b60007fbf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78d82148061338f57507f1f53edd44352e5d15bad2b29233baa93bcd595e09457780bc7c5445bbbe751cc82145b806133a757506000805160206148d783398151915282145b806133d157507f06d294bc8cbad2e393408b20dd019a772661f60b8d633e56761157cb1ec85f8c82145b806133fb57507f0dcbfb19b09fb8ff4e9af583d4b8e9c8127cc1b26529b4d96dd3b7e77808837282145b80610b975750507ffaf505be9907aa6951c2ebe5b0312f4980e14f21912ed355372103cc8bd683bc1490565b611017308260008051602061495e8339815191526128bc565b61344981613205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610cbc8383604051806060016040528060278152602001614937602791396134c9565b60008060006134b48585613541565b915091506134c181613587565b509392505050565b6060600080856001600160a01b0316856040516134e691906148c4565b600060405180830381855af49150503d8060008114613521576040519150601f19603f3d011682016040523d82523d6000602084013e613526565b606091505b5091509150613537868383876136d5565b9695505050505050565b6000808251604114156135785760208301516040840151606085015160001a61356c8782858561374b565b94509450505050613580565b506000905060025b9250929050565b600081600481111561359b5761359b614290565b14156135a45750565b60018160048111156135b8576135b8614290565b14156136065760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b47565b600281600481111561361a5761361a614290565b14156136685760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b47565b600381600481111561367c5761367c614290565b14156110175760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b47565b6060831561374157825161373a576001600160a01b0385163b61373a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b47565b5081610dc6565b610dc6838361380f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156137825750600090506003613806565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156137d6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166137ff57600060019250925050613806565b9150600090505b94509492505050565b81511561381f5781518083602001fd5b8060405162461bcd60e51b8152600401610b479190613e26565b60405180606001604052806003906020820280368337509192915050565b828054613863906145ac565b90600052602060002090601f01602090048101928261388557600085556138cb565b82601f1061389e5782800160ff198235161785556138cb565b828001600101855582156138cb579182015b828111156138cb5782358255916020019190600101906138b0565b506138d79291506138db565b5090565b5b808211156138d757600081556001016138dc565b6001600160e01b03198116811461101757600080fd5b60006020828403121561391857600080fd5b8135610cbc816138f0565b60008083601f84011261393557600080fd5b5081356001600160401b0381111561394c57600080fd5b60208301915083602082850101111561358057600080fd5b6000806020838503121561397757600080fd5b82356001600160401b0381111561398d57600080fd5b61399985828601613923565b90969095509350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156139e3576139e36139a5565b604052919050565b600082601f8301126139fc57600080fd5b81356001600160401b03811115613a1557613a156139a5565b613a28601f8201601f19166020016139bb565b818152846020838601011115613a3d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613a6d57600080fd5b8235915060208301356001600160401b03811115613a8a57600080fd5b613a96858286016139eb565b9150509250929050565b600060208284031215613ab257600080fd5b5035919050565b6001600160a01b038116811461101757600080fd5b600080600060408486031215613ae357600080fd5b8335613aee81613ab9565b925060208401356001600160401b0380821115613b0a57600080fd5b818601915086601f830112613b1e57600080fd5b813581811115613b2d57600080fd5b876020606083028501011115613b4257600080fd5b6020830194508093505050509250925092565b60008060008060808587031215613b6b57600080fd5b8435613b7681613ab9565b93506020850135613b8681613ab9565b92506040850135915060608501356001600160401b03811115613ba857600080fd5b613bb4878288016139eb565b91505092959194509250565b60608101818360005b6003811015613beb57815160ff16835260209283019290910190600101613bc9565b50505092915050565b60008060008060808587031215613c0a57600080fd5b8435613c1581613ab9565b93506020850135613c2581613ab9565b93969395505050506040820135916060013590565b600060208284031215613c4c57600080fd5b8135610cbc81613ab9565b60008060008060608587031215613c6d57600080fd5b8435613c7881613ab9565b935060208501356001600160401b03811115613c9357600080fd5b613c9f87828801613923565b9598909750949560400135949350505050565b60008083601f840112613cc457600080fd5b5081356001600160401b03811115613cdb57600080fd5b6020830191508360208260051b850101111561358057600080fd5b60008060008060608587031215613d0c57600080fd5b8435613d1781613ab9565b935060208501356001600160401b03811115613d3257600080fd5b613c9f87828801613cb2565b600080600060808486031215613d5357600080fd5b6060840185811115613d6457600080fd5b849350356001600160401b03811115613d7c57600080fd5b613d8886828701613923565b9497909650939450505050565b60008060408385031215613da857600080fd5b8235613db381613ab9565b915060208301356001600160401b03811115613a8a57600080fd5b60005b83811015613de9578181015183820152602001613dd1565b838111156117b45750506000910152565b60008151808452613e12816020860160208601613dce565b601f01601f19169290920160200192915050565b602081526000610cbc6020830184613dfa565b60008060408385031215613e4c57600080fd5b823591506020830135613e5e81613ab9565b809150509250929050565b600080600080600060a08688031215613e8157600080fd5b853594506020860135613e9381613ab9565b93506040860135613ea381613ab9565b94979396509394606081013594506080013592915050565b600080600060608486031215613ed057600080fd5b8335613edb816138f0565b92506020840135613eeb816138f0565b91506040840135613efb816138f0565b809150509250925092565b60008060008060608587031215613f1c57600080fd5b8435935060208501356001600160401b03811115613d3257600080fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613f81578284038952613f6f848351613dfa565b98850198935090840190600101613f57565b5091979650505050505050565b604081526000613fa16040830185613f39565b90508260208301529392505050565b60008060008060808587031215613fc657600080fd5b8435613fd181613ab9565b93506020850135613fe181613ab9565b9250604085013591506060850135613ff881613ab9565b939692955090935050565b60008060006060848603121561401857600080fd5b833561402381613ab9565b9250602084013561403381613ab9565b929592945050506040919091013590565b6000806020838503121561405757600080fd5b82356001600160401b038082111561406e57600080fd5b818501915085601f83011261408257600080fd5b81358181111561409157600080fd5b86602060a0830285010111156140a657600080fd5b60209290920196919550909350505050565b600080600080600080608087890312156140d157600080fd5b86356001600160401b03808211156140e857600080fd5b6140f48a838b01613923565b90985096506020890135915061410982613ab9565b90945060408801359061411b82613ab9565b9093506060880135908082111561413157600080fd5b5061413e89828a01613923565b979a9699509497509295939492505050565b6000806000806080858703121561416657600080fd5b843593506020850135613c2581613ab9565b6000806040838503121561418b57600080fd5b823561419681613ab9565b946020939093013593505050565b6001600160a01b0383168152604060208201819052600090610dc690830184613dfa565b828152604060208201526000610dc66040830184613dfa565b6000602082840312156141f357600080fd5b8151610cbc816138f0565b634e487b7160e01b600052603260045260246000fd5b80356003811061422357600080fd5b919050565b60006060828403121561423a57600080fd5b604051606081018181106001600160401b038211171561425c5761425c6139a5565b60405261426883614214565b8152602083013561427881613ab9565b60208201526040928301359281019290925250919050565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561437457600080fd5b8151610cbc81613ab9565b8183526000602080850194508260005b858110156143bd5781356143a281613ab9565b6001600160a01b03168752958201959082019060010161438f565b509495945050505050565b6060815260006143dc60608301868861437f565b6001600160a01b03949094166020830152506040015292915050565b6000602080838503121561440b57600080fd5b82516001600160401b038082111561442257600080fd5b818501915085601f83011261443657600080fd5b815181811115614448576144486139a5565b8060051b91506144598483016139bb565b818152918301840191848101908884111561447357600080fd5b938501935b8385101561449157845182529385019390850190614478565b98975050505050505050565b6060815260006144b160608301868861437f565b82810360208481019190915285518083528682019282019060005b818110156144e8578451835293830193918301916001016144cc565b505080935050505082604083015295945050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b803560ff8116811461422357600080fd5b60006020828403121561457057600080fd5b610cbc8261454d565b60608101818360005b6003811015613beb5760ff6145968361454d565b1683526020928301929190910190600101614582565b600181811c908216806145c057607f821691505b602082108114156145e157634e487b7160e01b600052602260045260246000fd5b50919050565b60008235605e198336030181126145fd57600080fd5b9190910192915050565b6000808335601e1984360301811261461e57600080fd5b8301803591506001600160401b0382111561463857600080fd5b60200191503681900382131561358057600080fd5b8183823760009101908152919050565b60008261467a57634e487b7160e01b600052601260045260246000fd5b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600060a08201888352602060a0818501528188835260c08501905060c08960051b86010192508960005b8a8110156147855786850360bf190183528135368d9003605e190181126146f857600080fd5b8c016060813561470781613ab9565b6001600160a01b03168752818601358688015260408083013536849003601e1901811261473357600080fd5b830180356001600160401b0381111561474b57600080fd5b80360385131561475a57600080fd5b83838b015261476e848b01828b850161467f565b9950505094860194505050908301906001016146d2565b5050505085604084015284606084015282810360808401526147a78185613f39565b9998505050505050505050565b600060a082840312156147c657600080fd5b60405160a081018181106001600160401b03821117156147e8576147e86139a5565b6040526147f483614214565b8152602083013561480481613ab9565b6020820152604083013561481781613ab9565b6040820152606083013561482a81613ab9565b60608201526080928301359281019290925250919050565b60006020828403121561485457600080fd5b81518015158114610cbc57600080fd5b602081526000610dc660208301848661467f565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061353790830184613dfa565b6000602082840312156148bd57600080fd5b5051919050565b600082516145fd818460208701613dce56fe4707e94b25cfce1a7c363508fbb838c35864388ad77284b248282b9746982b9b360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcd9fbc2876edcf92bec7f681869650c5602e553b83c5cdb94ab6e2d97578e4db2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564815fe80e4b37c8582a3b773d1d7071f983eacfd56b5965db654f3087c25ada33a26469706673582212202cd1013f82d269b09672210bc3c2fbcb1a62b19d73046d88eb11d3c05d0d361364736f6c634300080a003360a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000f1565b600054610100900460ff16156200009d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000ef576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516123da620001296000396000818161072001528181610760015281816107e90152818161082901526108a501526123da6000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063c0c53b8b1161006f578063c0c53b8b1461036a578063c2b6b58c1461038a578063c9c4bfca146103a5578063ce44ab26146103d9578063db506755146103f9578063f6be71d11461041957600080fd5b806370a08231146102e257806395244fb614610302578063aab0bd9714610315578063bd985e7b14610336578063beabacc81461035757600080fd5b806341de6830116100fd57806341de6830146102535780634a6a3d101461026f5780634f1ef2861461029057806352d1902d146102a35780635c60da1b146102b857806360e7a693146102cd57600080fd5b806301ffc9a7146101945780630fb5a6b4146101c957806326e19422146101ee5780633659cfe6146102015780634162169f1461022157600080fd5b3661018f5760c9546001600160a01b0316331461018d5760c9546001600160a01b03165b604051635b6d824b60e01b81526001600160a01b0390911660048201523360248201526044015b60405180910390fd5b005b600080fd5b3480156101a057600080fd5b506101b46101af366004611cf3565b610439565b60405190151581526020015b60405180910390f35b3480156101d557600080fd5b506101e06101645481565b6040519081526020016101c0565b6101b46101fc366004611d32565b61048b565b34801561020d57600080fd5b5061018d61021c366004611d84565b610715565b34801561022d57600080fd5b5060c9546001600160a01b03165b6040516001600160a01b0390911681526020016101c0565b34801561025f57600080fd5b5060006040516101c09190611da1565b34801561027b57600080fd5b506101605461023b906001600160a01b031681565b61018d61029e366004611ddf565b6107de565b3480156102af57600080fd5b506101e0610898565b3480156102c457600080fd5b5061023b61094b565b3480156102d957600080fd5b506101b461095a565b3480156102ee57600080fd5b506101e06102fd366004611d84565b6109e1565b61018d610310366004611ea3565b610a4c565b34801561032157600080fd5b5061015f5461023b906001600160a01b031681565b34801561034257600080fd5b506101615461023b906001600160a01b031681565b61018d610365366004611efe565b610b83565b34801561037657600080fd5b5061018d610385366004611f3f565b610ceb565b34801561039657600080fd5b50610165546101b49060ff1681565b3480156103b157600080fd5b506101e07f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f581565b3480156103e557600080fd5b506101e06103f4366004611f8a565b610eaa565b61040c610407366004611fba565b610eeb565b6040516101c09190612046565b34801561042557600080fd5b5061018d61043436600461208a565b611237565b60006001600160e01b0319821663041de68360e41b148061046a57506001600160e01b031982166352d1902d60e01b145b8061048557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061049f60c9546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146104c85760c9546001600160a01b031661015d565b6104d0611260565b6104da84846112bc565b156106fd576001600160a01b038516610567576000846001600160a01b03168460405160006040518083038185875af1925050503d806000811461053a576040519150601f19603f3d011682016040523d82523d6000602084013e61053f565b606091505b5050905080610561576040516327fcd9d160e01b815260040160405180910390fd5b506106f5565b610160546001600160a01b038681169116141561068057851561060d576000868152610162602090815260408083206001600160a01b0388168452909152902054808411156105d357604051633fb8b17960e01b81526004810188905260248101829052604401610184565b6000878152610162602090815260408083206001600160a01b0389168452909152812080548692906106069084906120b9565b9091555050505b61015f54604051636519b4e360e11b81526001600160a01b03868116600483015260248201869052604482018590529091169063ca3369c690606401600060405180830381600087803b15801561066357600080fd5b505af1158015610677573d6000803e3d6000fd5b505050506106f5565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af11580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f391906120d0565b505b506001610701565b5060005b61070c600161012d55565b95945050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561075e5760405162461bcd60e51b8152600401610184906120f2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661079061147a565b6001600160a01b0316146107b65760405162461bcd60e51b81526004016101849061213e565b6107bf81611496565b604080516000808252602082019092526107db918391906114d3565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108275760405162461bcd60e51b8152600401610184906120f2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661085961147a565b6001600160a01b03161461087f5760405162461bcd60e51b81526004016101849061213e565b61088882611496565b610894828260016114d3565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109385760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610184565b5060008051602061235e83398151915290565b600061095561147a565b905090565b610160546040516370a0823160e01b815230600482015260009147159183916001600160a01b0316906370a0823190602401602060405180830381865afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd919061218a565b1590508180156109da5750805b9250505090565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610485919061218a565b60c9546001600160a01b03163314610a6f5760c9546001600160a01b031661015d565b610a77611260565b6001600160a01b03831615610b71578415610b5c576101615460405163064f83c960e31b81526001600160a01b0386811660048301529091169063327c1e4890602401602060405180830381865afa158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb91906120d0565b610b235760405163322dd90d60e21b81526001600160a01b0385166004820152602401610184565b6000858152610162602090815260408083206001600160a01b038616845290915281208054839290610b569084906121a3565b90915550505b610b716001600160a01b03841685308461163e565b610b7c600161012d55565b5050505050565b60c9546001600160a01b03163314610ba65760c9546001600160a01b031661015d565b610bae611260565b6001600160a01b038316610c36576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c09576040519150601f19603f3d011682016040523d82523d6000602084013e610c0e565b606091505b5050905080610c30576040516312171d8360e31b815260040160405180910390fd5b50610cdb565b610160546001600160a01b0384811691161415610c665760405163366af52b60e11b815260040160405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd991906120d0565b505b610ce6600161012d55565b505050565b600054610100900460ff1615808015610d0b5750600054600160ff909116105b80610d255750303b158015610d25575060005460ff166001145b610d885760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610184565b6000805460ff191660011790558015610dab576000805461ff0019166101001790555b610db3611698565b610dbc846116c9565b6001600160a01b038416610dee57604051634726455360e11b81526001600160a01b0385166004820152602401610184565b6001600160a01b038316610e2057604051634726455360e11b81526001600160a01b0384166004820152602401610184565b61016080546001600160a01b038086166001600160a01b03199283161790925561015f8054928516928216929092179091556101618054909116331790558015610ea4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6101655460009060ff1615610ec157506000610485565b506000918252610162602090815260408084206001600160a01b0393909316845291905290205490565b6060610eff60c9546001600160a01b031690565b6001600160a01b0316336001600160a01b031614610f285760c9546001600160a01b031661015d565b610f30611260565b60008467ffffffffffffffff811115610f4b57610f4b611dc9565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b5090506000805b86811015611212576000888883818110610f9757610f976121bb565b9050602002016020810190610fac9190611d84565b90506001600160a01b038116611058574792506000876001600160a01b03168460405160006040518083038185875af1925050503d806000811461100c576040519150601f19603f3d011682016040523d82523d6000602084013e611011565b606091505b5050905083858481518110611028576110286121bb565b60200260200101818152505080611052576040516327fcd9d160e01b815260040160405180910390fd5b5061120c565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c0919061218a565b9250821561120557610160546001600160a01b03828116911614156111715761015f54604051636519b4e360e11b81526001600160a01b03898116600483015260248201869052604482018990529091169063ca3369c690606401600060405180830381600087803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b5050505082848381518110611160576111606121bb565b602002602001018181525050611205565b60405163a9059cbb60e01b81526001600160a01b0388811660048301526024820185905282169063a9059cbb906044016020604051808303816000875af11580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906120d0565b50828483815181106111f8576111f86121bb565b6020026020010181815250505b8160010191505b50610f7b565b5050610165805460ff19166001179055905061122f600161012d55565b949350505050565b60c9546001600160a01b0316331461125a5760c9546001600160a01b031661015d565b61016455565b600261012d5414156112b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610184565b600261012d55565b600061016454600014611469576001600160a01b038316600090815261016360209081526040808320858452909152812080546112f8906121d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611324906121d1565b80156113715780601f1061134657610100808354040283529160200191611371565b820191906000526020600020905b81548152906001019060200180831161135457829003601f168201915b5050505050905060004290508151600014156113ef57604080516001600160a01b038716602080830182905282840188905260608084018690528451808503909101815260809093018452600091825261016381528382208883528152929020815191926113e29290840190611c24565b5060009350505050610485565b600082806020019051810190611405919061220c565b9250505081610164548261141991906121a3565b111561143857604051630b5cfdfb60e11b815260040160405180910390fd5b6001600160a01b038616600090815261016360209081526040808320888452909152812061146591611ca8565b5050505b50600192915050565b600161012d55565b60008051602061235e833981519152546001600160a01b031690565b60c9547f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f590610894906001600160a01b03163033846000366116f9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561150657610ce6836117b5565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611560575060408051601f3d908101601f1916820190925261155d9181019061218a565b60015b6115c35760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610184565b60008051602061235e83398151915281146116325760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610184565b50610ce6838383611851565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ea4908590611876565b600054610100900460ff166116bf5760405162461bcd60e51b815260040161018490612243565b6116c761194b565b565b600054610100900460ff166116f05760405162461bcd60e51b815260040161018490612243565b6107db81611972565b604051637ef7c88360e11b81526001600160a01b0387169063fdef91069061172d908890889088908890889060040161228e565b602060405180830381865afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176e91906120d0565b6117ad57604051630cb6f8ed60e21b81526001600160a01b03808816600483015280871660248301528516604482015260648101849052608401610184565b505050505050565b6001600160a01b0381163b6118225760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610184565b60008051602061235e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61185a836119bb565b6000825111806118675750805b15610ce657610ea483836119fb565b60006118cb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a279092919063ffffffff16565b90508051600014806118ec5750808060200190518101906118ec91906120d0565b610ce65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610184565b600054610100900460ff166114725760405162461bcd60e51b815260040161018490612243565b600054610100900460ff166119995760405162461bcd60e51b815260040161018490612243565b60c980546001600160a01b0319166001600160a01b0392909216919091179055565b6119c4816117b5565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611a20838360405180606001604052806027815260200161237e60279139611a36565b9392505050565b606061122f8484600085611aae565b6060600080856001600160a01b031685604051611a53919061230e565b600060405180830381855af49150503d8060008114611a8e576040519150601f19603f3d011682016040523d82523d6000602084013e611a93565b606091505b5091509150611aa486838387611b89565b9695505050505050565b606082471015611b0f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610184565b600080866001600160a01b03168587604051611b2b919061230e565b60006040518083038185875af1925050503d8060008114611b68576040519150601f19603f3d011682016040523d82523d6000602084013e611b6d565b606091505b5091509150611b7e87838387611b89565b979650505050505050565b60608315611bf5578251611bee576001600160a01b0385163b611bee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610184565b508161122f565b61122f8383815115611c0a5781518083602001fd5b8060405162461bcd60e51b8152600401610184919061232a565b828054611c30906121d1565b90600052602060002090601f016020900481019282611c525760008555611c98565b82601f10611c6b57805160ff1916838001178555611c98565b82800160010185558215611c98579182015b82811115611c98578251825591602001919060010190611c7d565b50611ca4929150611cde565b5090565b508054611cb4906121d1565b6000825580601f10611cc4575050565b601f0160209004906000526020600020908101906107db91905b5b80821115611ca45760008155600101611cdf565b600060208284031215611d0557600080fd5b81356001600160e01b031981168114611a2057600080fd5b6001600160a01b03811681146107db57600080fd5b600080600080600060a08688031215611d4a57600080fd5b853594506020860135611d5c81611d1d565b93506040860135611d6c81611d1d565b94979396509394606081013594506080013592915050565b600060208284031215611d9657600080fd5b8135611a2081611d1d565b6020810160048310611dc357634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611df257600080fd5b8235611dfd81611d1d565b9150602083013567ffffffffffffffff80821115611e1a57600080fd5b818501915085601f830112611e2e57600080fd5b813581811115611e4057611e40611dc9565b604051601f8201601f19908116603f01168101908382118183101715611e6857611e68611dc9565b81604052828152886020848701011115611e8157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080600060a08688031215611ebb57600080fd5b853594506020860135611ecd81611d1d565b93506040860135611edd81611d1d565b92506060860135611eed81611d1d565b949793965091946080013592915050565b600080600060608486031215611f1357600080fd5b8335611f1e81611d1d565b92506020840135611f2e81611d1d565b929592945050506040919091013590565b600080600060608486031215611f5457600080fd5b8335611f5f81611d1d565b92506020840135611f6f81611d1d565b91506040840135611f7f81611d1d565b809150509250925092565b60008060408385031215611f9d57600080fd5b823591506020830135611faf81611d1d565b809150509250929050565b60008060008060608587031215611fd057600080fd5b843567ffffffffffffffff80821115611fe857600080fd5b818701915087601f830112611ffc57600080fd5b81358181111561200b57600080fd5b8860208260051b850101111561202057600080fd5b6020928301965094505085013561203681611d1d565b9396929550929360400135925050565b6020808252825182820181905260009190848201906040850190845b8181101561207e57835183529284019291840191600101612062565b50909695505050505050565b60006020828403121561209c57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156120cb576120cb6120a3565b500390565b6000602082840312156120e257600080fd5b81518015158114611a2057600080fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561219c57600080fd5b5051919050565b600082198211156121b6576121b66120a3565b500190565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806121e557607f821691505b6020821081141561220657634e487b7160e01b600052602260045260246000fd5b50919050565b60008060006060848603121561222157600080fd5b835161222c81611d1d565b602085015160409095015190969495509392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b60005b838110156122fd5781810151838201526020016122e5565b83811115610ea45750506000910152565b600082516123208184602087016122e2565b9190910192915050565b60208152600082518060208401526123498160408501602087016122e2565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207b11064b905fd2a2a432553dd01206d5be6124f786668fce7a7a7a89105586fc64736f6c634300080a003360806040526040516107353803806107358339810160408190526100229161031e565b61002e82826000610035565b505061043b565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161070e602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ec565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a0578251610299576001600160a01b0385163b6102995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102aa565b6102aa83836102b2565b949350505050565b8151156102c25781518083602001fd5b8060405162461bcd60e51b81526004016101489190610408565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561030d5781810151838201526020016102f5565b838111156100645750506000910152565b6000806040838503121561033157600080fd5b82516001600160a01b038116811461034857600080fd5b60208401519092506001600160401b038082111561036557600080fd5b818501915085601f83011261037957600080fd5b81518181111561038b5761038b6102dc565b604051601f8201601f19908116603f011681019083821181831017156103b3576103b36102dc565b816040528281528860208487010111156103cc57600080fd5b6103dd8360208301602088016102f2565b80955050505050509250929050565b600082516103fe8184602087016102f2565b9190910192915050565b60208152600082518060208401526104278160408501602087016102f2565b601f01601f19169190910160400192915050565b6102c48061044a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e8383604051806060016040528060278152602001610268602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e09190610218565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101ac5782516101a5576001600160a01b0385163b6101a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b6565b6101b683836101be565b949350505050565b8151156101ce5781518083602001fd5b8060405162461bcd60e51b815260040161019c9190610234565b60005b838110156102035781810151838201526020016101eb565b83811115610212576000848401525b50505050565b6000825161022a8184602087016101e8565b9190910192915050565b60208152600082518060208401526102538160408501602087016101e8565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a9f698d68232b615b72b9b7f1f9f56d19dc5862201480708599538e14744f83264736f6c634300080a0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122053d933805a95f21082f34d153c58d2c7f753694cd54d7bcea8862ff5ff55c30964736f6c634300080a0033