60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b62001c3c1760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b613fc4806200015c6000396000f3fe60806040526004361061029f5760003560e01c8063715018a61161016e578063beabe13a116100cb578063f242432a1161007f578063f3fef3a311610064578063f3fef3a314610732578063f5298aca14610752578063f9f2c1611461077257600080fd5b8063f242432a146106f2578063f2fde38b1461071257600080fd5b8063d57ad856116100b0578063d57ad85614610676578063e203466914610689578063e985e9c5146106a957600080fd5b8063beabe13a1461064a578063c4fe87581461065f57600080fd5b8063a22cb46511610122578063a980bcd911610107578063a980bcd9146105fd578063b09a914114610612578063ba56f6ee1461062957600080fd5b8063a22cb465146105ca578063a2510f7d146105ea57600080fd5b806389a890021161015357806389a89002146105815780638da5cb5b1461059657806398ac13b9146105b457600080fd5b8063715018a6146105575780638129fc1c1461056c57600080fd5b8063279ad4171161021c578063472abf68116101d05780635100fda1116101b55780635100fda1146104e95780636b20c454146105175780636c19e7831461053757600080fd5b8063472abf68146104a75780634e1273f4146104bc57600080fd5b80632eb2c2d6116102015780632eb2c2d61461045157806332cb6b0c14610471578063454b06081461048757600080fd5b8063279ad417146103f25780632a55205a1461041257600080fd5b80630e89341c11610273578063160b74f111610258578063160b74f114610384578063238ac933146103a457806323afcdfe146103dd57600080fd5b80630e89341c14610340578063102b269d1461036d57600080fd5b8062fdd58e146102a457806301ffc9a7146102d757806304634d8d14610307578063060fd5d114610329575b600080fd5b3480156102b057600080fd5b506102c46102bf3660046134c3565b610792565b6040519081526020015b60405180910390f35b3480156102e357600080fd5b506102f76102f236600461351b565b61083d565b60405190151581526020016102ce565b34801561031357600080fd5b5061032761032236600461353f565b61084e565b005b34801561033557600080fd5b506102c46101335481565b34801561034c57600080fd5b5061036061035b366004613587565b610864565b6040516102ce91906135ed565b34801561037957600080fd5b506102c461012d5481565b34801561039057600080fd5b5061032761039f366004613587565b6108f8565b3480156103b057600080fd5b50610131546103c5906001600160a01b031681565b6040516001600160a01b0390911681526020016102ce565b3480156103e957600080fd5b506102c4610906565b3480156103fe57600080fd5b5061032761040d366004613587565b61094c565b34801561041e57600080fd5b5061043261042d366004613600565b61095a565b604080516001600160a01b0390931683526020830191909152016102ce565b34801561045d57600080fd5b5061032761046c366004613787565b610a39565b34801561047d57600080fd5b506102c4610dac81565b34801561049357600080fd5b506103276104a2366004613587565b610adb565b3480156104b357600080fd5b50610327610c24565b3480156104c857600080fd5b506104dc6104d7366004613831565b610d51565b6040516102ce9190613937565b3480156104f557600080fd5b506102c461050436600461394a565b61012e6020526000908152604090205481565b34801561052357600080fd5b50610327610532366004613965565b610e8f565b34801561054357600080fd5b5061032761055236600461394a565b610f2d565b34801561056357600080fd5b50610327610f70565b34801561057857600080fd5b50610327610f84565b34801561058d57600080fd5b506102c4600181565b3480156105a257600080fd5b5060fb546001600160a01b03166103c5565b3480156105c057600080fd5b506102c461020d81565b3480156105d657600080fd5b506103276105e53660046139d9565b6111dc565b6103276105f8366004613a4c565b6111e7565b34801561060957600080fd5b506102c4600a81565b34801561061e57600080fd5b506102c46101305481565b34801561063557600080fd5b50610132546103c5906001600160a01b031681565b34801561065657600080fd5b506102c461160c565b34801561066b57600080fd5b506102c46101345481565b610327610684366004613ac0565b61163d565b34801561069557600080fd5b506103276106a4366004613587565b6119ec565b3480156106b557600080fd5b506102f76106c4366004613b2a565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b3480156106fe57600080fd5b5061032761070d366004613b5d565b6119fa565b34801561071e57600080fd5b5061032761072d36600461394a565b611a95565b34801561073e57600080fd5b5061032761074d3660046134c3565b611b22565b34801561075e57600080fd5b5061032761076d366004613bc2565b611b60565b34801561077e57600080fd5b5061032761078d36600461394a565b611bf9565b60006001600160a01b0383166108155760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526065602090815260408083206001600160a01b03949094168352929052205490565b600061084882611c4b565b92915050565b610856611ca1565b6108608282611cfb565b5050565b60606067805461087390613bf5565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90613bf5565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b50505050509050919050565b610900611ca1565b61012d55565b6040517f5055424c494353414c455f53414c5400000000000000000000000000000000006020820152602f015b6040516020818303038152906040528051906020012081565b610954611ca1565b61013355565b600082815260ca602090815260408083208151808301909252546001600160a01b038116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff169282019290925282916109fb57506040805180820190915260c9546001600160a01b03811682527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1660208201525b602081015160009061271090610a1f906bffffffffffffffffffffffff1687613c78565b610a299190613cb5565b91519350909150505b9250929050565b6001600160a01b038516331480610a555750610a5585336106c4565b610ac75760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f7665640000000000000000000000000000000000606482015260840161080c565b610ad48585858585611e26565b5050505050565b333214610b14576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012d544290811015610b53576040517f6f312cbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610132546001600160a01b0316610b96576040517f6a0d78d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ba233600184611b60565b610132546040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018490526001600160a01b03909116906340c10f1990604401600060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b505050505050565b600054600290610100900460ff16158015610c46575060005460ff8083169116105b610cb85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161080c565b6000805466d529ae9e860000610133557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff8316908117610100177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b60608151835114610dca5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d617463680000000000000000000000000000000000000000000000606482015260840161080c565b6000835167ffffffffffffffff811115610de657610de6613622565b604051908082528060200260200182016040528015610e0f578160200160208202803683370190505b50905060005b8451811015610e8757610e5a858281518110610e3357610e33613cf0565b6020026020010151858381518110610e4d57610e4d613cf0565b6020026020010151610792565b828281518110610e6c57610e6c613cf0565b6020908102919091010152610e8081613d1f565b9050610e15565b509392505050565b6001600160a01b038316331480610eab5750610eab83336106c4565b610f1d5760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f7665640000000000000000000000000000000000606482015260840161080c565b610f288383836120bf565b505050565b610f35611ca1565b61013180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610f78611ca1565b610f82600061234e565b565b600054610100900460ff1615808015610fa45750600054600160ff909116105b80610fbe5750303b158015610fbe575060005460ff166001145b6110305760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161080c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561108e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6110af6040518060600160405280603f8152602001613f50603f91396123b8565b6110b761243e565b6110bf6124bb565b6110df73a48ca2164479ed21652213790a727371b8ec55876102ee611cfb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61012d5560fb5461013180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0390921691909117905561020d61013081905560408051602081019091526000815261117a9173402790dccfecb0b040f95a14c79385a9ff3636089160019190612540565b80156111d957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610d46565b50565b610860338383612672565b333214611220576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061133a338888888860405160200161125d907f50524553414c455f53414c5400000000000000000000000000000000000000008152600c0190565b60408051601f198184030181529082905280516020918201207fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606098891b811692840192909252603483019690965260548201949094526074810192909252609482015260b48101929092523090921b90911660d482015260e8015b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b61013154604080516020601f87018190048102820181019092528581529293506001600160a01b039091169161138d91849190879087908190840183828082843760009201919091525061278592505050565b6001600160a01b0316146113cd576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4285811015611408576040517f6f312cbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848110611441576040517f477383f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b88611478576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815261012e60205260409020548890611496908b90613d58565b11156114ce576040517f4f8fd3a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815261012e6020526040812080548b92906114ee908490613d58565b909155505061013054610dac90611506908b90613d58565b111561153e576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86896101305461154e9190613d58565b1115611586576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8861013060008282546115999190613d58565b9091555050610134546115ac908a613c78565b3410156115e5576040517f583aa02600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116013360018b60405180602001604052806000815250612540565b505050505050505050565b6040517f50524553414c455f53414c5400000000000000000000000000000000000000006020820152602c01610933565b333214611676576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611730338787876040516020016116b2907f5055424c494353414c455f53414c5400000000000000000000000000000000008152600f0190565b60405160208183030381529060405280519060200120306040516020016112da96959493929190606096871b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009081168252601482019690965260348101949094526054840192909252607483015290921b16609482015260a80190565b61013154604080516020601f87018190048102820181019092528581529293506001600160a01b039091169161178391849190879087908190840183828082843760009201919091525061278592505050565b6001600160a01b0316146117c3576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42858110156117fe576040517f6f312cbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848110611837576040517f477383f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600887901c600090815261012f6020526040902054600160ff89161b161561188b576040517ff37f8bbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600887901c600090815261012f602052604090208054600160ff8a161b179055600a8811156118e6576040517faab5a12300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8761191d576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dac886101305461192f9190613d58565b1115611967576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87610130600082825461197a9190613d58565b90915550506101335461198d9089613c78565b3410156119c6576040517f583aa02600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119e23360018a60405180602001604052806000815250612540565b5050505050505050565b6119f4611ca1565b61013455565b6001600160a01b038516331480611a165750611a1685336106c4565b611a885760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f7665640000000000000000000000000000000000606482015260840161080c565b610ad485858585856127a1565b611a9d611ca1565b6001600160a01b038116611b195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161080c565b6111d98161234e565b611b2a611ca1565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f28573d6000803e3d6000fd5b6001600160a01b038316331480611b7c5750611b7c83336106c4565b611bee5760405162461bcd60e51b815260206004820152602f60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206e6f7220617070726f7665640000000000000000000000000000000000606482015260840161080c565b610f28838383612970565b611c01611ca1565b61013280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a000000000000000000000000000000000000000000000000000000001480610848575061084882612b22565b60fb546001600160a01b03163314610f825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161080c565b6127106bffffffffffffffffffffffff82161115611d815760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c65507269636500000000000000000000000000000000000000000000606482015260840161080c565b6001600160a01b038216611dd75760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161080c565b604080518082019091526001600160a01b039092168083526bffffffffffffffffffffffff9091166020909201829052740100000000000000000000000000000000000000009091021760c955565b8151835114611e9d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d61746368000000000000000000000000000000000000000000000000606482015260840161080c565b6001600160a01b038416611f195760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161080c565b3360005b8451811015612059576000858281518110611f3a57611f3a613cf0565b602002602001015190506000858381518110611f5857611f58613cf0565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015611fff5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e7366657200000000000000000000000000000000000000000000606482015260840161080c565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061203e908490613d58565b925050819055505050508061205290613d1f565b9050611f1d565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516120a9929190613d70565b60405180910390a4610c1c818787878787612c05565b6001600160a01b03831661213b5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161080c565b80518251146121b25760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d61746368000000000000000000000000000000000000000000000000606482015260840161080c565b604080516020810190915260009081905233905b83518110156122e05760008482815181106121e3576121e3613cf0565b60200260200101519050600084838151811061220157612201613cf0565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156122a75760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015260840161080c565b60009283526065602090815260408085206001600160a01b038b16865290915290922091039055806122d881613d1f565b9150506121c6565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612331929190613d70565b60405180910390a460408051602081019091526000905250505050565b60fb80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161080c565b6111d981612e19565b600054610100900460ff16610f825760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161080c565b600054610100900460ff166125385760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161080c565b610f82612e9f565b6001600160a01b0384166125bc5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161080c565b3360006125c885612f25565b905060006125d585612f25565b905060008681526065602090815260408083206001600160a01b038b16845290915281208054879290612609908490613d58565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461266983600089898989612f70565b50505050505050565b816001600160a01b0316836001600160a01b031614156126fa5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c660000000000000000000000000000000000000000000000606482015260840161080c565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600080600061279485856130da565b91509150610e878161311d565b6001600160a01b03841661281d5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161080c565b33600061282985612f25565b9050600061283685612f25565b905060008681526065602090815260408083206001600160a01b038c168452909152902054858110156128d15760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e7366657200000000000000000000000000000000000000000000606482015260840161080c565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612910908490613d58565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611601848a8a8a8a8a612f70565b6001600160a01b0383166129ec5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161080c565b3360006129f884612f25565b90506000612a0584612f25565b6040805160208082018352600091829052888252606581528282206001600160a01b038b1683529052205490915084811015612aa85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015260840161080c565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612669565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001480612bb557507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061084857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610848565b6001600160a01b0384163b15610c1c576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c8190612c629089908990889088908890600401613d9e565b602060405180830381600087803b158015612c7c57600080fd5b505af1925050508015612cac575060408051601f3d908101601f19168201909252612ca991810190613dfc565b60015b612d6257612cb8613e19565b806308c379a01415612cf25750612ccd613e35565b80612cd85750612cf4565b8060405162461bcd60e51b815260040161080c91906135ed565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840161080c565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146126695760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e73000000000000000000000000000000000000000000000000606482015260840161080c565b600054610100900460ff16612e965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161080c565b6111d98161330e565b600054610100900460ff16612f1c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161080c565b610f823361234e565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612f5f57612f5f613cf0565b602090810291909101015292915050565b6001600160a01b0384163b15610c1c576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e6190612fcd9089908990889088908890600401613edd565b602060405180830381600087803b158015612fe757600080fd5b505af1925050508015613017575060408051601f3d908101601f1916820190925261301491810190613dfc565b60015b61302357612cb8613e19565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146126695760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e73000000000000000000000000000000000000000000000000606482015260840161080c565b6000808251604114156131115760208301516040840151606085015160001a61310587828585613321565b94509450505050610a32565b50600090506002610a32565b600081600481111561313157613131613f20565b141561313a5750565b600181600481111561314e5761314e613f20565b141561319c5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161080c565b60028160048111156131b0576131b0613f20565b14156131fe5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161080c565b600381600481111561321257613212613f20565b14156132865760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161080c565b600481600481111561329a5761329a613f20565b14156111d95760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161080c565b805161086090606790602084019061340e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156133585750600090506003613405565b8460ff16601b1415801561337057508460ff16601c14155b156133815750600090506004613405565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133d5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133fe57600060019250925050613405565b9150600090505b94509492505050565b82805461341a90613bf5565b90600052602060002090601f01602090048101928261343c5760008555613482565b82601f1061345557805160ff1916838001178555613482565b82800160010185558215613482579182015b82811115613482578251825591602001919060010190613467565b5061348e929150613492565b5090565b5b8082111561348e5760008155600101613493565b80356001600160a01b03811681146134be57600080fd5b919050565b600080604083850312156134d657600080fd5b6134df836134a7565b946020939093013593505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146111d957600080fd5b60006020828403121561352d57600080fd5b8135613538816134ed565b9392505050565b6000806040838503121561355257600080fd5b61355b836134a7565b915060208301356bffffffffffffffffffffffff8116811461357c57600080fd5b809150509250929050565b60006020828403121561359957600080fd5b5035919050565b6000815180845260005b818110156135c6576020818501810151868301820152016135aa565b818111156135d8576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061353860208301846135a0565b6000806040838503121561361357600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561367757613677613622565b6040525050565b600067ffffffffffffffff82111561369857613698613622565b5060051b60200190565b600082601f8301126136b357600080fd5b813560206136c08261367e565b6040516136cd8282613651565b83815260059390931b85018201928281019150868411156136ed57600080fd5b8286015b8481101561370857803583529183019183016136f1565b509695505050505050565b600082601f83011261372457600080fd5b813567ffffffffffffffff81111561373e5761373e613622565b6040516137556020601f19601f8501160182613651565b81815284602083860101111561376a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561379f57600080fd5b6137a8866134a7565b94506137b6602087016134a7565b9350604086013567ffffffffffffffff808211156137d357600080fd5b6137df89838a016136a2565b945060608801359150808211156137f557600080fd5b61380189838a016136a2565b9350608088013591508082111561381757600080fd5b5061382488828901613713565b9150509295509295909350565b6000806040838503121561384457600080fd5b823567ffffffffffffffff8082111561385c57600080fd5b818501915085601f83011261387057600080fd5b8135602061387d8261367e565b60405161388a8282613651565b83815260059390931b85018201928281019150898411156138aa57600080fd5b948201945b838610156138cf576138c0866134a7565b825294820194908201906138af565b965050860135925050808211156138e557600080fd5b506138f2858286016136a2565b9150509250929050565b600081518084526020808501945080840160005b8381101561392c57815187529582019590820190600101613910565b509495945050505050565b60208152600061353860208301846138fc565b60006020828403121561395c57600080fd5b613538826134a7565b60008060006060848603121561397a57600080fd5b613983846134a7565b9250602084013567ffffffffffffffff808211156139a057600080fd5b6139ac878388016136a2565b935060408601359150808211156139c257600080fd5b506139cf868287016136a2565b9150509250925092565b600080604083850312156139ec57600080fd5b6139f5836134a7565b91506020830135801515811461357c57600080fd5b60008083601f840112613a1c57600080fd5b50813567ffffffffffffffff811115613a3457600080fd5b602083019150836020828501011115610a3257600080fd5b600080600080600080600060c0888a031215613a6757600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115613aa157600080fd5b613aad8a828b01613a0a565b989b979a50959850939692959293505050565b60008060008060008060a08789031215613ad957600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff811115613b0c57600080fd5b613b1889828a01613a0a565b979a9699509497509295939492505050565b60008060408385031215613b3d57600080fd5b613b46836134a7565b9150613b54602084016134a7565b90509250929050565b600080600080600060a08688031215613b7557600080fd5b613b7e866134a7565b9450613b8c602087016134a7565b93506040860135925060608601359150608086013567ffffffffffffffff811115613bb657600080fd5b61382488828901613713565b600080600060608486031215613bd757600080fd5b613be0846134a7565b95602085013595506040909401359392505050565b600181811c90821680613c0957607f821691505b60208210811415613c43577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cb057613cb0613c49565b500290565b600082613ceb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d5157613d51613c49565b5060010190565b60008219821115613d6b57613d6b613c49565b500190565b604081526000613d8360408301856138fc565b8281036020840152613d9581856138fc565b95945050505050565b60006001600160a01b03808816835280871660208401525060a06040830152613dca60a08301866138fc565b8281036060840152613ddc81866138fc565b90508281036080840152613df081856135a0565b98975050505050505050565b600060208284031215613e0e57600080fd5b8151613538816134ed565b600060033d1115613e325760046000803e5060005160e01c5b90565b600060443d1015613e435790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff8160248401118184111715613e9157505050505090565b8285019150815181811115613ea95750505050505090565b843d8701016020828501011115613ec35750505050505090565b613ed260208286010187613651565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152613f1560a08301846135a0565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfe697066733a2f2f516d55416f67506b6762777a345a68455879536b6e786a43386e473979755961585648534139644d554a33426a5a2f7b69647d2e6a736f6ea2646970667358221220734dd952dc397a3c438b29a4e749d717439b60dffe53eab1f22642f03eea0ecc64736f6c63430008090033