0x60a06040523060601b60805234801561001757600080fd5b5060805160601c613c0361004b6000396000818161110801528181611148015281816111ef015261122f0152613c036000f3fe6080604052600436106103855760003560e01c8063937b2581116101d1578063c3a77a5511610102578063cf1d21c0116100a0578063edd3c0da1161006f578063edd3c0da14610a24578063f5b944eb14610a45578063fabd034114610a67578063fe9d33e114610ab15761038c565b8063cf1d21c0146109a5578063d547741f146109cd578063d9158876146109ed578063ec2fd88f14610a045761038c565b8063c6b9d286116100dc578063c6b9d2861461091b578063c87965721461094f578063c89039c514610964578063cd4395d0146109855761038c565b8063c3a77a55146108c2578063c44d4605146108e2578063c4a103c3146109045761038c565b8063b24f42761161016f578063ba66d72f11610149578063ba66d72f14610855578063bb0d68871461086b578063bbd4e8c91461088b578063c2fc2110146108a25761038c565b8063b24f427614610801578063b6b55f2514610821578063b9982dd2146108345761038c565b80639d4f5296116101ab5780639d4f5296146107975780639d5121f2146107ac578063a217fddf146107cc578063a3ef20a0146107e15761038c565b8063937b2581146106e857806397d14456146107575780639c82f2a4146107775761038c565b80633f4ba83a116102b65780636e995de8116102545780638da2c04d116102235780638da2c04d14610680578063910857db1461069557806391d14854146106b557806392dace96146106d55761038c565b80636e995de8146106125780638456cb5914610632578063870b9a6d146106475780638ad682af1461065e5761038c565b80635e67651e116102905780635e67651e146105af57806364e685bb146105c45780636aced503146105db5780636c3f3917146105f25761038c565b80633f4ba83a1461056f5780634f1ef286146105845780635c975abb146105975761038c565b80632b3297f9116103235780632f6b9eab116102fd5780632f6b9eab146105015780633531ac6e1461051857806336568abe1461052f5780633659cfe61461054f5761038c565b80632b3297f9146104ad5780632e1a7d4d146104ce5780632f2ff15d146104e15761038c565b8063166959f81161035f578063166959f8146104025780631799a2a11461042257806322bf2e241461045b578063248a9ca31461047d5761038c565b806301ffc9a714610391578063157e3945146103c65780631660218a146103eb5761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103b16103ac36600461365d565b610ad2565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b506103dd6101395481565b6040519081526020016103bd565b3480156103f757600080fd5b50610400610b09565b005b34801561040e57600080fd5b5061040061041d366004613702565b610b68565b34801561042e57600080fd5b5061013254610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561046757600080fd5b506103dd600080516020613b6e83398151915281565b34801561048957600080fd5b506103dd610498366004613616565b60009081526065602052604090206001015490565b3480156104b957600080fd5b5061012f54610443906001600160a01b031681565b6104006104dc366004613616565b610e53565b3480156104ed57600080fd5b506104006104fc36600461362e565b611054565b34801561050d57600080fd5b506103dd6101355481565b34801561052457600080fd5b506103dd6101375481565b34801561053b57600080fd5b5061040061054a36600461362e565b61107f565b34801561055b57600080fd5b5061040061056a3660046133eb565b6110fd565b34801561057b57600080fd5b506104006111c3565b6104006105923660046134a1565b6111e4565b3480156105a357600080fd5b5060fb5460ff166103b1565b3480156105bb57600080fd5b506103dd601281565b3480156105d057600080fd5b506103dd61012e5481565b3480156105e757600080fd5b506103dd61013a5481565b3480156105fe57600080fd5b5061040061060d366004613543565b61129a565b34801561061e57600080fd5b5061040061062d366004613702565b61145e565b34801561063e57600080fd5b5061040061149d565b34801561065357600080fd5b506103dd6101345481565b34801561066a57600080fd5b506103dd600080516020613bae83398151915281565b34801561068c57600080fd5b506104006114be565b3480156106a157600080fd5b506104006106b0366004613616565b611510565b3480156106c157600080fd5b506103b16106d036600461362e565b611530565b6104006106e33660046136b0565b61155b565b3480156106f457600080fd5b50610732610703366004613616565b61013d60205260009081526040902080546001909101546001600160a01b03811690600160a01b900460ff1683565b604080519384526001600160a01b0390921660208401521515908201526060016103bd565b34801561076357600080fd5b506104006107723660046133eb565b61175d565b34801561078357600080fd5b506104006107923660046133eb565b6117f4565b3480156107a357600080fd5b506103dd600881565b3480156107b857600080fd5b506104006107c73660046133eb565b61187f565b3480156107d857600080fd5b506103dd600081565b3480156107ed57600080fd5b506104006107fc366004613616565b611938565b34801561080d57600080fd5b5061040061081c366004613723565b611958565b61040061082f366004613616565b611ccf565b34801561084057600080fd5b5061013054610443906001600160a01b031681565b34801561086157600080fd5b506103dd61271081565b34801561087757600080fd5b506103dd610886366004613616565b611f35565b34801561089757600080fd5b506103dd6101385481565b3480156108ae57600080fd5b506104006108bd366004613685565b611f53565b3480156108ce57600080fd5b506104006108dd366004613407565b612094565b3480156108ee57600080fd5b506103dd600080516020613b8e83398151915281565b34801561091057600080fd5b506103dd6101365481565b34801561092757600080fd5b506101315461093d90600160a01b900460ff1681565b60405160ff90911681526020016103bd565b34801561095b57600080fd5b5061040061234c565b34801561097057600080fd5b5061013154610443906001600160a01b031681565b34801561099157600080fd5b506104006109a0366004613616565b61239e565b3480156109b157600080fd5b5061044373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156109d957600080fd5b506104006109e836600461362e565b612453565b3480156109f957600080fd5b506103dd61012d5481565b348015610a1057600080fd5b50610400610a1f3660046133eb565b612479565b348015610a3057600080fd5b5061013354610443906001600160a01b031681565b348015610a5157600080fd5b506103dd600080516020613b2783398151915281565b348015610a7357600080fd5b50610732610a82366004613616565b61013c60205260009081526040902080546001909101546001600160a01b03811690600160a01b900460ff1683565b348015610abd57600080fd5b5061013b54610443906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b1480610b0357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fb5460ff1615610b355760405162461bcd60e51b8152600401610b2c906138aa565b60405180910390fd5b600080516020613b6e833981519152610b4f81335b6124b6565b61013054610b65906001600160a01b031661251a565b50565b60fb5460ff1615610b8b5760405162461bcd60e51b8152600401610b2c906138aa565b600080516020613b8e833981519152610ba48133610b4a565b610138548310610bef5760405162461bcd60e51b815260206004820152601660248201527511549497d253959053125117d1115413d4d25517d25160521b6044820152606401610b2c565b600083815261013c602052604090206001810154600160a01b900460ff1615610c5a5760405162461bcd60e51b815260206004820152601c60248201527f4552525f4445504f5349545f414c52454144595f434f4d504c455445000000006044820152606401610b2c565b61012d54610131548490600160a01b900460ff16610c7a60126008613905565b610c849190613a70565b610c8f90600a613983565b8354610c9b9190613a51565b610ca5919061391d565b1115610cf35760405162461bcd60e51b815260206004820152601f60248201527f4552525f5949454c445f524154455f4f55545f4f465f4d41585f424f554e44006044820152606401610b2c565b61012e54610131548490600160a01b900460ff16610d1360126008613905565b610d1d9190613a70565b610d2890600a613983565b8354610d349190613a51565b610d3e919061391d565b1015610d8c5760405162461bcd60e51b815260206004820152601f60248201527f4552525f5949454c445f524154455f4f55545f4f465f4d494e5f424f554e44006044820152606401610b2c565b600181015460405184815285916001600160a01b0316907f823f0e221d1509d3ab923032e7f0f46943d22de228379fd5579aa72355c1b7ab9060200160405180910390a360018101805460ff60a01b1916600160a01b1790819055610132546040516340c10f1960e01b81526001600160a01b039283166004820152602481018690529116906340c10f1990604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610e49573d6000803e3d6000fd5b5050505050505050565b60fb5460ff1615610e765760405162461bcd60e51b8152600401610b2c906138aa565b60008111610ec65760405162461bcd60e51b815260206004820152601b60248201527f4552525f494e56414c49445f57495448445241575f414d4f554e5400000000006044820152606401610b2c565b6000610ed061259c565b61013554610ede9190613a51565b905080341015610f255760405162461bcd60e51b81526020600482015260126024820152714552525f4e4f545f454e4f5547485f46454560701b6044820152606401610b2c565b806101366000828254610f389190613905565b9091555050610139805460009182610f4f83613aca565b9091555060408051606081018252858152336020808301828152600084860181815287825261013d909352949094209251835592516001909201805493511515600160a01b0260ff60a01b196001600160a01b039094166001600160a01b031990951694909417929092169290921790559091506108fc610fd08434613a70565b6040518115909202916000818181858888f19350505050158015610ff8573d6000803e3d6000fd5b5061013254611012906001600160a01b0316333086612684565b6040805184815260208101849052829133917f38e3d972947cfef94205163d483d6287ef27eb312e20cb8e0b13a49989db232e910160405180910390a3505050565b6000828152606560205260409020600101546110708133610b4a565b61107a8383612848565b505050565b6001600160a01b03811633146110ef5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610b2c565b6110f982826128ce565b5050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156111465760405162461bcd60e51b8152600401610b2c90613812565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611178612935565b6001600160a01b03161461119e5760405162461bcd60e51b8152600401610b2c9061385e565b6111a781612963565b60408051600080825260208201909252610b659183919061297c565b600080516020613b278339815191526111dc8133610b4a565b610b65612ac0565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561122d5760405162461bcd60e51b8152600401610b2c90613812565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661125f612935565b6001600160a01b0316146112855760405162461bcd60e51b8152600401610b2c9061385e565b61128e82612963565b6110f98282600161297c565b600080516020613bae8339815191526112b38133610b4a565b60005b825181101561107a5760008382815181106112e157634e487b7160e01b600052603260045260246000fd5b6020908102919091010151610131549091506001600160a01b038083169116141561134e5760405162461bcd60e51b815260206004820181905260248201527f4552525f43414e5f4e4f545f5245534355455f4445504f5349545f544f4b454e6044820152606401610b2c565b610132546001600160a01b03828116911614156113b95760405162461bcd60e51b815260206004820152602360248201527f4552525f43414e5f4e4f545f5245534355455f58595f575241505045445f544f60448201526225a2a760e91b6064820152608401610b2c565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b1580156113fb57600080fd5b505afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143391906136ea565b90506114496001600160a01b0383163383612b53565b5050808061145690613aca565b9150506112b6565b600080516020613b278339815191526114778133610b4a565b6114836008600a613983565b83101561148f57600080fd5b5061012d9190915561012e55565b600080516020613b278339815191526114b68133610b4a565b610b65612bb6565b60fb5460ff16156114e15760405162461bcd60e51b8152600401610b2c906138aa565b600080516020613b6e8339815191526114fa8133610b4a565b61013054610b65906001600160a01b0316612c0e565b600080516020613b6e8339815191526115298133610b4a565b5061013455565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60fb5460ff161561157e5760405162461bcd60e51b8152600401610b2c906138aa565b61012f546001600160a01b031633146115cb5760405162461bcd60e51b815260206004820152600f60248201526e22a9292fa727aa2fa9aba0a82822a960891b6044820152606401610b2c565b610131546001600160a01b038581169116146116375760405162461bcd60e51b815260206004820152602560248201527f4552525f5452414e534645525f57524f4e475f544f4b454e5f46524f4d5f535760448201526420a82822a960d91b6064820152608401610b2c565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156116a5578234146116a05760405162461bcd60e51b815260206004820152601260248201527111549497d253959053125117d05353d5539560721b6044820152606401610b2c565b6116bf565b61012f546116bf9085906001600160a01b03163086612684565b8061013760008282546116d29190613905565b90915550600090506116e383611f35565b604080516001600160a01b03881681526020810187905290810185905260608101849052608081018290529091507fb51e3d4222f0b9ba090ac9562cd95348e59e9a48631d01a41bf11ad3c95290f59060a00160405180910390a161013b54611756906001600160a01b03168683612ce0565b5050505050565b600080516020613b278339815191526117768133610b4a565b813b6117d05760405162461bcd60e51b815260206004820152602360248201527f4552525f4741535f50524943455f434f4e53554d45525f4e4f545f434f4e54526044820152621050d560ea1b6064820152608401610b2c565b5061013380546001600160a01b0319166001600160a01b0392909216919091179055565b600080516020613bae83398151915261180d8133610b4a565b813b61185b5760405162461bcd60e51b815260206004820152601860248201527f4552525f535741505045525f4e4f545f434f4e545241435400000000000000006044820152606401610b2c565b5061012f80546001600160a01b0319166001600160a01b0392909216919091179055565b600080516020613b278339815191526118988133610b4a565b6001600160a01b0382166118e15760405162461bcd60e51b815260206004820152601060248201526f4552525f5a45524f5f4144445245535360801b6044820152606401610b2c565b61013b80546001600160a01b0319166001600160a01b0384169081179091556040519081527f58db74d58b651756d158c41988415677c84a3388e7e54bc622898502a91a56a5906020015b60405180910390a15050565b600080516020613b6e8339815191526119518133610b4a565b5061013555565b60fb5460ff161561197b5760405162461bcd60e51b8152600401610b2c906138aa565b600080516020613b8e8339815191526119948133610b4a565b6101395484106119e65760405162461bcd60e51b815260206004820152601760248201527f4552525f494e56414c49445f57495448445241575f49440000000000000000006044820152606401610b2c565b60008311611a445760405162461bcd60e51b815260206004820152602560248201527f4552525f57495448445241575f4645455f4e4f545f4c4553535f5448414e5f416044820152641353d5539560da1b6064820152608401610b2c565b600084815261013d602052604090206001810154600160a01b900460ff1615611aa75760405162461bcd60e51b815260206004820152601560248201527411549497d053149150511657d0d3d3541311551151605a1b6044820152606401610b2c565b61012d54815461013154600160a01b900460ff16611ac760126008613905565b611ad19190613a70565b611adc90600a613983565b611ae68688613905565b611af09190613a51565b611afa919061391d565b1115611b485760405162461bcd60e51b815260206004820152601f60248201527f4552525f5949454c445f524154455f4f55545f4f465f4d41585f424f554e44006044820152606401610b2c565b61012e54815461013154600160a01b900460ff16611b6860126008613905565b611b729190613a70565b611b7d90600a613983565b611b878688613905565b611b919190613a51565b611b9b919061391d565b1015611be95760405162461bcd60e51b815260206004820152601f60248201527f4552525f5949454c445f524154455f4f55545f4f465f4d494e5f424f554e44006044820152606401610b2c565b6001810154604080518681526020810186905287926001600160a01b0316917f567289124f980c60ab6be9d631895db98cf8d567e8ef80f55d8be6474ad2d0a6910160405180910390a360018101805460ff60a01b1916600160a01b179055610132548154604051630852cd8d60e31b81526001600160a01b03909216916342966c6891611c7d9160040190815260200190565b600060405180830381600087803b158015611c9757600080fd5b505af1158015611cab573d6000803e3d6000fd5b50505060018201546101315461175692506001600160a01b03918216911686612ce0565b60fb5460ff1615611cf25760405162461bcd60e51b8152600401610b2c906138aa565b60008111611d425760405162461bcd60e51b815260206004820152601a60248201527f4552525f494e56414c49445f4445504f5349545f414d4f554e540000000000006044820152606401610b2c565b6000611d4c61259c565b61013454611d5a9190613a51565b610131549091506000906001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14611d8d5781611d97565b611d978383613905565b905080341015611dde5760405162461bcd60e51b81526020600482015260126024820152714552525f4e4f545f454e4f5547485f46454560701b6044820152606401610b2c565b816101366000828254611df19190613905565b9091555050610138805460009182611e0883613aca565b9091555060408051606081018252868152336020808301828152600084860181815287825261013c909352949094209251835592516001909201805493511515600160a01b0260ff60a01b196001600160a01b039094166001600160a01b031990951694909417929092169290921790559091506108fc611e898434613a70565b6040518115909202916000818181858888f19350505050158015611eb1573d6000803e3d6000fd5b50610131546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14611ef25761013154611ef2906001600160a01b0316333087612684565b6040805185815260208101859052829133917f827893a5f98dbfaba92dbe0bb2cafe8b9fd5573711d9768ce5cd4e2af44601ac910160405180910390a350505050565b600061271061013a5483611f499190613a51565b610b03919061391d565b60fb5460ff1615611f765760405162461bcd60e51b8152600401610b2c906138aa565b61012f546001600160a01b03163314611fc35760405162461bcd60e51b815260206004820152600f60248201526e22a9292fa727aa2fa9aba0a82822a960891b6044820152606401610b2c565b610131546001600160a01b0383811691161461202d5760405162461bcd60e51b815260206004820152602360248201527f4552525f5452414e534645525f57524f4e475f544f4b454e5f544f5f535741506044820152622822a960e91b6064820152608401610b2c565b61012f54604080516001600160a01b039283168152918416602083015281018290527f2f670cae6f7939ad46a6678914017bf731232a1f7e5ea0e6068fbd2cc1b0a57f9060600160405180910390a161012f546110f9906001600160a01b03168383612ce0565b600054610100900460ff16806120ad575060005460ff16155b6121105760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b2c565b600054610100900460ff1615801561213b576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146121ad57833b6121ad5760405162461bcd60e51b815260206004820152601e60248201527f4552525f4445504f5349545f544f4b454e5f4e4f545f434f4e545241435400006044820152606401610b2c565b823b6122065760405162461bcd60e51b815260206004820152602260248201527f4552525f58595f57525041505045445f544f4b454e5f4e4f545f434f4e54524160448201526110d560f21b6064820152608401610b2c565b610131805461013280546001600160a01b038781166001600160a01b03199283161790925560ff8616600160a01b0260ff60a01b1992891691909316171617905561225f600080516020613bae83398151915280612d55565b612285600080516020613b27833981519152600080516020613bae833981519152612d55565b6122ab600080516020613b6e833981519152600080516020613bae833981519152612d55565b6122d1600080516020613b8e833981519152600080516020613bae833981519152612d55565b6122e9600080516020613bae83398151915289612da0565b612301600080516020613b2783398151915288612da0565b612319600080516020613b6e83398151915287612da0565b612331600080516020613b8e83398151915286612da0565b8015610e49576000805461ff00191690555050505050505050565b60fb5460ff161561236f5760405162461bcd60e51b8152600401610b2c906138aa565b600080516020613b6e8339815191526123888133610b4a565b610130546114fa906001600160a01b031661251a565b600080516020613b278339815191526123b78133610b4a565b61271082111561241d5760405162461bcd60e51b815260206004820152602b60248201527f4552525f52455345525645535f524154494f5f4e4f545f4c4553535f5448414e60448201526a5f4f525f455155414c5f3160a81b6064820152608401610b2c565b61013a8290556040518281527f154632fa271f5a6b6da0c95f6abd4fc38b5a7db8a1d87d06ecf4aca9e567885d9060200161192c565b60008281526065602052604090206001015461246f8133610b4a565b61107a83836128ce565b600080516020613b278339815191526124928133610b4a565b5061013080546001600160a01b0319166001600160a01b0392909216919091179055565b6124c08282611530565b6110f9576124d8816001600160a01b03166014612daa565b6124e3836020612daa565b6040516020016124f492919061376a565b60408051601f198184030181529082905262461bcd60e51b8252610b2c916004016137df565b610136805460009182905560405190916001600160a01b0384169183156108fc0291849190818181858888f1935050505015801561255c573d6000803e3d6000fd5b50604080516001600160a01b0384168152602081018390527f4f7e88c568b8b073ad35fbbd0b6d389b7196e43468942ae77975e092e2caf6a9910161192c565b610133546000906001600160a01b03166125f85760405162461bcd60e51b815260206004820152601e60248201527f4552525f4741535f50524943455f434f4e53554d45525f4e4f545f53455400006044820152606401610b2c565b61013360009054906101000a90046001600160a01b03166001600160a01b031663565f93376040518163ffffffff1660e01b815260040160206040518083038186803b15801561264757600080fd5b505afa15801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f91906136ea565b905090565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156126e55760405162461bcd60e51b81526020600482015260116024820152704552525f544f4b454e5f4144445245535360781b6044820152606401610b2c565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a082319060240160206040518083038186803b15801561272a57600080fd5b505afa15801561273e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276291906136ea565b90506127796001600160a01b038616858585612f93565b6040516370a0823160e01b81526001600160a01b0384811660048301528291908716906370a082319060240160206040518083038186803b1580156127bd57600080fd5b505afa1580156127d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f591906136ea565b6127ff9190613a70565b90508181146117565760405162461bcd60e51b815260206004820152601560248201527408aa4a4be829a9eaa9ca8be9c9ea8be8a9c9eaa8e9605b1b6044820152606401610b2c565b6128528282611530565b6110f95760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561288a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128d88282611530565b156110f95760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b600080516020613bae8339815191526110f98133610b4a565b6000612986612935565b905061299184612fd1565b60008351118061299e5750815b156129af576129ad8484613076565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661175657805460ff191660011781556040516001600160a01b0383166024820152612a2e90869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052613076565b50805460ff19168155612a3f612935565b6001600160a01b0316826001600160a01b031614612ab75760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610b2c565b61175685613161565b60fb5460ff16612b095760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b2c565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b03831660248201526044810182905261107a90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a1565b60fb5460ff1615612bd95760405162461bcd60e51b8152600401610b2c906138aa565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612b363390565b61013780546000909155610131546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612c7c576040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612c76573d6000803e3d6000fd5b50612c94565b61013154612c94906001600160a01b03168383612b53565b61013154604080516001600160a01b039283168152918416602083015281018290527fd07b88bc5333ca866820627716b1c6c09d5e43515f6b3a4a980ce147bd6d00479060600161192c565b6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612d41576040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015612d3b573d6000803e3d6000fd5b5061107a565b61107a6001600160a01b0383168483612b53565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6110f98282612848565b60606000612db9836002613a51565b612dc4906002613905565b67ffffffffffffffff811115612dea57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612e14576020820181803683370190505b509050600360fc1b81600081518110612e3d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612e7a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000612e9e846002613a51565b612ea9906001613905565b90505b6001811115612f3d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612eeb57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110612f0f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93612f3681613ab3565b9050612eac565b508315612f8c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b2c565b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052612fcb9085906323b872dd60e01b90608401612b7f565b50505050565b803b6130355760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b2c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6130d55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b2c565b600080846001600160a01b0316846040516130f0919061374e565b600060405180830381855af49150503d806000811461312b576040519150601f19603f3d011682016040523d82523d6000602084013e613130565b606091505b50915091506131588282604051806060016040528060278152602001613b4760279139613273565b95945050505050565b61316a81612fd1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006131f6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166132ac9092919063ffffffff16565b80519091501561107a578080602001905181019061321491906135f6565b61107a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b2c565b60608315613282575081612f8c565b8251156132925782518084602001fd5b8160405162461bcd60e51b8152600401610b2c91906137df565b60606132bb84846000856132c3565b949350505050565b6060824710156133245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b2c565b843b6133725760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b2c565b600080866001600160a01b0316858760405161338e919061374e565b60006040518083038185875af1925050503d80600081146133cb576040519150601f19603f3d011682016040523d82523d6000602084013e6133d0565b606091505b50915091506133e0828286613273565b979650505050505050565b6000602082840312156133fc578081fd5b8135612f8c81613b11565b600080600080600080600060e0888a031215613421578283fd5b873561342c81613b11565b9650602088013561343c81613b11565b9550604088013561344c81613b11565b9450606088013561345c81613b11565b9350608088013561346c81613b11565b925060a088013561347c81613b11565b915060c088013560ff81168114613491578182fd5b8091505092959891949750929550565b600080604083850312156134b3578182fd5b82356134be81613b11565b915060208381013567ffffffffffffffff808211156134db578384fd5b818601915086601f8301126134ee578384fd5b81358181111561350057613500613afb565b613512601f8201601f191685016138d4565b91508082528784828501011115613527578485fd5b8084840185840137810190920192909252919491935090915050565b60006020808385031215613555578182fd5b823567ffffffffffffffff8082111561356c578384fd5b818501915085601f83011261357f578384fd5b81358181111561359157613591613afb565b83810291506135a18483016138d4565b8181528481019084860184860187018a10156135bb578788fd5b8795505b838610156135e957803594506135d485613b11565b848352600195909501949186019186016135bf565b5098975050505050505050565b600060208284031215613607578081fd5b81518015158114612f8c578182fd5b600060208284031215613627578081fd5b5035919050565b60008060408385031215613640578182fd5b82359150602083013561365281613b11565b809150509250929050565b60006020828403121561366e578081fd5b81356001600160e01b031981168114612f8c578182fd5b60008060408385031215613697578182fd5b82356136a281613b11565b946020939093013593505050565b600080600080608085870312156136c5578384fd5b84356136d081613b11565b966020860135965060408601359560600135945092505050565b6000602082840312156136fb578081fd5b5051919050565b60008060408385031215613714578182fd5b50508035926020909101359150565b600080600060608486031215613737578081fd5b505081359360208301359350604090920135919050565b60008251613760818460208701613a87565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516137a2816017850160208801613a87565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516137d3816028840160208801613a87565b01602801949350505050565b60006020825282518060208401526137fe816040850160208701613a87565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156138fd576138fd613afb565b604052919050565b6000821982111561391857613918613ae5565b500190565b60008261393857634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161394f575061397a565b81870482111561396157613961613ae5565b8086161561396e57918102915b9490941c938002613940565b94509492505050565b6000612f8c600019848460008261399c57506001612f8c565b816139a957506000612f8c565b81600181146139bf57600281146139c9576139f6565b6001915050612f8c565b60ff8411156139da576139da613ae5565b6001841b9150848211156139f0576139f0613ae5565b50612f8c565b5060208310610133831016604e8410600b8410161715613a29575081810a83811115613a2457613a24613ae5565b612f8c565b613a36848484600161393d565b808604821115613a4857613a48613ae5565b02949350505050565b6000816000190483118215151615613a6b57613a6b613ae5565b500290565b600082821015613a8257613a82613ae5565b500390565b60005b83811015613aa2578181015183820152602001613a8a565b83811115612fcb5750506000910152565b600081613ac257613ac2613ae5565b506000190190565b6000600019821415613ade57613ade613ae5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b6557600080fdfef206625bad3d9112d5609b8d356e6fbd514cd1f69980d4ce2b3e6e68e1789ace416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564358933fb1b4f9e62c7cd3651025ad8825acb20ebbb23b09160e3867d71501ddd2e8819b7ff4c0052fe9f7185768f0bfabc666b59f4a166549bbdbfb928d23eb19f4e1c871d5fdd0aee1cd182666698a4492b24c6832aac230d07b11046af5a89a26469706673582212201ba6804b64a3bb211d53d62c11168051da2ccf2226c6c64e5984363ff7c18c7264736f6c63430008020033