6101406040523480156200001257600080fd5b506040516200425f3803806200425f8339810160408190526200003591620003a3565b845160208087019190912084518583012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c094850190915281519190950120905291909152610120528484620000d13362000124565b6001620000df8382620004f8565b506002620000ee8282620004f8565b50505062000102826200017460201b60201c565b6200010d81620001ba565b6200011886620001fa565b505050505050620005c4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200017e6200027d565b600c8190556040518181527f40aad3f991f16f7936e7bc012b939cd59d22ae8b4de6f4cbae0b2ad3046f76f1906020015b60405180910390a150565b620001c46200027d565b600d8190556040518181527fe0f21afeaf06687adebfef3b6eaa2f9ab4501423ccf6e33bf2ee5b21a4001f5990602001620001af565b620002046200027d565b6001600160a01b0381166200026f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200027a8162000124565b50565b6000546001600160a01b03163314620002d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000266565b565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200030357600080fd5b81516001600160401b0380821115620003205762000320620002db565b604051601f8301601f19908116603f011681019082821181831017156200034b576200034b620002db565b81604052838152602092508660208588010111156200036957600080fd5b600091505b838210156200038d57858201830151818301840152908201906200036e565b6000602085830101528094505050505092915050565b60008060008060008060c08789031215620003bd57600080fd5b86516001600160a01b0381168114620003d557600080fd5b60208801519096506001600160401b0380821115620003f357600080fd5b620004018a838b01620002f1565b965060408901519150808211156200041857600080fd5b620004268a838b01620002f1565b955060608901519150808211156200043d57600080fd5b506200044c89828a01620002f1565b9350506080870151915060a087015190509295509295509295565b600181811c908216806200047c57607f821691505b6020821081036200049d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f3576000816000526020600020601f850160051c81016020861015620004ce5750805b601f850160051c820191505b81811015620004ef57828155600101620004da565b5050505b505050565b81516001600160401b03811115620005145762000514620002db565b6200052c8162000525845462000467565b84620004a3565b602080601f8311600181146200056457600084156200054b5750858301515b600019600386901b1c1916600185901b178555620004ef565b600085815260208120601f198616915b82811015620005955788860151825594840194600190910190840162000574565b5085821015620005b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e0516101005161012051613c4b620006146000396000612d8901526000612dd801526000612db301526000612d0c01526000612d3601526000612d600152613c4b6000f3fe6080604052600436106101d85760003560e01c806370a0823111610102578063b9741c6b11610095578063e985e9c511610064578063e985e9c514610601578063e98798e81461064a578063f2fde38b1461066a578063f6e671b71461068a57600080fd5b8063b9741c6b14610581578063c87b56dd146105a1578063d9da1917146105c1578063e2bbb158146105e157600080fd5b806395d89b41116100d157806395d89b411461050c578063994e3ba014610521578063a22cb46514610541578063b88d4fde1461056157600080fd5b806370a08231146104a6578063715018a6146104c65780638d8fa6e9146104db5780638da5cb5b146104ee57600080fd5b806331b31b881161017a5780634afd82e7116101495780634afd82e7146103835780634cf1115d146104505780636352211e146104665780636f42d1611461048657600080fd5b806331b31b881461030d5780633f6738a91461032d57806342842e0e1461034d578063455991361461036d57600080fd5b8063095ea7b3116101b6578063095ea7b31461026c578063120aa8771461028e57806323b872dd146102c95780632f751013146102e957600080fd5b806301ffc9a7146101dd57806306fdde0314610212578063081812fc14610234575b600080fd5b3480156101e957600080fd5b506101fd6101f836600461321d565b6106b7565b60405190151581526020015b60405180910390f35b34801561021e57600080fd5b5061022761079c565b604051610209919061328a565b34801561024057600080fd5b5061025461024f36600461329d565b61082e565b6040516001600160a01b039091168152602001610209565b34801561027857600080fd5b5061028c6102873660046132cb565b610855565b005b34801561029a57600080fd5b506101fd6102a93660046132f7565b600960209081526000928352604080842090915290825290205460ff1681565b3480156102d557600080fd5b5061028c6102e4366004613327565b6109a9565b3480156102f557600080fd5b506102ff600b5481565b604051908152602001610209565b34801561031957600080fd5b5061028c61032836600461329d565b610a30565b34801561033957600080fd5b5061028c61034836600461329d565b610a74565b34801561035957600080fd5b5061028c610368366004613327565b610ab1565b34801561037957600080fd5b506102ff600d5481565b34801561038f57600080fd5b5061040d61039e36600461329d565b6008602052600090815260409020805460018201546002909201546001600160a01b03918216929181169065ffffffffffff7401000000000000000000000000000000000000000082048116917a01000000000000000000000000000000000000000000000000000090041685565b604080516001600160a01b0396871681526020810195909552929094169183019190915265ffffffffffff9081166060830152909116608082015260a001610209565b34801561045c57600080fd5b506102ff600c5481565b34801561047257600080fd5b5061025461048136600461329d565b610acc565b34801561049257600080fd5b5061028c6104a13660046132f7565b610b31565b3480156104b257600080fd5b506102ff6104c1366004613368565b610d88565b3480156104d257600080fd5b5061028c610e22565b61028c6104e93660046133e2565b610e36565b3480156104fa57600080fd5b506000546001600160a01b0316610254565b34801561051857600080fd5b50610227611192565b34801561052d57600080fd5b5061028c61053c366004613368565b6111a1565b34801561054d57600080fd5b5061028c61055c366004613495565b611218565b34801561056d57600080fd5b5061028c61057c366004613523565b611227565b34801561058d57600080fd5b5061028c61059c3660046135e7565b6112b5565b3480156105ad57600080fd5b506102276105bc36600461329d565b611303565b3480156105cd57600080fd5b5061028c6105dc366004613642565b611413565b3480156105ed57600080fd5b5061028c6105fc36600461370a565b6114b6565b34801561060d57600080fd5b506101fd61061c36600461372c565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b34801561065657600080fd5b5061028c61066536600461372c565b6116c5565b34801561067657600080fd5b5061028c610685366004613368565b61173e565b34801561069657600080fd5b506102ff6106a5366004613368565b600a6020526000908152604090205481565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061074a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061079657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600180546107ab9061375a565b80601f01602080910402602001604051908101604052809291908181526020018280546107d79061375a565b80156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b6000610839826117ce565b506000908152600560205260409020546001600160a01b031690565b600061086082610acc565b9050806001600160a01b0316836001600160a01b0316036108ee5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061092857506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b61099a5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016108e5565b6109a48383611832565b505050565b6109b333826118b8565b610a255760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016108e5565b6109a4838383611936565b610a38611ba2565b600d8190556040518181527fe0f21afeaf06687adebfef3b6eaa2f9ab4501423ccf6e33bf2ee5b21a4001f59906020015b60405180910390a150565b610a7c611ba2565b600c8190556040518181527f40aad3f991f16f7936e7bc012b939cd59d22ae8b4de6f4cbae0b2ad3046f76f190602001610a69565b6109a483838360405180602001604052806000815250611227565b6000818152600360205260408120546001600160a01b0316806107965760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016108e5565b60008281526008602090815260408083206003909252909120546001600160a01b0316610b8a576040517f9f528f6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060010154600003610bc8576040517fd783b17400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002810154427a01000000000000000000000000000000000000000000000000000090910465ffffffffffff161115610c595760028101546040517ec155bb0000000000000000000000000000000000000000000000000000000081527a01000000000000000000000000000000000000000000000000000090910465ffffffffffff1660048201526024016108e5565b33610c6384610acc565b6001600160a01b031614610ca3576040517fcd6a87db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216610ce3576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018101548154610cfe906001600160a01b03168483611bfc565b610d0784611ca5565b60008481526008602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681556001810183905560020191909155517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb90610d7a9086815260200190565b60405180910390a150505050565b60006001600160a01b038216610e065760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016108e5565b506001600160a01b031660009081526004602052604090205490565b610e2a611ba2565b610e346000611ce5565b565b84600003610e70576040517ff1aadac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428165ffffffffffff1611610eb1576040517f67c39f0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8065ffffffffffff168265ffffffffffff1610610efa576040517f4b3aed6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316610f3a576040517f15e33ca300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54341015610f76576040517f7a16d84f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f8287611d4d565b6001600160a01b038a166000908152600a6020526040812080549395509193508392610faf9084906137dc565b9091555050600b805460018101909155610fc98782611d92565b611009818c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dac92505050565b6040805160a0810182526001600160a01b03808c1680835260208084018881528b841685870190815265ffffffffffff808d16606088019081528c82166080890190815260008b8152600890965298909420965187549087167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161787559151600187015551600290950180549251965182167a0100000000000000000000000000000000000000000000000000000279ffffffffffffffffffffffffffffffffffffffffffffffffffff9790921674010000000000000000000000000000000000000000027fffffffffffff0000000000000000000000000000000000000000000000000000909316959094169490941717939093169190911790556111349033308b611e4e565b7f3a7e0d469a7bd21a015d8821d34adbd16968f3b3ff8ae56049b7046b06f338f68188600860008581526020019081526020016000208e8e60405161117d9594939291906137ef565b60405180910390a15050505050505050505050565b6060600280546107ab9061375a565b6111a9611ba2565b6040516001600160a01b038216904780156108fc02916000818181858888f193505050501580156111de573d6000803e3d6000fd5b506040516001600160a01b03821681527fe3cd833cc7fc10bb3836944d086e3d3c67bb967d62e47a1779a01077bba43c0290602001610a69565b611223338383611e9f565b5050565b61123133836118b8565b6112a35760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016108e5565b6112af84848484611f8b565b50505050565b6109a46112c736859003850185613875565b83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061201492505050565b606061130e826117ce565b600082815260076020526040812080546113279061375a565b80601f01602080910402602001604051908101604052809291908181526020018280546113539061375a565b80156113a05780601f10611375576101008083540402835291602001916113a0565b820191906000526020600020905b81548152906001019060200180831161138357829003601f168201915b5050505050905060006113be60408051602081019091526000815290565b905080516000036113d0575092915050565b8151156114025780826040516020016113ea9291906138d7565b60405160208183030381529060405292505050919050565b61140b846123ac565b949350505050565b60005b818110156114af576114a785858381811061143357611433613906565b9050606002018036038101906114499190613875565b84848481811061145b5761145b613906565b905060200281019061146d9190613935565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061201492505050565b600101611416565b5050505050565b6000828152600860205260408120908290036114fe576040517ff1aadac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600360205260409020546001600160a01b031661154c576040517f9f528f6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002810154427a01000000000000000000000000000000000000000000000000000090910465ffffffffffff16116115b0576040517f9a3d505f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600281015474010000000000000000000000000000000000000000900465ffffffffffff16421061160d576040517fe8a7bc2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061161984611d4d565b84546001600160a01b03166000908152600a60205260408120805493955091935083926116479084906137dc565b925050819055508183600101600082825461166291906137dc565b9091555050825461167e906001600160a01b0316333087611e4e565b604080518681523360208201529081018390527feaa18152488ce5959073c9c79c88ca90b3d96c00de1f118cfaad664c3dab06b99060600160405180910390a15050505050565b6116cd611ba2565b6001600160a01b0382166000818152600a602052604081208054919055906116f6908383611bfc565b604080516001600160a01b038086168252841660208201527f181de6876cbd262a8d7ee2e7ba6accacc21f564765246b69a24da3b0db6d1eb3910160405180910390a1505050565b611746611ba2565b6001600160a01b0381166117c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108e5565b6117cb81611ce5565b50565b6000818152600360205260409020546001600160a01b03166117cb5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016108e5565b600081815260056020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416908117909155819061187f82610acc565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806118c483610acc565b9050806001600160a01b0316846001600160a01b0316148061190b57506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff165b8061140b5750836001600160a01b03166119248461082e565b6001600160a01b031614949350505050565b826001600160a01b031661194982610acc565b6001600160a01b0316146119c55760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016108e5565b6001600160a01b038216611a405760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108e5565b611a4d8383836001612420565b826001600160a01b0316611a6082610acc565b6001600160a01b031614611adc5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016108e5565b600081815260056020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b038781168086526004855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b03163314610e345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e5565b6040516001600160a01b0383166024820152604481018290526109a49084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124a8565b611cae8161258d565b60008181526007602052604090208054611cc79061375a565b1590506117cb5760008181526007602052604081206117cb916131a1565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000600d54612710611d6291906137dc565b611d6e6127108661399a565b611d7891906139b1565b90506000611d8682866139ec565b91959194509092505050565b611223828260405180602001604052806000815250612666565b6000828152600360205260409020546001600160a01b0316611e365760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201527f6578697374656e7420746f6b656e00000000000000000000000000000000000060648201526084016108e5565b60008281526007602052604090206109a48282613a4f565b6040516001600160a01b03808516602483015283166044820152606481018290526112af9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611c41565b816001600160a01b0316836001600160a01b031603611f005760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108e5565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611f96848484611936565b611fa2848484846126ef565b6112af5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108e5565b815160009081526008602052604090206002810154427401000000000000000000000000000000000000000090910465ffffffffffff1611156120aa5760028101546040517f268e14e30000000000000000000000000000000000000000000000000000000081527401000000000000000000000000000000000000000090910465ffffffffffff1660048201526024016108e5565b8260400151816001015410156120ec576040517fd783b17400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002810154427a01000000000000000000000000000000000000000000000000000090910465ffffffffffff1611612150576040517f9a3d505f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516000908152600960209081526040808320828701516001600160a01b0316845290915290205460ff16156121b2576040517f9d822f6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208301516001600160a01b03166121f6576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122787f56369833052c65190d29e71cd23382c2caef1cbd6fe3a194b615c8dd6025225d85600001518660200151876040015160405160200161225d949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b60405160208183030381529060405280519060200120612890565b6002830154909150612294906001600160a01b031682856128f9565b6122ca576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83516000908152600960209081526040808320828801516001600160a01b0316845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155908601519084018054919290916123369084906139ec565b909155505060208401516040850151835461235c926001600160a01b0390911691611bfc565b60408051855181526020808701516001600160a01b03169082015281860151918101919091527f3b51800d03d69dee2e14ade46700f7c428bca48e471251b94407cfd5f3b335d290606001610d7a565b60606123b7826117ce565b60006123ce60408051602081019091526000815290565b905060008151116123ee5760405180602001604052806000815250612419565b806123f884612a81565b6040516020016124099291906138d7565b6040516020818303038152906040525b9392505050565b60018111156112af576001600160a01b03841615612466576001600160a01b038416600090815260046020526040812080548392906124609084906139ec565b90915550505b6001600160a01b038316156112af576001600160a01b0383166000908152600460205260408120805483929061249d9084906137dc565b909155505050505050565b60006124fd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b3f9092919063ffffffff16565b8051909150156109a4578080602001905181019061251b9190613b4b565b6109a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016108e5565b600061259882610acc565b90506125a8816000846001612420565b6125b182610acc565b600083815260056020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b0385168085526004845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526003909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6126708383612b4e565b61267d60008484846126ef565b6109a45760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108e5565b60006001600160a01b0384163b15612885576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a029061274c903390899088908890600401613b68565b6020604051808303816000875af1925050508015612787575060408051601f3d908101601f1916820190925261278491810190613ba4565b60015b61283a573d8080156127b5576040519150601f19603f3d011682016040523d82523d6000602084013e6127ba565b606091505b5080516000036128325760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016108e5565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a020000000000000000000000000000000000000000000000000000000014905061140b565b506001949350505050565b600061079661289d612cff565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006129088585612e26565b9092509050600081600481111561292157612921613bc1565b14801561293f5750856001600160a01b0316826001600160a01b0316145b1561294f57600192505050612419565b600080876001600160a01b0316631626ba7e60e01b8888604051602401612977929190613bf0565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516129e29190613c09565b600060405180830381855afa9150503d8060008114612a1d576040519150601f19603f3d011682016040523d82523d6000602084013e612a22565b606091505b5091509150818015612a35575080516020145b8015612a75575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090612a739083016020908101908401613c25565b145b98975050505050505050565b60606000612a8e83612e6b565b600101905060008167ffffffffffffffff811115612aae57612aae6134c3565b6040519080825280601f01601f191660200182016040528015612ad8576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084612ae257509392505050565b606061140b8484600085612f4d565b6001600160a01b038216612ba45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108e5565b6000818152600360205260409020546001600160a01b031615612c095760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108e5565b612c17600083836001612420565b6000818152600360205260409020546001600160a01b031615612c7c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108e5565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612d5857507f000000000000000000000000000000000000000000000000000000000000000046145b15612d8257507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000808251604103612e5c5760208301516040840151606085015160001a612e508782858561303f565b94509450505050612e64565b506000905060025b9250929050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612eb4577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612ee0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612efe57662386f26fc10000830492506010015b6305f5e1008310612f16576305f5e100830492506008015b6127108310612f2a57612710830492506004015b60648310612f3c576064830492506002015b600a83106107965760010192915050565b606082471015612fc55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016108e5565b600080866001600160a01b03168587604051612fe19190613c09565b60006040518083038185875af1925050503d806000811461301e576040519150601f19603f3d011682016040523d82523d6000602084013e613023565b606091505b509150915061303487838387613103565b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561307657506000905060036130fa565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156130ca573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166130f3576000600192509250506130fa565b9150600090505b94509492505050565b6060831561317257825160000361316b576001600160a01b0385163b61316b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108e5565b508161140b565b61140b83838151156131875781518083602001fd5b8060405162461bcd60e51b81526004016108e5919061328a565b5080546131ad9061375a565b6000825580601f106131bd575050565b601f0160209004906000526020600020908101906117cb91905b808211156131eb57600081556001016131d7565b5090565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146117cb57600080fd5b60006020828403121561322f57600080fd5b8135612419816131ef565b60005b8381101561325557818101518382015260200161323d565b50506000910152565b6000815180845261327681602086016020860161323a565b601f01601f19169290920160200192915050565b602081526000612419602083018461325e565b6000602082840312156132af57600080fd5b5035919050565b6001600160a01b03811681146117cb57600080fd5b600080604083850312156132de57600080fd5b82356132e9816132b6565b946020939093013593505050565b6000806040838503121561330a57600080fd5b82359150602083013561331c816132b6565b809150509250929050565b60008060006060848603121561333c57600080fd5b8335613347816132b6565b92506020840135613357816132b6565b929592945050506040919091013590565b60006020828403121561337a57600080fd5b8135612419816132b6565b60008083601f84011261339757600080fd5b50813567ffffffffffffffff8111156133af57600080fd5b602083019150836020828501011115612e6457600080fd5b803565ffffffffffff811681146133dd57600080fd5b919050565b60008060008060008060008060e0898b0312156133fe57600080fd5b883567ffffffffffffffff81111561341557600080fd5b6134218b828c01613385565b9099509750506020890135613435816132b6565b955060408901359450606089013561344c816132b6565b9350608089013561345c816132b6565b925061346a60a08a016133c7565b915061347860c08a016133c7565b90509295985092959890939650565b80151581146117cb57600080fd5b600080604083850312156134a857600080fd5b82356134b3816132b6565b9150602083013561331c81613487565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561351b5761351b6134c3565b604052919050565b6000806000806080858703121561353957600080fd5b8435613544816132b6565b9350602085810135613555816132b6565b935060408601359250606086013567ffffffffffffffff8082111561357957600080fd5b818801915088601f83011261358d57600080fd5b81358181111561359f5761359f6134c3565b6135b184601f19601f840116016134f2565b915080825289848285010111156135c757600080fd5b808484018584013760008482840101525080935050505092959194509250565b600080600083850360808112156135fd57600080fd5b606081121561360b57600080fd5b50839250606084013567ffffffffffffffff81111561362957600080fd5b61363586828701613385565b9497909650939450505050565b6000806000806040858703121561365857600080fd5b843567ffffffffffffffff8082111561367057600080fd5b818701915087601f83011261368457600080fd5b81358181111561369357600080fd5b8860206060830285010111156136a857600080fd5b6020928301965094509086013590808211156136c357600080fd5b818701915087601f8301126136d757600080fd5b8135818111156136e657600080fd5b8860208260051b85010111156136fb57600080fd5b95989497505060200194505050565b6000806040838503121561371d57600080fd5b50508035926020909101359150565b6000806040838503121561373f57600080fd5b823561374a816132b6565b9150602083013561331c816132b6565b600181811c9082168061376e57607f821691505b6020821081036137a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610796576107966137ad565b8581526001600160a01b038581166020830152845481166040830152600185015460608301526002850154908116608083015260a081811c65ffffffffffff169083015260d01c60c082015261010060e08201819052810182905260006101208385828501376000838501820152601f909301601f191690910190910195945050505050565b60006060828403121561388757600080fd5b6040516060810181811067ffffffffffffffff821117156138aa576138aa6134c3565b6040528235815260208301356138bf816132b6565b60208201526040928301359281019290925250919050565b600083516138e981846020880161323a565b8351908301906138fd81836020880161323a565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261396a57600080fd5b83018035915067ffffffffffffffff82111561398557600080fd5b602001915036819003821315612e6457600080fd5b8082028115828204841417610796576107966137ad565b6000826139e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b81810381811115610796576107966137ad565b601f8211156109a4576000816000526020600020601f850160051c81016020861015613a285750805b601f850160051c820191505b81811015613a4757828155600101613a34565b505050505050565b815167ffffffffffffffff811115613a6957613a696134c3565b613a7d81613a77845461375a565b846139ff565b602080601f831160018114613ad05760008415613a9a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613a47565b600085815260208120601f198616915b82811015613aff57888601518255948401946001909101908401613ae0565b5085821015613b3b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215613b5d57600080fd5b815161241981613487565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613b9a608083018461325e565b9695505050505050565b600060208284031215613bb657600080fd5b8151612419816131ef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82815260406020820152600061140b604083018461325e565b60008251613c1b81846020870161323a565b9190910192915050565b600060208284031215613c3757600080fd5b505191905056fea164736f6c6343000817000a000000000000000000000000c83a9e69012312513328992d454290be85e9510100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005626f6f73740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005424f4f53540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005302e312e30000000000000000000000000000000000000000000000000000000