0x608060405234801561000f575f5ffd5b506004361061012f575f3560e01c806370a08231116100ad578063bf353dbb1161007d578063dd62ed3e11610063578063dd62ed3e1461033a578063e2fdcc171461034f578063ff10ebc614610376575f5ffd5b8063bf353dbb146102f4578063ccba5cd814610313575f5ffd5b806370a082311461028257806395d89b41146102955780639c52a7f1146102ce578063a9059cbb146102e1575f5ffd5b806323b872dd11610102578063313ce567116100e8578063313ce567146101ed57806365fae35e146102265780636f307dc31461023b575f5ffd5b806323b872dd146101c75780632f4f21e2146101da575f5ffd5b806306fdde0314610133578063095ea7b31461017e57806318160ddd146101a4578063205c2878146101b4575b5f5ffd5b60408051808201909152601281527f43656e7472696675676520494f5520434647000000000000000000000000000060208201525b6040516101759190610d46565b60405180910390f35b61019461018c366004610dc1565b600192915050565b6040519015158152602001610175565b5f5b604051908152602001610175565b6101946101c2366004610dc1565b61039d565b6101946101d5366004610de9565b6106b5565b6101946101e8366004610dc1565b61094d565b6102147f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610175565b610239610234366004610e23565b610bb1565b005b7f000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f05b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b6101a6610290366004610e23565b505f90565b60408051808201909152600681527f696f7543464700000000000000000000000000000000000000000000000000006020820152610168565b6102396102dc366004610e23565b610c4a565b6101946102ef366004610dc1565b610ce2565b6101a6610302366004610e23565b5f6020819052908152604090205481565b61025d7f000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a9481565b6101a6610348366004610e43565b5f92915050565b61025d7f0000000000000000000000000000000005f458fd6ba9eeb5f365d83b7da913dd81565b61025d7f000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f081565b5f73ffffffffffffffffffffffffffffffffffffffff8316610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f7a65726f2d616464726573730000000000000000000000000060448201526064015b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff84160361049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f73656c662d61646472657373000000000000000000000000006044820152606401610417565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527f000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a9473ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190610e74565b506040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a9473ffffffffffffffffffffffffffffffffffffffff16906342966c68906024015f604051808303815f87803b1580156105df575f5ffd5b505af11580156105f1573d5f5f3e3d5ffd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f016925063a9059cbb91506044016020604051808303815f875af1158015610687573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ab9190610e74565b5060019392505050565b335f908152602081905260408120546001146106fd576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000005f458fd6ba9eeb5f365d83b7da913dd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496f754366672f696e76616c69642d73656e64657200000000000000000000006044820152606401610417565b6040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390527f000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f073ffffffffffffffffffffffffffffffffffffffff16906340c10f19906044015f604051808303815f87803b15801561083d575f5ffd5b505af115801561084f573d5f5f3e3d5ffd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a941692506340c10f1991506044015f604051808303815f87803b1580156108e0575f5ffd5b505af11580156108f2573d5f5f3e3d5ffd5b50506040518481525f925073ffffffffffffffffffffffffffffffffffffffff871691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83166109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f7a65726f2d61646472657373000000000000000000000000006044820152606401610417565b3073ffffffffffffffffffffffffffffffffffffffff841603610a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f73656c662d61646472657373000000000000000000000000006044820152606401610417565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527f000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610ae0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b049190610e74565b506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490527f000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a9416906340c10f19906044015f604051808303815f87803b158015610b92575f5ffd5b505af1158015610ba4573d5f5f3e3d5ffd5b5060019695505050505050565b335f90815260208190526040902054600114610bf9576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b335f90815260208190526040902054600114610c92576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f81815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f556e737570706f7274656400000000000000000000000000000000000000000060448201525f90606401610417565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dbc575f5ffd5b919050565b5f5f60408385031215610dd2575f5ffd5b610ddb83610d99565b946020939093013593505050565b5f5f5f60608486031215610dfb575f5ffd5b610e0484610d99565b9250610e1260208501610d99565b929592945050506040919091013590565b5f60208284031215610e33575f5ffd5b610e3c82610d99565b9392505050565b5f5f60408385031215610e54575f5ffd5b610e5d83610d99565b9150610e6b60208401610d99565b90509250929050565b5f60208284031215610e84575f5ffd5b81518015158114610e3c575f5ffdfea26469706673582212200ea8c721cca1dfc90e8f2d8c7dd0bd7e1f0845e2b10518141411ad4a3ae477df64736f6c634300081c0033
0x610100604052348015610010575f5ffd5b506040516110ca3803806110ca83398101604081905261002f91610117565b6001600160a01b0384165f8181526020819052604080822060019055518692917fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6091a2506001600160a01b0380841660805282811660a081905290821660c0526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ec9190610168565b60ff1660e0525061018f92505050565b80516001600160a01b0381168114610112575f5ffd5b919050565b5f5f5f5f6080858703121561012a575f5ffd5b610133856100fc565b9350610141602086016100fc565b925061014f604086016100fc565b915061015d606086016100fc565b905092959194509250565b5f60208284031215610178575f5ffd5b815160ff81168114610188575f5ffd5b9392505050565b60805160a05160c05160e051610ec96102015f395f6101f201525f818161023d0152818161037b0152818161063f015281816107e70152610a8501525f8181610318015281816104da015281816105890152818161089d0152610b5101525f818161035401526106ff0152610ec95ff3fe608060405234801561000f575f5ffd5b506004361061012f575f3560e01c806370a08231116100ad578063bf353dbb1161007d578063dd62ed3e11610063578063dd62ed3e1461033a578063e2fdcc171461034f578063ff10ebc614610376575f5ffd5b8063bf353dbb146102f4578063ccba5cd814610313575f5ffd5b806370a082311461028257806395d89b41146102955780639c52a7f1146102ce578063a9059cbb146102e1575f5ffd5b806323b872dd11610102578063313ce567116100e8578063313ce567146101ed57806365fae35e146102265780636f307dc31461023b575f5ffd5b806323b872dd146101c75780632f4f21e2146101da575f5ffd5b806306fdde0314610133578063095ea7b31461017e57806318160ddd146101a4578063205c2878146101b4575b5f5ffd5b60408051808201909152601281527f43656e7472696675676520494f5520434647000000000000000000000000000060208201525b6040516101759190610d46565b60405180910390f35b61019461018c366004610dc1565b600192915050565b6040519015158152602001610175565b5f5b604051908152602001610175565b6101946101c2366004610dc1565b61039d565b6101946101d5366004610de9565b6106b5565b6101946101e8366004610dc1565b61094d565b6102147f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610175565b610239610234366004610e23565b610bb1565b005b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b6101a6610290366004610e23565b505f90565b60408051808201909152600681527f696f7543464700000000000000000000000000000000000000000000000000006020820152610168565b6102396102dc366004610e23565b610c4a565b6101946102ef366004610dc1565b610ce2565b6101a6610302366004610e23565b5f6020819052908152604090205481565b61025d7f000000000000000000000000000000000000000000000000000000000000000081565b6101a6610348366004610e43565b5f92915050565b61025d7f000000000000000000000000000000000000000000000000000000000000000081565b61025d7f000000000000000000000000000000000000000000000000000000000000000081565b5f73ffffffffffffffffffffffffffffffffffffffff8316610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f7a65726f2d616464726573730000000000000000000000000060448201526064015b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff84160361049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f73656c662d61646472657373000000000000000000000000006044820152606401610417565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190610e74565b506040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c68906024015f604051808303815f87803b1580156105df575f5ffd5b505af11580156105f1573d5f5f3e3d5ffd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016925063a9059cbb91506044016020604051808303815f875af1158015610687573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ab9190610e74565b5060019392505050565b335f908152602081905260408120546001146106fd576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496f754366672f696e76616c69642d73656e64657200000000000000000000006044820152606401610417565b6040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906340c10f19906044015f604051808303815f87803b15801561083d575f5ffd5b505af115801561084f573d5f5f3e3d5ffd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001692506340c10f1991506044015f604051808303815f87803b1580156108e0575f5ffd5b505af11580156108f2573d5f5f3e3d5ffd5b50506040518481525f925073ffffffffffffffffffffffffffffffffffffffff871691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83166109cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f7a65726f2d61646472657373000000000000000000000000006044820152606401610417565b3073ffffffffffffffffffffffffffffffffffffffff841603610a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496f754366672f73656c662d61646472657373000000000000000000000000006044820152606401610417565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015610ae0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b049190610e74565b506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015f604051808303815f87803b158015610b92575f5ffd5b505af1158015610ba4573d5f5f3e3d5ffd5b5060019695505050505050565b335f90815260208190526040902054600114610bf9576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f8181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b335f90815260208190526040902054600114610c92576040517fea8e4eb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f81815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f556e737570706f7274656400000000000000000000000000000000000000000060448201525f90606401610417565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610dbc575f5ffd5b919050565b5f5f60408385031215610dd2575f5ffd5b610ddb83610d99565b946020939093013593505050565b5f5f5f60608486031215610dfb575f5ffd5b610e0484610d99565b9250610e1260208501610d99565b929592945050506040919091013590565b5f60208284031215610e33575f5ffd5b610e3c82610d99565b9392505050565b5f5f60408385031215610e54575f5ffd5b610e5d83610d99565b9150610e6b60208401610d99565b90509250929050565b5f60208284031215610e84575f5ffd5b81518015158114610e3c575f5ffdfea26469706673582212200ea8c721cca1dfc90e8f2d8c7dd0bd7e1f0845e2b10518141411ad4a3ae477df64736f6c634300081c00330000000000000000000000007270b20603fbb3df0921381670fbd62b9991ada40000000000000000000000000000000005f458fd6ba9eeb5f365d83b7da913dd000000000000000000000000cccccccccc33d538dbc2ee4feab0a7a1ff4e8a94000000000000000000000000c221b7e65ffc80de234bbb6667abdd46593d34f0