0x6101606040523480156200001257600080fd5b506040518060400160405280600c81526020016b52455649564544205045504560a01b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600c81526020016b52455649564544205045504560a01b81525060405180604001604052806005815260200164525045504560d81b8152508160039081620000a7919062000af0565b506004620000b6828262000af0565b50506005805460ff1916905550620000dc82600762000225602090811b62000f9317901c565b61012052620000f981600862000225602090811b62000f9317901c565b61014052815160208084019190912060e052815190820120610100524660a0526200018760e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506200019e60003362000275565b620001ca7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000275565b620001f333620001dd6012600a62000ccf565b620001ed90631908b10062000ce0565b6200031a565b6200021f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000275565b62000d9b565b600060208351101562000245576200023d8362000331565b90506200026f565b826200025c836200037d60201b62000fc41760201c565b9062000269908262000af0565b5060ff90505b92915050565b60008281526006602090815260408083206001600160a01b038516845290915290205460ff16620003165760008281526006602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002d53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6200031682826200038060201b62000fc71760201c565b600080829050601f8151111562000368578260405163305a27a960e01b81526004016200035f919062000cfa565b60405180910390fd5b8051620003758262000d4a565b179392505050565b90565b6200039782826200043360201b620010571760201c565b6001600160e01b03620003ab6200050e8216565b1115620004145760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084016200035f565b6200042d600d6200112a6200051460201b178362000529565b50505050565b6001600160a01b0382166200048b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200035f565b6200049960008383620006d2565b8060026000828254620004ad919062000d6f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200031660008383620006f9565b60025490565b600062000522828462000d6f565b9392505050565b82546000908190818115620005785760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526200058d565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350620005ab84868860201c565b9250600082118015620005d85750620005c362000711565b65ffffffffffff16816000015163ffffffff16145b156200062c57620005f4836200072e60201b620011361760201c565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055620006c8565b866040518060400160405280620006656200064c6200071160201b60201c565b65ffffffffffff166200079d60201b620011a31760201c565b63ffffffff16815260200162000686866200072e60201b620011361760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b620006dc62000804565b620006f4838383620006f460201b6200070b1760201c565b505050565b620006f48383836200084e60201b620012081760201c565b600062000729436200089a60201b6200123a1760201c565b905090565b60006001600160e01b03821115620007995760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016200035f565b5090565b600063ffffffff821115620007995760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016200035f565b60055460ff16156200084c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200035f565b565b62000866838383620006f460201b6200070b1760201c565b6001600160a01b038381166000908152600b6020526040808220548584168352912054620006f49291821691168362000903565b600065ffffffffffff821115620007995760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016200035f565b816001600160a01b0316836001600160a01b031614158015620009265750600081115b15620006f4576001600160a01b03831615620009b3576001600160a01b0383166000908152600c602090815260408220829162000970919062000a3e901b620012a1178562000529565b91509150846001600160a01b031660008051602062003a898339815191528383604051620009a8929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615620006f4576001600160a01b0382166000908152600c6020908152604082208291620009f7919062000514901b6200112a178562000529565b91509150836001600160a01b031660008051602062003a89833981519152838360405162000a2f929190918252602082015260400190565b60405180910390a25050505050565b600062000522828462000d85565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000a7757607f821691505b60208210810362000a9857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006f457600081815260208120601f850160051c8101602086101562000ac75750805b601f850160051c820191505b8181101562000ae85782815560010162000ad3565b505050505050565b81516001600160401b0381111562000b0c5762000b0c62000a4c565b62000b248162000b1d845462000a62565b8462000a9e565b602080601f83116001811462000b5c576000841562000b435750858301515b600019600386901b1c1916600185901b17855562000ae8565b600085815260208120601f198616915b8281101562000b8d5788860151825594840194600190910190840162000b6c565b508582101562000bac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000c1357816000190482111562000bf75762000bf762000bbc565b8085161562000c0557918102915b93841c939080029062000bd7565b509250929050565b60008262000c2c575060016200026f565b8162000c3b575060006200026f565b816001811462000c54576002811462000c5f5762000c7f565b60019150506200026f565b60ff84111562000c735762000c7362000bbc565b50506001821b6200026f565b5060208310610133831016604e8410600b841016171562000ca4575081810a6200026f565b62000cb0838362000bd2565b806000190482111562000cc75762000cc762000bbc565b029392505050565b60006200052260ff84168362000c1b565b80820281158282048414176200026f576200026f62000bbc565b600060208083528351808285015260005b8181101562000d295785810183015185820160400152820162000d0b565b506000604082860101526040601f19601f8301168501019250505092915050565b8051602080830151919081101562000a985760001960209190910360031b1b16919050565b808201808211156200026f576200026f62000bbc565b818103818111156200026f576200026f62000bbc565b60805160a05160c05160e051610100516101205161014051612c9362000df66000396000610a1e015260006109f3015260006117640152600061173c01526000611697015260006116c1015260006116eb0152612c936000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806370a082311161013b578063a217fddf116100b8578063d53913931161007c578063d539139314610530578063d547741f14610557578063dd62ed3e1461056a578063e63ab1e91461057d578063f1127ed8146105a457600080fd5b8063a217fddf146104dc578063a457c2d7146104e4578063a9059cbb146104f7578063c3cda5201461050a578063d505accf1461051d57600080fd5b80638e539e8c116100ff5780638e539e8c1461047c57806391d148541461048f57806391ddadf4146104a257806395d89b41146104c15780639ab24eb0146104c957600080fd5b806370a082311461040a57806379cc6790146104335780637ecebe00146104465780638456cb591461045957806384b0196e1461046157600080fd5b806339509351116101c95780634bf5d7e91161018d5780634bf5d7e914610378578063587cde1e146103805780635c19a95c146103c45780635c975abb146103d75780636fcfff45146103e257600080fd5b806339509351146103245780633a46b1a8146103375780633f4ba83a1461034a57806340c10f191461035257806342966c681461036557600080fd5b8063248a9ca311610210578063248a9ca3146102c25780632f2ff15d146102e5578063313ce567146102fa5780633644e5151461030957806336568abe1461031157600080fd5b806301ffc9a71461024d57806306fdde0314610275578063095ea7b31461028a57806318160ddd1461029d57806323b872dd146102af575b600080fd5b61026061025b36600461265c565b6105e1565b60405190151581526020015b60405180910390f35b61027d610618565b60405161026c91906126d6565b610260610298366004612705565b6106aa565b6002545b60405190815260200161026c565b6102606102bd36600461272f565b6106c2565b6102a16102d036600461276b565b60009081526006602052604090206001015490565b6102f86102f3366004612784565b6106e6565b005b6040516012815260200161026c565b6102a1610710565b6102f861031f366004612784565b61071f565b610260610332366004612705565b6107a2565b6102a1610345366004612705565b6107c4565b6102f8610849565b6102f8610360366004612705565b61087e565b6102f861037336600461276b565b6108b2565b61027d6108bc565b6103ac61038e3660046127b0565b6001600160a01b039081166000908152600b60205260409020541690565b6040516001600160a01b03909116815260200161026c565b6102f86103d23660046127b0565b610954565b60055460ff16610260565b6103f56103f03660046127b0565b61095e565b60405163ffffffff909116815260200161026c565b6102a16104183660046127b0565b6001600160a01b031660009081526020819052604090205490565b6102f8610441366004612705565b610980565b6102a16104543660046127b0565b610995565b6102f86109b3565b6104696109e5565b60405161026c97969594939291906127cb565b6102a161048a36600461276b565b610a6e565b61026061049d366004612784565b610ad5565b6104aa610b00565b60405165ffffffffffff909116815260200161026c565b61027d610b0b565b6102a16104d73660046127b0565b610b1a565b6102a1600081565b6102606104f2366004612705565b610b9c565b610260610505366004612705565b610c17565b6102f8610518366004612872565b610c25565b6102f861052b3660046128ca565b610d5b565b6102a17f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102f8610565366004612784565b610ebf565b6102a1610578366004612934565b610ee4565b6102a17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6105b76105b236600461295e565b610f0f565b60408051825163ffffffff1681526020928301516001600160e01b0316928101929092520161026c565b60006001600160e01b03198216637965db0b60e01b148061061257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600380546106279061299e565b80601f01602080910402602001604051908101604052809291908181526020018280546106539061299e565b80156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b5050505050905090565b6000336106b88185856112ad565b5060019392505050565b6000336106d08582856113d1565b6106db858585611445565b506001949350505050565b600082815260066020526040902060010154610701816115fa565b61070b8383611604565b505050565b600061071a61168a565b905090565b6001600160a01b03811633146107945760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61079e82826117b5565b5050565b6000336106b88185856107b58383610ee4565b6107bf91906129e8565b6112ad565b60006107ce610b00565b65ffffffffffff1682106108205760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161078b565b6001600160a01b0383166000908152600c60205260409020610842908361181c565b9392505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610873816115fa565b61087b611905565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108a8816115fa565b61070b8383611957565b61087b3382611961565b6060436108c7610b00565b65ffffffffffff161461091c5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161078b565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61087b338261196b565b6001600160a01b0381166000908152600c6020526040812054610612906111a3565b61098b8233836113d1565b61079e8282611961565b6001600160a01b038116600090815260096020526040812054610612565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109dd816115fa565b61087b6119e4565b600060608082808083610a197f00000000000000000000000000000000000000000000000000000000000000006007611a21565b610a447f00000000000000000000000000000000000000000000000000000000000000006008611a21565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610a78610b00565b65ffffffffffff168210610aca5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161078b565b610612600d8361181c565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061071a4361123a565b6060600480546106279061299e565b6001600160a01b0381166000908152600c60205260408120548015610b89576001600160a01b0383166000908152600c6020526040902080546000198301908110610b6757610b67612a11565b60009182526020909120015464010000000090046001600160e01b0316610b8c565b60005b6001600160e01b03169392505050565b60003381610baa8286610ee4565b905083811015610c0a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161078b565b6106db82868684036112ad565b6000336106b8818585611445565b83421115610c755760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161078b565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610cef90610ce79060a00160405160208183030381529060405280519060200120611ac5565b858585611af2565b9050610cfa81611b1a565b8614610d485760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161078b565b610d52818861196b565b50505050505050565b83421115610dab5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161078b565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610dda8c611b1a565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e3582611ac5565b90506000610e4582878787611af2565b9050896001600160a01b0316816001600160a01b031614610ea85760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161078b565b610eb38a8a8a6112ad565b50505050505050505050565b600082815260066020526040902060010154610eda816115fa565b61070b83836117b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600c60205260409020805463ffffffff8416908110610f5357610f53612a11565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6000602083511015610faf57610fa883611b42565b9050610612565b81610fba8482612a75565b5060ff9050610612565b90565b610fd18282611057565b6002546001600160e01b0310156110435760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161078b565b611051600d61112a83611b80565b50505050565b6001600160a01b0382166110ad5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161078b565b6110b960008383611cf5565b80600260008282546110cb91906129e8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e60008383611cfd565b600061084282846129e8565b60006001600160e01b0382111561119f5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161078b565b5090565b600063ffffffff82111561119f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161078b565b6001600160a01b038381166000908152600b602052604080822054858416835291205461070b92918216911683611d08565b600065ffffffffffff82111561119f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161078b565b60006108428284612b35565b6001600160a01b03831661130f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078b565b6001600160a01b0382166113705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113dd8484610ee4565b9050600019811461105157818110156114385760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161078b565b61105184848484036112ad565b6001600160a01b0383166114a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078b565b6001600160a01b03821661150b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078b565b611516838383611cf5565b6001600160a01b0383166000908152602081905260409020548181101561158e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161078b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611051848484611cfd565b61087b8133611e45565b61160e8282610ad5565b61079e5760008281526006602090815260408083206001600160a01b03851684529091529020805460ff191660011790556116463390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156116e357507f000000000000000000000000000000000000000000000000000000000000000046145b1561170d57507f000000000000000000000000000000000000000000000000000000000000000090565b61071a604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6117bf8282610ad5565b1561079e5760008281526006602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b81546000908181600581111561187657600061183784611e9e565b6118419085612b35565b600088815260209020909150869082015463ffffffff16111561186657809150611874565b6118718160016129e8565b92505b505b808210156118c357600061188a8383611f86565b600088815260209020909150869082015463ffffffff1611156118af578091506118bd565b6118ba8160016129e8565b92505b50611876565b80156118ef576000868152602090208101600019015464010000000090046001600160e01b03166118f2565b60005b6001600160e01b03169695505050505050565b61190d611fa1565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61079e8282610fc7565b61079e8282611fec565b6001600160a01b038281166000818152600b60208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611051828483611d08565b6119ec612004565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861193a3390565b606060ff8314611a3457610fa88361204a565b818054611a409061299e565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6c9061299e565b8015611ab95780601f10611a8e57610100808354040283529160200191611ab9565b820191906000526020600020905b815481529060010190602001808311611a9c57829003601f168201915b50505050509050610612565b6000610612611ad261168a565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000611b0387878787612089565b91509150611b108161214d565b5095945050505050565b6001600160a01b03811660009081526009602052604090208054600181018255905b50919050565b600080829050601f81511115611b6d578260405163305a27a960e01b815260040161078b91906126d6565b8051611b7882612b48565b179392505050565b82546000908190818115611bcd5760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611be2565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611c0284868863ffffffff16565b9250600082118015611c2c5750611c17610b00565b65ffffffffffff16816000015163ffffffff16145b15611c7157611c3a83611136565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611ceb565b866040518060400160405280611c95611c88610b00565b65ffffffffffff166111a3565b63ffffffff168152602001611ca986611136565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b61070b612004565b61070b838383611208565b816001600160a01b0316836001600160a01b031614158015611d2a5750600081115b1561070b576001600160a01b03831615611db8576001600160a01b0383166000908152600c602052604081208190611d65906112a185611b80565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611dad929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561070b576001600160a01b0382166000908152600c602052604081208190611dee9061112a85611b80565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611e36929190918252602082015260400190565b60405180910390a25050505050565b611e4f8282610ad5565b61079e57611e5c81612297565b611e678360206122a9565b604051602001611e78929190612b6c565b60408051601f198184030181529082905262461bcd60e51b825261078b916004016126d6565b600081600003611eb057506000919050565b60006001611ebd84612445565b901c6001901b90506001818481611ed657611ed6612be1565b048201901c90506001818481611eee57611eee612be1565b048201901c90506001818481611f0657611f06612be1565b048201901c90506001818481611f1e57611f1e612be1565b048201901c90506001818481611f3657611f36612be1565b048201901c90506001818481611f4e57611f4e612be1565b048201901c90506001818481611f6657611f66612be1565b048201901c905061084281828581611f8057611f80612be1565b046124d9565b6000611f956002848418612bf7565b610842908484166129e8565b60055460ff16611fea5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161078b565b565b611ff682826124ef565b611051600d6112a183611b80565b60055460ff1615611fea5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161078b565b6060600061205783612634565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120c05750600090506003612144565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612114573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661213d57600060019250925050612144565b9150600090505b94509492505050565b600081600481111561216157612161612c19565b036121695750565b600181600481111561217d5761217d612c19565b036121ca5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161078b565b60028160048111156121de576121de612c19565b0361222b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161078b565b600381600481111561223f5761223f612c19565b0361087b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161078b565b60606106126001600160a01b03831660145b606060006122b8836002612c2f565b6122c39060026129e8565b67ffffffffffffffff8111156122db576122db6129fb565b6040519080825280601f01601f191660200182016040528015612305576020820181803683370190505b509050600360fc1b8160008151811061232057612320612a11565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061234f5761234f612a11565b60200101906001600160f81b031916908160001a9053506000612373846002612c2f565b61237e9060016129e8565b90505b60018111156123f6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106123b2576123b2612a11565b1a60f81b8282815181106123c8576123c8612a11565b60200101906001600160f81b031916908160001a90535060049490941c936123ef81612c46565b9050612381565b5083156108425760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161078b565b600080608083901c1561245a57608092831c92015b604083901c1561246c57604092831c92015b602083901c1561247e57602092831c92015b601083901c1561249057601092831c92015b600883901c156124a257600892831c92015b600483901c156124b457600492831c92015b600283901c156124c657600292831c92015b600183901c156106125760010192915050565b60008183106124e85781610842565b5090919050565b6001600160a01b03821661254f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161078b565b61255b82600083611cf5565b6001600160a01b038216600090815260208190526040902054818110156125cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161078b565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361070b83600084611cfd565b600060ff8216601f81111561061257604051632cd44ac360e21b815260040160405180910390fd5b60006020828403121561266e57600080fd5b81356001600160e01b03198116811461084257600080fd5b60005b838110156126a1578181015183820152602001612689565b50506000910152565b600081518084526126c2816020860160208601612686565b601f01601f19169290920160200192915050565b60208152600061084260208301846126aa565b80356001600160a01b038116811461270057600080fd5b919050565b6000806040838503121561271857600080fd5b612721836126e9565b946020939093013593505050565b60008060006060848603121561274457600080fd5b61274d846126e9565b925061275b602085016126e9565b9150604084013590509250925092565b60006020828403121561277d57600080fd5b5035919050565b6000806040838503121561279757600080fd5b823591506127a7602084016126e9565b90509250929050565b6000602082840312156127c257600080fd5b610842826126e9565b60ff60f81b881681526000602060e0818401526127eb60e084018a6126aa565b83810360408501526127fd818a6126aa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561284f57835183529284019291840191600101612833565b50909c9b505050505050505050505050565b803560ff8116811461270057600080fd5b60008060008060008060c0878903121561288b57600080fd5b612894876126e9565b955060208701359450604087013593506128b060608801612861565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a0312156128e557600080fd5b6128ee886126e9565b96506128fc602089016126e9565b9550604088013594506060880135935061291860808901612861565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561294757600080fd5b612950836126e9565b91506127a7602084016126e9565b6000806040838503121561297157600080fd5b61297a836126e9565b9150602083013563ffffffff8116811461299357600080fd5b809150509250929050565b600181811c908216806129b257607f821691505b602082108103611b3c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610612576106126129d2565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561070b57600081815260208120601f850160051c81016020861015612a4e5750805b601f850160051c820191505b81811015612a6d57828155600101612a5a565b505050505050565b815167ffffffffffffffff811115612a8f57612a8f6129fb565b612aa381612a9d845461299e565b84612a27565b602080601f831160018114612ad85760008415612ac05750858301515b600019600386901b1c1916600185901b178555612a6d565b600085815260208120601f198616915b82811015612b0757888601518255948401946001909101908401612ae8565b5085821015612b255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610612576106126129d2565b80516020808301519190811015611b3c5760001960209190910360031b1b16919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612ba4816017850160208801612686565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612bd5816028840160208801612686565b01602801949350505050565b634e487b7160e01b600052601260045260246000fd5b600082612c1457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b8082028115828204841417610612576106126129d2565b600081612c5557612c556129d2565b50600019019056fea26469706673582212204784b73cd165f26d8915f894c0cf450d7ce99e022ecf44104a490941f67ecbde64736f6c63430008120033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724