0x60806040523480156200001157600080fd5b5060405162003d5638038062003d56833981016040819052620000349162000195565b6200003f336200007d565b6001805460ff60a01b191690556200005733620000cd565b600180546001600160a01b0319166001600160a01b0392909216919091179055620001c7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526002602052604090205460ff16156200013b5760405162461bcd60e51b815260206004820152601960248201527f4163636f756e7420697320616c72656164792070617573657200000000000000604482015260640160405180910390fd5b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8910160405180910390a150565b600060208284031215620001a857600080fd5b81516001600160a01b0381168114620001c057600080fd5b9392505050565b613b7f80620001d76000396000f3fe6080604052600436106102a05760003560e01c80636ef8d66d1161016e5780639e041b9d116100cb578063ed99bf431161007f578063ee91bab811610064578063ee91bab814610760578063f0cb57ce14610773578063f2fde38b1461078657600080fd5b8063ed99bf4314610720578063edea75921461074057600080fd5b8063a1a227fa116100b0578063a1a227fa146106cd578063b2c88775146106ed578063da754f441461070057600080fd5b80639e041b9d1461066c5780639f825f07146106ad57600080fd5b80638da5cb5b1161012257806399d32fc41161010757806399d32fc4146106245780639c1a65bd146106395780639c649fdf1461065957600080fd5b80638da5cb5b146105e657806395b6a1911461060457600080fd5b806380f51c121161015357806380f51c121461058157806382dc1ec4146105b15780638456cb59146105d157600080fd5b80636ef8d66d1461056c5780637cd2bffc1461050757600080fd5b80633f4ba83a1161021c578063583624b7116101d05780635c975abb116101b55780635c975abb1461051a5780635d5b09f2146105395780636b2c0f551461054c57600080fd5b8063583624b7146104e75780635ab7afc61461050757600080fd5b806346fbf68e1161020157806346fbf68e1461046e5780634cc42351146104a7578063547cad12146104c757600080fd5b80633f4ba83a1461043957806343a8c1371461044e57600080fd5b8063151ff4eb116102735780631de13e43116102585780631de13e431461039e57806327cbe705146103cb5780632d5fa47c1461041957600080fd5b8063151ff4eb1461034357806319ab453c1461037e57600080fd5b8063063ce4e5146102a5578063065c38fd146102ce5780630bcb4982146102f05780631140c84e14610303575b600080fd5b6102b86102b3366004612d41565b6107a6565b6040516102c59190612dd7565b60405180910390f35b3480156102da57600080fd5b506102ee6102e9366004612dff565b61088a565b005b6102b86102fe366004612e1c565b610943565b34801561030f57600080fd5b5061033361031e366004612dff565b60066020526000908152604090205460ff1681565b60405190151581526020016102c5565b34801561034f57600080fd5b5061037061035e366004612e90565b60036020526000908152604090205481565b6040519081526020016102c5565b34801561038a57600080fd5b506102ee610399366004612dff565b6109a9565b3480156103aa57600080fd5b506103be6103b9366004612eab565b6109d3565b6040516102c59190612f30565b3480156103d757600080fd5b506104016103e6366004612e90565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102c5565b34801561042557600080fd5b506102ee610434366004612f88565b610a78565b34801561044557600080fd5b506102ee610be2565b34801561045a57600080fd5b506102ee61046936600461300b565b610c4b565b34801561047a57600080fd5b50610333610489366004612dff565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156104b357600080fd5b506103be6104c2366004612e90565b610d50565b3480156104d357600080fd5b506102ee6104e2366004612dff565b610d69565b3480156104f357600080fd5b506102ee610502366004613077565b610e0e565b6102b86105153660046130ce565b610ee1565b34801561052657600080fd5b50600154600160a01b900460ff16610333565b6102ee610547366004613165565b610f49565b34801561055857600080fd5b506102ee610567366004612dff565b6111ad565b34801561057857600080fd5b506102ee611210565b34801561058d57600080fd5b5061033361059c366004612dff565b60026020526000908152604090205460ff1681565b3480156105bd57600080fd5b506102ee6105cc366004612dff565b611219565b3480156105dd57600080fd5b506102ee611279565b3480156105f257600080fd5b506000546001600160a01b0316610401565b34801561061057600080fd5b506102ee61061f3660046131c5565b6112e0565b34801561063057600080fd5b506102ee6113c1565b34801561064557600080fd5b5061037061065436600461320e565b611478565b6102b861066736600461324d565b6116f1565b34801561067857600080fd5b50610401610687366004612eab565b60056020908152600092835260408084209091529082529020546001600160a01b031681565b3480156106b957600080fd5b506102ee6106c836600461329a565b6117a3565b3480156106d957600080fd5b50600154610401906001600160a01b031681565b6102ee6106fb3660046132c4565b611854565b34801561070c57600080fd5b506102ee61071b366004613315565b611ab6565b34801561072c57600080fd5b506102ee61073b366004612dff565b611b77565b34801561074c57600080fd5b506102ee61075b36600461334c565b611c25565b6102ee61076e36600461339f565b611cd4565b6102ee61078136600461343c565b611e23565b34801561079257600080fd5b506102ee6107a1366004612dff565b611f73565b6001546000906001600160a01b031633146108085760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206973206e6f74206d657373616765206275730000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff1680610865575067ffffffffffffffff851660009081526007602052604090819020905161084291906134f9565b6040518091039020878760405161085a92919061356f565b604051809103902014155b1561087257506002610880565b61087d84848761204f565b90505b9695505050505050565b3361089d6000546001600160a01b031690565b6001600160a01b0316146108e15760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6001600160a01b038116600081815260066020908152604091829020805460ff191660019081179091558251938452908301527f9800fb32bf5eb9a3b2e42c910912da10ed1881dc538475101797669146166bf891015b60405180910390a150565b6001546000906001600160a01b031633146109a05760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206973206e6f74206d657373616765206275730000000000000060448201526064016107ff565b95945050505050565b6109b161227e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6008602090815260009283526040808420909152908252902080546109f7906134bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610a23906134bf565b8015610a705780601f10610a4557610100808354040283529160200191610a70565b820191906000526020600020905b815481529060010190602001808311610a5357829003601f168201915b505050505081565b33610a8b6000546001600160a01b031690565b6001600160a01b031614610acf5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b828114610b1e5760405162461bcd60e51b815260206004820152600f60248201527f6c656e677468206d69736d61746368000000000000000000000000000000000060448201526064016107ff565b60005b83811015610bda57828282818110610b3b57610b3b61357f565b9050602002016020810190610b509190612dff565b6001600160a01b038716600090815260056020526040812090878785818110610b7b57610b7b61357f565b9050602002016020810190610b909190612e90565b67ffffffffffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905580610bd2816135ab565b915050610b21565b505050505050565b3360009081526002602052604090205460ff16610c415760405162461bcd60e51b815260206004820152601460248201527f43616c6c6572206973206e6f742070617573657200000000000000000000000060448201526064016107ff565b610c496122e0565b565b33610c5e6000546001600160a01b031690565b6001600160a01b031614610ca25760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b60005b83811015610d4957828282818110610cbf57610cbf61357f565b9050602002016020810190610cd49190612dff565b60046000878785818110610cea57610cea61357f565b9050602002016020810190610cff9190612e90565b67ffffffffffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905580610d41816135ab565b915050610ca5565b5050505050565b600760205260009081526040902080546109f7906134bf565b33610d7c6000546001600160a01b031690565b6001600160a01b031614610dc05760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3f8223bcd8b3b875473e9f9e14e1ad075451a2b5ffd31591655da9a01516bf5e90602001610938565b33610e216000546001600160a01b031690565b6001600160a01b031614610e655760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6001600160a01b038416600090815260086020908152604080832067ffffffffffffffff871684529091529020610e9d828483613625565b507f1a8a0120788995f98396f44447190686d4b5978184ca4f9d726d541aed6fb7d684848484604051610ed3949392919061370e565b60405180910390a150505050565b6001546000906001600160a01b03163314610f3e5760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206973206e6f74206d657373616765206275730000000000000060448201526064016107ff565b979650505050505050565b600154600160a01b900460ff1615610f965760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ff565b6040516331a9108f60e11b8152600481018590526001600160a01b03861690636352211e90602401602060405180830381865afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff9190613741565b6001600160a01b0316336001600160a01b0316146110515760405162461bcd60e51b815260206004820152600f60248201526e3737ba103a37b5b2b71037bbb732b960891b60448201526064016107ff565b60405163c87b56dd60e01b8152600481018590526000906001600160a01b0387169063c87b56dd90602401600060405180830381865afa158015611099573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110c191908101906137e0565b90506110cd8686612386565b6000806110da888761252c565b915091506111608287604051806080016040528089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602080820187905260408083018e90526060909201899052905161114c929101613853565b604051602081830303815290604052612736565b7f161c0f80e624fd7198682c940eb06e3a33589fef44e083931a0a7908ea1a1a5e3389898989898760405161119b97969594939291906138b5565b60405180910390a15050505050505050565b336111c06000546001600160a01b031690565b6001600160a01b0316146112045760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b61120d8161287f565b50565b610c493361287f565b3361122c6000546001600160a01b031690565b6001600160a01b0316146112705760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b61120d81612938565b3360009081526002602052604090205460ff166112d85760405162461bcd60e51b815260206004820152601460248201527f43616c6c6572206973206e6f742070617573657200000000000000000000000060448201526064016107ff565b610c496129f5565b336112f36000546001600160a01b031690565b6001600160a01b0316146113375760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6001600160a01b03838116600081815260056020908152604080832067ffffffffffffffff88168085529083529281902080546001600160a01b03191695871695861790558051938452908301919091528101919091527fa5a9b84f1b7eb437335ea919a3ff6de6e242e4733d0100a77391106173794871906060015b60405180910390a1505050565b336113d46000546001600160a01b031690565b6001600160a01b0316146114185760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6040514790339082156108fc029083906000818181858888f19350505050158015611447573d6000803e3d6000fd5b506040518181527f62b10e3ff3d45b5ff546e740b893897facb1680285f989a64ae932d62c5388e190602001610938565b60405163c87b56dd60e01b81526004810182905260009081906001600160a01b0385169063c87b56dd90602401600060405180830381865afa1580156114c2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ea91908101906137e0565b6001600160a01b038516600090815260086020908152604080832067ffffffffffffffff8a16845290915281208054929350606092611528906134bf565b80601f0160208091040260200160405190810160405280929190818152602001828054611554906134bf565b80156115a15780601f10611576576101008083540402835291602001916115a1565b820191906000526020600020905b81548152906001019060200180831161158457829003601f168201915b505050505090506000815111156115f9576040518060800160405280828152602001828152602001868152602001848152506040516020016115e39190613853565b604051602081830303815290604052915061164e565b6040518060800160405280876001600160a01b03168152602001876001600160a01b031681526020018681526020018481525060405160200161163c9190613918565b60405160208183030381529060405291505b67ffffffffffffffff87166000908152600360205260409081902054600154915163299aee5160e11b815290916001600160a01b031690635335dca290611699908690600401612f30565b602060405180830381865afa1580156116b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116da9190613966565b6116e4919061397f565b93505050505b9392505050565b6001546000906001600160a01b0316331461174e5760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206973206e6f74206d657373616765206275730000000000000060448201526064016107ff565b600154600160a01b900460ff168061178b575067ffffffffffffffff85166000908152600460205260409020546001600160a01b03878116911614155b15611798575060026109a0565b61088084848761204f565b336117b66000546001600160a01b031690565b6001600160a01b0316146117fa5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b67ffffffffffffffff8216600081815260036020908152604091829020849055815192835282018390527f446a287c2114fa54d0083d97ce8f6f15b2ce29fa1c2df4b5a580d581ea7c4ad391015b60405180910390a15050565b600154600160a01b900460ff16156118a15760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ff565b6040516331a9108f60e11b8152600481018490526001600160a01b03851690636352211e90602401602060405180830381865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190613741565b6001600160a01b0316336001600160a01b03161461195c5760405162461bcd60e51b815260206004820152600f60248201526e3737ba103a37b5b2b71037bbb732b960891b60448201526064016107ff565b60405163c87b56dd60e01b8152600481018490526000906001600160a01b0386169063c87b56dd90602401600060405180830381865afa1580156119a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119cc91908101906137e0565b90506119d88585612386565b6000806119e58786612a7d565b91509150611a4582866040518060800160405280886001600160a01b03168152602001856001600160a01b031681526020018a815260200187815250604051602001611a319190613918565b604051602081830303815290604052612b6c565b604080513381526001600160a01b03898116602083015281830189905267ffffffffffffffff881660608301528681166080830152831660a082015290517f40143e5b72b2109d658cfa709dec6213f60364dbd08b7253cdaf5f4e0c49561c9181900360c00190a150505050505050565b33611ac96000546001600160a01b031690565b6001600160a01b031614611b0d5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b67ffffffffffffffff821660008181526004602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f3e776334b24c927645043308f89ac1ca734002e5a921ff384a70dcbb88c92cd49101611848565b33611b8a6000546001600160a01b031690565b6001600160a01b031614611bce5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6001600160a01b0381166000818152600660209081526040808320805460ff191690558051938452908301919091527f9800fb32bf5eb9a3b2e42c910912da10ed1881dc538475101797669146166bf89101610938565b33611c386000546001600160a01b031690565b6001600160a01b031614611c7c5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b67ffffffffffffffff83166000908152600760205260409020611ca0828483613625565b507ff00f7a8fa03b713f64d18cad2ad60051000162263e005d5ed22c692f42c4a2eb8383836040516113b493929190613998565b600154600160a01b900460ff1615611d215760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ff565b33600080611d2f838b61252c565b91509150611dd4828b60405180608001604052808c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602080820187905260408083018d90528051601f8c018390048302810183019091528a8152606090920191908b908b9081908401838280828437600092019190915250505091525060405161114c9190602001613853565b7f161c0f80e624fd7198682c940eb06e3a33589fef44e083931a0a7908ea1a1a5e8984888d8c8c87604051611e0f97969594939291906138b5565b60405180910390a150505050505050505050565b600154600160a01b900460ff1615611e705760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ff565b33600080611e7e838a612a7d565b91509150611efe828a60405180608001604052808b6001600160a01b03168152602001856001600160a01b031681526020018a815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250604051611a319190602001613918565b604080516001600160a01b038a81168252858116602083015281830189905267ffffffffffffffff8c1660608301528981166080830152831660a082015290517f40143e5b72b2109d658cfa709dec6213f60364dbd08b7253cdaf5f4e0c49561c9181900360c00190a1505050505050505050565b33611f866000546001600160a01b031690565b6001600160a01b031614611fca5760405162461bcd60e51b81526020600482018190526024820152600080516020613b2a83398151915260448201526064016107ff565b6001600160a01b0381166120465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107ff565b61120d81612c7d565b60008061205e848601866139bc565b6020808201516001600160a01b031660009081526006909152604090205490915060ff161515600103612174576020810151815160408084015190516323b872dd60e01b81523060048201526001600160a01b03928316602482015260448101919091529116906323b872dd90606401600060405180830381600087803b1580156120e857600080fd5b505af19250505080156120f9575060015b61216f573d808015612127576040519150601f19603f3d011682016040523d82523d6000602084013e61212c565b606091505b507f2c4d9008b1f58a23591c25a813b398a54f438d50b85bedea3d6e7302ee08a8108160405161215c9190612f30565b60405180910390a16002925050506116ea565b61220c565b60208101518151604080840151606085015191516333eba6f160e11b81526001600160a01b03909416936367d74de2936121b393909291600401613a9a565b600060405180830381600087803b1580156121cd57600080fd5b505af19250505080156121de575060015b61220c573d808015612127576040519150601f19603f3d011682016040523d82523d6000602084013e61212c565b805160208083015160408085015181516001600160a01b03958616815294909216928401929092528282015267ffffffffffffffff85166060830152517f0aac355db06d21352d6b898d8e0ae1334d55f65b6c4c09e26951166a8eb4dba79181900360800190a1506001949350505050565b6000546001600160a01b0316156122d75760405162461bcd60e51b815260206004820152601160248201527f6f776e657220616c72656164792073657400000000000000000000000000000060448201526064016107ff565b610c4933612c7d565b600154600160a01b900460ff166123395760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016107ff565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821660009081526006602052604090205460ff1615156001036124d6576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd90606401600060405180830381600087803b1580156123f957600080fd5b505af115801561240d573d6000803e3d6000fd5b50506040516331a9108f60e11b8152600481018490523092506001600160a01b0385169150636352211e90602401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c9190613741565b6001600160a01b0316146124d25760405162461bcd60e51b815260206004820152601360248201527f7472616e73666572204e4654206661696c65640000000000000000000000000060448201526064016107ff565b5050565b604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561251857600080fd5b505af1158015610bda573d6000803e3d6000fd5b67ffffffffffffffff8116600090815260076020526040902080546060918291612555906134bf565b80601f0160208091040260200160405190810160405280929190818152602001828054612581906134bf565b80156125ce5780601f106125a3576101008083540402835291602001916125ce565b820191906000526020600020905b8154815290600101906020018083116125b157829003601f168201915b5050505050915081516000036126265760405162461bcd60e51b815260206004820152601960248201527f64657374204e465420427269646765206e6f7420666f756e640000000000000060448201526064016107ff565b6001600160a01b038416600090815260086020908152604080832067ffffffffffffffff871684529091529020805461265e906134bf565b80601f016020809104026020016040519081016040528092919081815260200182805461268a906134bf565b80156126d75780601f106126ac576101008083540402835291602001916126d7565b820191906000526020600020905b8154815290600101906020018083116126ba57829003601f168201915b50505050509050805160000361272f5760405162461bcd60e51b815260206004820152601260248201527f64657374204e4654206e6f7420666f756e64000000000000000000000000000060448201526064016107ff565b9250929050565b60015460405163299aee5160e11b81526000916001600160a01b031690635335dca290612767908590600401612f30565b602060405180830381865afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613966565b67ffffffffffffffff84166000908152600360205260409020549091506127cf908261397f565b3410156128115760405162461bcd60e51b815260206004820152601060248201526f696e73756666696369656e742066656560801b60448201526064016107ff565b600154604051637d7a101d60e01b81526001600160a01b0390911690637d7a101d90839061284790889088908890600401613ac2565b6000604051808303818588803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050505050505050565b6001600160a01b03811660009081526002602052604090205460ff166128e75760405162461bcd60e51b815260206004820152601560248201527f4163636f756e74206973206e6f7420706175736572000000000000000000000060448201526064016107ff565b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e9101610938565b6001600160a01b03811660009081526002602052604090205460ff16156129a15760405162461bcd60e51b815260206004820152601960248201527f4163636f756e7420697320616c7265616479207061757365720000000000000060448201526064016107ff565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f89101610938565b600154600160a01b900460ff1615612a425760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107ff565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123693390565b67ffffffffffffffff81166000908152600460205260408120546001600160a01b03169081612aee5760405162461bcd60e51b815260206004820152601960248201527f64657374204e465420427269646765206e6f7420666f756e640000000000000060448201526064016107ff565b506001600160a01b03808416600090815260056020908152604080832067ffffffffffffffff87168452909152902054168061272f5760405162461bcd60e51b815260206004820152601260248201527f64657374204e4654206e6f7420666f756e64000000000000000000000000000060448201526064016107ff565b60015460405163299aee5160e11b81526000916001600160a01b031690635335dca290612b9d908590600401612f30565b602060405180830381865afa158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde9190613966565b67ffffffffffffffff8416600090815260036020526040902054909150612c05908261397f565b341015612c475760405162461bcd60e51b815260206004820152601060248201526f696e73756666696369656e742066656560801b60448201526064016107ff565b600154604051634f9e72ad60e11b81526001600160a01b0390911690639f3ce55a90839061284790889088908890600401613af7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112612cdf57600080fd5b50813567ffffffffffffffff811115612cf757600080fd5b60208301915083602082850101111561272f57600080fd5b803567ffffffffffffffff81168114612d2757600080fd5b919050565b6001600160a01b038116811461120d57600080fd5b60008060008060008060808789031215612d5a57600080fd5b863567ffffffffffffffff80821115612d7257600080fd5b612d7e8a838b01612ccd565b9098509650869150612d9260208a01612d0f565b95506040890135915080821115612da857600080fd5b50612db589828a01612ccd565b9094509250506060870135612dc981612d2c565b809150509295509295509295565b6020810160038310612df957634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215612e1157600080fd5b81356116ea81612d2c565b600080600080600060808688031215612e3457600080fd5b8535612e3f81612d2c565b945060208601359350604086013567ffffffffffffffff811115612e6257600080fd5b612e6e88828901612ccd565b9094509250506060860135612e8281612d2c565b809150509295509295909350565b600060208284031215612ea257600080fd5b6116ea82612d0f565b60008060408385031215612ebe57600080fd5b8235612ec981612d2c565b9150612ed760208401612d0f565b90509250929050565b60005b83811015612efb578181015183820152602001612ee3565b50506000910152565b60008151808452612f1c816020860160208601612ee0565b601f01601f19169290920160200192915050565b6020815260006116ea6020830184612f04565b60008083601f840112612f5557600080fd5b50813567ffffffffffffffff811115612f6d57600080fd5b6020830191508360208260051b850101111561272f57600080fd5b600080600080600060608688031215612fa057600080fd5b8535612fab81612d2c565b9450602086013567ffffffffffffffff80821115612fc857600080fd5b612fd489838a01612f43565b90965094506040880135915080821115612fed57600080fd5b50612ffa88828901612f43565b969995985093965092949392505050565b6000806000806040858703121561302157600080fd5b843567ffffffffffffffff8082111561303957600080fd5b61304588838901612f43565b9096509450602087013591508082111561305e57600080fd5b5061306b87828801612f43565b95989497509550505050565b6000806000806060858703121561308d57600080fd5b843561309881612d2c565b93506130a660208601612d0f565b9250604085013567ffffffffffffffff8111156130c257600080fd5b61306b87828801612ccd565b600080600080600080600060c0888a0312156130e957600080fd5b87356130f481612d2c565b9650602088013561310481612d2c565b95506040880135945061311960608901612d0f565b9350608088013567ffffffffffffffff81111561313557600080fd5b6131418a828b01612ccd565b90945092505060a088013561315581612d2c565b8091505092959891949750929550565b60008060008060006080868803121561317d57600080fd5b853561318881612d2c565b94506020860135935061319d60408701612d0f565b9250606086013567ffffffffffffffff8111156131b957600080fd5b612ffa88828901612ccd565b6000806000606084860312156131da57600080fd5b83356131e581612d2c565b92506131f360208501612d0f565b9150604084013561320381612d2c565b809150509250925092565b60008060006060848603121561322357600080fd5b61322c84612d0f565b9250602084013561323c81612d2c565b929592945050506040919091013590565b60008060008060006080868803121561326557600080fd5b853561327081612d2c565b945061327e60208701612d0f565b9350604086013567ffffffffffffffff811115612e6257600080fd5b600080604083850312156132ad57600080fd5b6132b683612d0f565b946020939093013593505050565b600080600080608085870312156132da57600080fd5b84356132e581612d2c565b9350602085013592506132fa60408601612d0f565b9150606085013561330a81612d2c565b939692955090935050565b6000806040838503121561332857600080fd5b61333183612d0f565b9150602083013561334181612d2c565b809150509250929050565b60008060006040848603121561336157600080fd5b61336a84612d0f565b9250602084013567ffffffffffffffff81111561338657600080fd5b61339286828701612ccd565b9497909650939450505050565b600080600080600080600060a0888a0312156133ba57600080fd5b6133c388612d0f565b965060208801356133d381612d2c565b9550604088013567ffffffffffffffff808211156133f057600080fd5b6133fc8b838c01612ccd565b909750955060608a0135945060808a013591508082111561341c57600080fd5b506134298a828b01612ccd565b989b979a50959850939692959293505050565b60008060008060008060a0878903121561345557600080fd5b61345e87612d0f565b9550602087013561346e81612d2c565b9450604087013561347e81612d2c565b935060608701359250608087013567ffffffffffffffff8111156134a157600080fd5b6134ad89828a01612ccd565b979a9699509497509295939492505050565b600181811c908216806134d357607f821691505b6020821081036134f357634e487b7160e01b600052602260045260246000fd5b50919050565b6000808354613507816134bf565b6001828116801561351f576001811461353457613563565b60ff1984168752821515830287019450613563565b8760005260208060002060005b8581101561355a5781548a820152908401908201613541565b50505082870194505b50929695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016135bd576135bd613595565b5060010190565b634e487b7160e01b600052604160045260246000fd5b601f82111561362057600081815260208120601f850160051c810160208610156136015750805b601f850160051c820191505b81811015610bda5782815560010161360d565b505050565b67ffffffffffffffff83111561363d5761363d6135c4565b6136518361364b83546134bf565b836135da565b6000601f841160018114613685576000851561366d5750838201355b600019600387901b1c1916600186901b178355610d49565b600083815260209020601f19861690835b828110156136b65786850135825560209485019460019092019101613696565b50868210156136d35760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038516815267ffffffffffffffff841660208201526060604082015260006108806060830184866136e5565b60006020828403121561375357600080fd5b81516116ea81612d2c565b6040516080810167ffffffffffffffff81118282101715613781576137816135c4565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156137b0576137b06135c4565b604052919050565b600067ffffffffffffffff8211156137d2576137d26135c4565b50601f01601f191660200190565b6000602082840312156137f257600080fd5b815167ffffffffffffffff81111561380957600080fd5b8201601f8101841361381a57600080fd5b805161382d613828826137b8565b613787565b81815285602083850101111561384257600080fd5b6109a0826020830160208601612ee0565b60208152600082516080602084015261386f60a0840182612f04565b90506020840151601f198085840301604086015261388d8383612f04565b9250604086015160608601526060860151915080858403016080860152506109a08282612f04565b60006001600160a01b03808a16835280891660208401525086604083015267ffffffffffffffff8616606083015260c060808301526138f860c0830185876136e5565b82810360a084015261390a8185612f04565b9a9950505050505050505050565b6020815260006001600160a01b038084511660208401528060208501511660408401525060408301516060830152606083015160808084015261395e60a0840182612f04565b949350505050565b60006020828403121561397857600080fd5b5051919050565b8082018082111561399257613992613595565b92915050565b67ffffffffffffffff841681526040602082015260006109a06040830184866136e5565b600060208083850312156139cf57600080fd5b823567ffffffffffffffff808211156139e757600080fd5b90840190608082870312156139fb57600080fd5b613a0361375e565b8235613a0e81612d2c565b815282840135613a1d81612d2c565b8185015260408381013590820152606083013582811115613a3d57600080fd5b80840193505086601f840112613a5257600080fd5b82359150613a62613828836137b8565b8281528785848601011115613a7657600080fd5b82858501868301376000858483010152806060830152508094505050505092915050565b6001600160a01b03841681528260208201526060604082015260006109a06060830184612f04565b606081526000613ad56060830186612f04565b67ffffffffffffffff8516602084015282810360408401526108808185612f04565b6001600160a01b038416815267ffffffffffffffff831660208201526060604082015260006109a06060830184612f0456fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220b858f5b10153bc66bb5164b900409fd0964426a32294f87e83a5e247222a2a4b64736f6c634300081100330000000000000000000000009bb46d5100d2db4608112026951c9c965b233f4d