0x608060405234801561001057600080fd5b506004361061023c5760003560e01c806370a082311161013b578063a4103b69116100b8578063c2f14fb21161007c578063c2f14fb21461052e578063d505accf14610540578063dd62ed3e14610553578063e5bc669414610566578063eedc966a1461058657600080fd5b8063a4103b69146104c5578063a457c2d7146104d8578063a9059cbb146104eb578063ab0baf9c146104fe578063b0b8d15f1461051757600080fd5b806384b0196e116100ff57806384b0196e1461045257806385e22c001461046d578063918f86741461048e57806395d89b411461049d578063a3f685f9146104a557600080fd5b806370a08231146103c557806379cc6790146103ee5780637ad71f72146104015780637ecebe00146104375780638456cb591461044a57600080fd5b80633644e515116101c957806342966c681161018d57806342966c6814610368578063504039aa1461037b5780635c975abb1461038e5780636b8eae44146103995780636f9ed0b6146103a257600080fd5b80633644e5151461031d578063376b626d1461032557806339509351146103385780633b04f6f11461034b5780633f4ba83a1461036057600080fd5b8063125bfb6611610210578063125bfb66146102c357806318160ddd146102d6578063206d54db146102e857806323b872dd146102fb578063313ce5671461030e57600080fd5b8062435da514610241578063055e27e91461027657806306fdde031461028b578063095ea7b3146102a0575b600080fd5b600c546102599061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610289610284366004612f97565b610599565b005b6102936106fe565b60405161026d9190613031565b6102b36102ae366004613060565b610790565b604051901515815260200161026d565b6102896102d136600461308c565b6107aa565b6002545b60405190815260200161026d565b6102596102f63660046130cd565b610953565b6102b361030936600461308c565b61099a565b6040516012815260200161026d565b6102da6109be565b6102896103333660046130e6565b6109cd565b6102b3610346366004613060565b610b7d565b610353610b9f565b60405161026d919061315b565b610289610c21565b6102896103763660046130cd565b610d72565b6102896103893660046131c6565b610d7c565b600c5460ff166102b3565b6102da600a5481565b6102b36103b0366004613232565b600b6020526000908152604090205460ff1681565b6102da6103d3366004613232565b6001600160a01b031660009081526020819052604090205490565b6102896103fc366004613060565b610ee4565b61041461040f3660046130cd565b610efd565b604080519384526001600160a01b0390921660208401529082015260600161026d565b6102da610445366004613232565b610f3c565b610289610f5a565b61045a6110a8565b60405161026d979695949392919061324f565b6102da762a37b5b2b72234b9ba3934b13aba34b7b729b2ba3a32b960491b81565b6102da670de0b6b3a764000081565b6102936110ee565b6104b86104b33660046130cd565b6110fd565b60405161026d91906132e5565b6102896104d3366004612f97565b611187565b6102b36104e6366004613060565b6112de565b6102b36104f9366004613060565b611359565b6102da6e213637b1b5a634b9ba29b2ba3a32b960891b81565b6102da6c436c61696d61626c65526f6c6560981b81565b6102da672a27ad20b236b4b760c11b81565b61028961054e36600461330f565b611367565b6102da610561366004613386565b6114a1565b6102da6105743660046130cd565b60096020526000908152604090205481565b6102da610594366004613232565b6114cc565b600c546e213637b1b5a634b9ba29b2ba3a32b960891b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa15801561060f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063391906133bf565b806106ca5750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156106a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca91906133bf565b6106ef5760405162461bcd60e51b81526004016106e6906133e1565b60405180910390fd5b6106f98383611580565b505050565b60606003805461070d90613411565b80601f016020809104026020016040519081016040528092919081815260200182805461073990613411565b80156107865780601f1061075b57610100808354040283529160200191610786565b820191906000526020600020905b81548152906001019060200180831161076957829003601f168201915b5050505050905090565b60003361079e818585611781565b60019150505b92915050565b600c546c436c61696d61626c65526f6c6560981b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa15801561081e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084291906133bf565b806108d95750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906133bf565b6108f55760405162461bcd60e51b81526004016106e6906133e1565b816109425760405162461bcd60e51b815260206004820152601b60248201527f4552433230436c61696d61626c653a207a65726f20616d6f756e74000000000060448201526064016106e6565b61094d8484846118a6565b50505050565b6000818152600960205260408120546008805490919081106109775761097761344c565b60009182526020909120600160039092020101546001600160a01b031692915050565b6000336109a88582856118ff565b6109b3858585611973565b506001949350505050565b60006109c8611b22565b905090565b600c54762a37b5b2b72234b9ba3934b13aba34b7b729b2ba3a32b960491b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f91906133bf565b80610b065750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0691906133bf565b610b225760405162461bcd60e51b81526004016106e6906133e1565b6106f98383808060200260200160405190810160405280939291908181526020016000905b82821015610b7357610b6460608302860136819003810190613462565b81526020019060010190610b47565b5050505050611c4d565b60003361079e818585610b9083836114a1565b610b9a91906134e8565b611781565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610c185760008481526020908190206040805160608101825260038602909201805483526001808201546001600160a01b031684860152600290910154918301919091529083529092019101610bc3565b50505050905090565b600c54672a27ad20b236b4b760c11b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb491906133bf565b80610d4b5750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906133bf565b610d675760405162461bcd60e51b81526004016106e6906133e1565b610d6f612042565b50565b610d6f3382612094565b600c54762a37b5b2b72234b9ba3934b13aba34b7b729b2ba3a32b960491b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e91906133bf565b80610eb55750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb591906133bf565b610ed15760405162461bcd60e51b81526004016106e6906133e1565b610edd858585856121d2565b5050505050565b610eef8233836118ff565b610ef98282612094565b5050565b60088181548110610f0d57600080fd5b60009182526020909120600390910201805460018201546002909201549092506001600160a01b039091169083565b6001600160a01b0381166000908152600760205260408120546107a4565b600c54672a27ad20b236b4b760c11b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fed91906133bf565b806110845750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611060573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108491906133bf565b6110a05760405162461bcd60e51b81526004016106e6906133e1565b610d6f612467565b6000606080600080600060606110bc6124a4565b6110c46124d1565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606004805461070d90613411565b604080516060810182526000808252602082018190529181019190915260008281526009602052604090205460088054909190811061113e5761113e61344c565b60009182526020918290206040805160608101825260039093029091018054835260018101546001600160a01b0316938301939093526002909201549181019190915292915050565b600c546e213637b1b5a634b9ba29b2ba3a32b960891b9061010090046001600160a01b03166391d1485482336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122191906133bf565b806112b85750600c5461010090046001600160a01b03166391d14854672a27ad20b236b4b760c11b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b891906133bf565b6112d45760405162461bcd60e51b81526004016106e6906133e1565b6106f983836124fe565b600033816112ec82866114a1565b90508381101561134c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e6565b6109b38286868403611781565b60003361079e818585611973565b8342111561138b5760405163313c898160e11b8152600481018590526024016106e6565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113d88c6001600160a01b0316600090815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006114338261267a565b90506000611443828787876126a7565b9050896001600160a01b0316816001600160a01b03161461148a576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016106e6565b6114958a8a8a611781565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a49190613500565b60006020835110156115535761154c836126d1565b90506107a4565b828281516115649260200190612eb2565b5060ff90506107a4565b6001600160a01b03163b151590565b90565b60005b818110156106f957600083838381811061159f5761159f61344c565b90506020020160208101906115b49190613232565b6001600160a01b0316141561160b5760405162461bcd60e51b815260206004820152601760248201527f426c6f636b4c6973743a207a65726f206164647265737300000000000000000060448201526064016106e6565b600b60008484848181106116215761162161344c565b90506020020160208101906116369190613232565b6001600160a01b0316815260208101919091526040016000205460ff16156116ae5760405162461bcd60e51b815260206004820152602560248201527f426c6f636b4c6973743a20616c72656164792072656769737465726564206164604482015264647265737360d81b60648201526084016106e6565b6001600b60008585858181106116c6576116c661344c565b90506020020160208101906116db9190613232565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558282828181106117155761171561344c565b905060200201602081019061172a9190613232565b6001600160a01b03167fc74274aff9832ae1037e5fc454e34c99be6dfc74a99e5057fb5149dc9771d8c16001604051611767911515815260200190565b60405180910390a28061177981613519565b915050611583565b6001600160a01b0383166117e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e6565b6001600160a01b0382166118445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6118ba6001600160a01b038416838361270f565b826001600160a01b0316826001600160a01b03167fdbc1ea3a8459e4c7e11fb385b52bbb5cc8c8ab85eec5d883ac9aa78c171f51418360405161189991815260200190565b600061190b84846114a1565b9050600019811461094d57818110156119665760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106e6565b61094d8484848403611781565b6001600160a01b0383166119d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e6565b6001600160a01b038216611a395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e6565b611a44838383612761565b6001600160a01b03831660009081526020819052604090205481811015611abc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361094d565b6000306001600160a01b037f0000000000000000000000004db27a0bbaff9d7671fd3ed765d4593f4f3982a816148015611b7b57507f000000000000000000000000000000000000000000000000000000000000045846145b15611ba557507f9f59db92cb977970480b66c00860647f44c947b05d087c2d2f7577dbd319377890565b6109c8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f9772692fee8f800b9be630949fc140d2fc546c7d7ffc27ffb2578363b541efe8918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000805b8251811015611fb75760006001600160a01b0316838281518110611c7757611c7761344c565b6020026020010151602001516001600160a01b03161415611cda5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e446973747269627574696f6e3a207a65726f20616464726573730060448201526064016106e6565b828181518110611cec57611cec61344c565b60200260200101516040015160001415611d535760405162461bcd60e51b815260206004820152602260248201527f546f6b656e446973747269627574696f6e3a207a65726f2070726f706f72746960448201526137b760f11b60648201526084016106e6565b60096000848381518110611d6957611d6961344c565b602002602001015160000151815260200190815260200160002054600014611dd35760405162461bcd60e51b815260206004820181905260248201527f546f6b656e446973747269627574696f6e3a20616c726561647920657869737460448201526064016106e6565b60006040518060600160405280858481518110611df257611df261344c565b6020026020010151600001518152602001858481518110611e1557611e1561344c565b6020026020010151602001516001600160a01b03168152602001858481518110611e4157611e4161344c565b602002602001015160400151815250905060088054905060096000868581518110611e6e57611e6e61344c565b60209081029190910181015151825281810192909252604090810160009081209390935560088054600181018255935283517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3600390940293840155908301517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4830180546001600160a01b0319166001600160a01b039092169190911790558201517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee5909101558351849083908110611f4a57611f4a61344c565b60200260200101516040015183611f6191906134e8565b9250336001600160a01b03167f73266f629ce7a31c1c2fda120f78e1a823a17d919f3f7b3f45956b645ee17dd582604051611f9c91906132e5565b60405180910390a25080611faf81613519565b915050611c51565b5080600a6000828254611fca91906134e8565b9091555050600a54670de0b6b3a76400001015610ef95760405162461bcd60e51b815260206004820152603060248201527f546f6b656e446973747269627574696f6e3a207468652073756d2073686f756c60448201526f64206265206c657373207468616e203160801b60648201526084016106e6565b61204a612817565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166120f45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106e6565b61210082600083612761565b6001600160a01b038216600090815260208190526040902054818110156121745760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106e6565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b8083146122215760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e446973747269627574696f6e3a2077726f6e67206c656e6774680060448201526064016106e6565b60005b83811015610edd5760008383838181106122405761224061344c565b90506020020160208101906122559190613232565b6001600160a01b031614156122ac5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e446973747269627574696f6e3a207a65726f20616464726573730060448201526064016106e6565b6000600960008787858181106122c4576122c461344c565b905060200201358152602001908152602001600020549050806000141561232d5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e446973747269627574696f6e3a206e6f742065786973740000000060448201526064016106e6565b6000600882815481106123425761234261344c565b60009182526020909120600160039092020101546001600160a01b031690508484848181106123735761237361344c565b90506020020160208101906123889190613232565b6008838154811061239b5761239b61344c565b6000918252602090912060039091020160010180546001600160a01b0319166001600160a01b0392909216919091179055338787858181106123df576123df61344c565b905060200201357f60d4a64130c7280f4192a4ad99f2224a5879f55e046b1c4656afede5d62f3aa98388888881811061241a5761241a61344c565b905060200201602081019061242f9190613232565b604080516001600160a01b0393841681529290911660208301520160405180910390a35050808061245f90613519565b915050612224565b61246f612862565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120773390565b60606109c87f544f5a20556e69766572736520546f6b656e000000000000000000000000001260056128a8565b60606109c87f310000000000000000000000000000000000000000000000000000000000000160066128a8565b60005b818110156106f957600b600084848481811061251f5761251f61344c565b90506020020160208101906125349190613232565b6001600160a01b0316815260208101919091526040016000205460ff166125a75760405162461bcd60e51b815260206004820152602160248201527f426c6f636b4c6973743a206e6f742072656769737465726564206164647265736044820152607360f81b60648201526084016106e6565b6000600b60008585858181106125bf576125bf61344c565b90506020020160208101906125d49190613232565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905582828281811061260e5761260e61344c565b90506020020160208101906126239190613232565b6001600160a01b03167fc74274aff9832ae1037e5fc454e34c99be6dfc74a99e5057fb5149dc9771d8c16000604051612660911515815260200190565b60405180910390a28061267281613519565b915050612501565b60006107a4612687611b22565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006126b88787878761294c565b915091506126c581612a39565b5090505b949350505050565b600080829050601f815111156126fc578260405163305a27a960e01b81526004016106e69190613031565b805161270782613534565b179392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526106f9908490612bf4565b612769612862565b6001600160a01b0383166000908152600b6020526040902054839060ff16156127a45760405162461bcd60e51b81526004016106e690613558565b6001600160a01b0383166000908152600b6020526040902054839060ff16156127df5760405162461bcd60e51b81526004016106e690613558565b336000818152600b602052604090205460ff161561280f5760405162461bcd60e51b81526004016106e690613558565b505050505050565b600c5460ff166128605760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106e6565b565b600c5460ff16156128605760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106e6565b606060ff83146128bb5761154c83612cc6565b8180546128c790613411565b80601f01602080910402602001604051908101604052809291908181526020018280546128f390613411565b80156129405780601f1061291557610100808354040283529160200191612940565b820191906000526020600020905b81548152906001019060200180831161292357829003601f168201915b505050505090506107a4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156129835750600090506003612a30565b8460ff16601b1415801561299b57508460ff16601c14155b156129ac5750600090506004612a30565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a00573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a2957600060019250925050612a30565b9150600090505b94509492505050565b6000816004811115612a4d57612a4d61358f565b1415612a565750565b6001816004811115612a6a57612a6a61358f565b1415612ab85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e6565b6002816004811115612acc57612acc61358f565b1415612b1a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e6565b6003816004811115612b2e57612b2e61358f565b1415612b875760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e6565b6004816004811115612b9b57612b9b61358f565b1415610d6f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e6565b6000612c49826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d059092919063ffffffff16565b8051909150156106f95780806020019051810190612c6791906133bf565b6106f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e6565b60606000612cd383612d14565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60606126c98484600085612d3c565b600060ff8216601f8111156107a457604051632cd44ac360e21b815260040160405180910390fd5b606082471015612d9d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106e6565b600080866001600160a01b03168587604051612db991906135a5565b60006040518083038185875af1925050503d8060008114612df6576040519150601f19603f3d011682016040523d82523d6000602084013e612dfb565b606091505b5091509150612e0c87838387612e17565b979650505050505050565b60608315612e83578251612e7c576001600160a01b0385163b612e7c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e6565b50816126c9565b6126c98383815115612e985781518083602001fd5b8060405162461bcd60e51b81526004016106e69190613031565b828054612ebe90613411565b90600052602060002090601f016020900481019282612ee05760008555612f26565b82601f10612ef957805160ff1916838001178555612f26565b82800160010185558215612f26579182015b82811115612f26578251825591602001919060010190612f0b565b50612f32929150612f36565b5090565b5b80821115612f325760008155600101612f37565b60008083601f840112612f5d57600080fd5b50813567ffffffffffffffff811115612f7557600080fd5b6020830191508360208260051b8501011115612f9057600080fd5b9250929050565b60008060208385031215612faa57600080fd5b823567ffffffffffffffff811115612fc157600080fd5b612fcd85828601612f4b565b90969095509350505050565b60005b83811015612ff4578181015183820152602001612fdc565b8381111561094d5750506000910152565b6000815180845261301d816020860160208601612fd9565b601f01601f19169290920160200192915050565b6020815260006130446020830184613005565b9392505050565b6001600160a01b0381168114610d6f57600080fd5b6000806040838503121561307357600080fd5b823561307e8161304b565b946020939093013593505050565b6000806000606084860312156130a157600080fd5b83356130ac8161304b565b925060208401356130bc8161304b565b929592945050506040919091013590565b6000602082840312156130df57600080fd5b5035919050565b600080602083850312156130f957600080fd5b823567ffffffffffffffff8082111561311157600080fd5b818501915085601f83011261312557600080fd5b81358181111561313457600080fd5b86602060608302850101111561314957600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b818110156131ba576131a7838551805182526020808201516001600160a01b031690830152604090810151910152565b9284019260609290920191600101613177565b50909695505050505050565b600080600080604085870312156131dc57600080fd5b843567ffffffffffffffff808211156131f457600080fd5b61320088838901612f4b565b9096509450602087013591508082111561321957600080fd5b5061322687828801612f4b565b95989497509550505050565b60006020828403121561324457600080fd5b81356130448161304b565b60ff60f81b881681526000602060e08184015261326f60e084018a613005565b8381036040850152613281818a613005565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156132d3578351835292840192918401916001016132b7565b50909c9b505050505050505050505050565b815181526020808301516001600160a01b03169082015260408083015190820152606081016107a4565b600080600080600080600060e0888a03121561332a57600080fd5b87356133358161304b565b965060208801356133458161304b565b95506040880135945060608801359350608088013560ff8116811461336957600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561339957600080fd5b82356133a48161304b565b915060208301356133b48161304b565b809150509250929050565b6000602082840312156133d157600080fd5b8151801515811461304457600080fd5b6020808252601690820152751513d68e881c195c9b5a5cdcda5bdb8819195b9a595960521b604082015260600190565b600181811c9082168061342557607f821691505b6020821081141561344657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006060828403121561347457600080fd5b6040516060810181811067ffffffffffffffff821117156134a557634e487b7160e01b600052604160045260246000fd5b6040528235815260208301356134ba8161304b565b60208201526040928301359281019290925250919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156134fb576134fb6134d2565b500190565b60006020828403121561351257600080fd5b5051919050565b600060001982141561352d5761352d6134d2565b5060010190565b805160208083015191908110156134465760001960209190910360031b1b16919050565b6020808252601e908201527f426c6f636b4c6973743a20626c6f636b6c697374656420616464726573730000604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600082516135b7818460208701612fd9565b919091019291505056fea26469706673582212201c8e03d863ae3db685937876d56765dd6428230ae879c03e05098cda8577ccbe64736f6c634300080a0033