0x608060405234801561001057600080fd5b506130c0806100206000396000f3fe608060405234801561001057600080fd5b50600436106102105760003560e01c8063715018a611610125578063b03df69d116100ad578063dcc3e06e1161007c578063dcc3e06e14610493578063de3e828e146104a6578063e2bbb158146104b9578063f2fde38b146104cc578063fec0c09e146104df57600080fd5b8063b03df69d1461044c578063b0bb00311461046f578063b19a3b2c14610482578063d1058e591461048b57600080fd5b80638529d12b116100f45780638529d12b1461039257806386489ba9146103a55780638728ec17146103b857806387370846146103cb5780638da5cb5b1461043b57600080fd5b8063715018a6146103665780637547c7a31461036e578063782a875e1461038157806378ec66f21461038a57600080fd5b80633df349a9116101a857806366a919891161017757806366a91989146103035780636aa662b51461030c5780636b51bff614610315578063709cc2a6146103405780637101d30c1461035357600080fd5b80633df349a9146102cb578063441a3e70146102de57806349857282146102f157806351f5958a146102fa57600080fd5b80631526fe27116101e45780631526fe27146102575780632ea0585d1461029c578063379607f5146102a55780633a6462e4146102b857600080fd5b80622d28d41461021557806302f715ce14610231578063081e3eda146102465780630c1706681461024e575b600080fd5b61021e606c5481565b6040519081526020015b60405180910390f35b61024461023f366004612df8565b6104e7565b005b60655461021e565b61021e60705481565b61026a610265366004612df8565b610560565b604080516001600160a01b0390961686529315156020860152928401919091526060830152608082015260a001610228565b61021e606e5481565b6102446102b3366004612df8565b6105af565b6102446102c6366004612cc6565b610645565b61021e6102d9366004612e28565b61075f565b6102446102ec366004612e4c565b610ac5565b61021e60715481565b61021e606b5481565b61021e606f5481565b61021e60725481565b606854610328906001600160a01b031681565b6040516001600160a01b039091168152602001610228565b61021e61034e366004612cc6565b610ec9565b610244610361366004612df8565b611081565b61024461124b565b61032861037c366004612df8565b611281565b61021e606d5481565b6102446112ab565b6102446103a0366004612df8565b6116f5565b6102446103b3366004612d52565b611787565b6102446103c6366004612df8565b611c45565b6104136103d9366004612e28565b6073602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610228565b6033546001600160a01b0316610328565b61045f61045a366004612cc6565b611dc7565b6040519015158152602001610228565b61024461047d366004612d1a565b611e43565b61021e606a5481565b610244612195565b606954610328906001600160a01b031681565b606754610328906001600160a01b031681565b6102446104c7366004612e4c565b61236d565b6102446104da366004612cc6565b61251e565b6102446125b6565b6104f081611081565b6104f9816125e7565b60008181526073602090815260408083203384529091529020607254610520904290612611565b6003820155604051828152339083907f18cc1e087da19336adbe2c7e66090d9883bc63e5b32deb5f09cb70126ac480229060200160405180910390a35050565b6065818154811061057057600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0383169450600160a01b90920460ff1692909185565b6105b98133612624565b6106305760405162461bcd60e51b815260206004820152603f60248201527f566553696e676c655374616b696e673a2063616e6e6f7420636c61696d20766560448201527f53494e474c45207768656e206e6f2053494e474c45206973207374616b65640060648201526084015b60405180910390fd5b61063981611081565b610642816125e7565b50565b6033546001600160a01b0316331461066f5760405162461bcd60e51b815260040161062790612f67565b6001600160a01b0381166106c55760405162461bcd60e51b815260206004820152601a60248201527f566553696e676c655374616b696e673a202172657761726465720000000000006044820152606401610627565b60405163c031a66f60e01b81523060048201526001600160a01b0382169063c031a66f9060240160206040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073c9190612e10565b50606980546001600160a01b0319166001600160a01b0392909216919091179055565b600061076b8383612624565b61077757506000610abf565b60006065848154811061079a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600402016040518060a00160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016000820160149054906101000a900460ff16151515158152602001600182015481526020016002820154815260200160038201548152505090506000607360008681526020019081526020016000206000856001600160a01b03166001600160a01b031681526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050600082602001516108a95782604001516108b4565b82516108b490610ec9565b905060006108db6071546108d584866000015161264e90919063ffffffff16565b9061265a565b60808501516060860151919250906000906108f7904290612666565b9050801561093d5761093a6109336071546108d56070546108d5606c5461092d8b61092d606d548b61264e90919063ffffffff16565b9061264e565b8390612611565b91505b606c548551600091610954916108d590869061264e565b8660200151101561098d5761098a8660200151610984606c546108d58a600001518861264e90919063ffffffff16565b90612666565b90505b600086606001516000141580156109a45750600082115b15610a23576000876060015142116109bc57426109c2565b87606001515b905060006109dd89604001518361266690919063ffffffff16565b905060006109f88a604001514261266690919063ffffffff16565b9050610a1d606d546108d5836108d5606e5461092d888c61264e90919063ffffffff16565b93505050505b6000610a2f8383612611565b6080890151606a5491925090600090610a4990899061264e565b905080610a5783606461264e565b10610a705760009b505050505050505050505050610abf565b80610a80606461092d8587612611565b1115610ab157610a9f60646108d5610a98858361264e565b8490612666565b9b505050505050505050505050610abf565b509099505050505050505050505b92915050565b60008111610b455760405162461bcd60e51b815260206004820152604160248201527f566553696e676c655374616b696e673a2065787065637465642077697468647260448201527f617720616d6f756e7420746f2062652067726561746572207468616e207a65726064820152606f60f81b608482015260a401610627565b600060658381548110610b6857634e487b7160e01b600052603260045260246000fd5b60009182526020808320600490920290910180548684526073909252604083209093506001600160a01b03909116919081610ba03390565b6001600160a01b03166001600160a01b0316815260200190815260200160002090508381600001541015610c545760405162461bcd60e51b815260206004820152604f60248201527f566553696e676c655374616b696e673a2063616e6e6f7420776974686472617760448201527f206772656174657220616d6f756e74206f662053494e474c45207468616e206360648201526e1d5c9c995b9d1b1e481cdd185ad959608a1b608482015260a401610627565b8060030154421015610ca85760405162461bcd60e51b815260206004820152601860248201527f566553696e676c655374616b696e673a206e6f742079657400000000000000006044820152606401610627565b610cb185611081565b610cba33612672565b8054610cc69085612666565b808255606c546003850154610cdf926108d5919061264e565b60018201554260028201556000600382018190556068546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190612e10565b6068549091506001600160a01b03166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b50506069546001600160a01b0316159150610e709050576069546001600160a01b0316631e83409a336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050505b610e846001600160a01b03841633876126d5565b6040805186815260208101839052339188917fb0ecf14e184effded5473bba77dcfab32b094b77ac1fbb36beec2aef55587970910160405180910390a3505050505050565b60675460408051630dfe168160e01b81529051600092849284926001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015610f1757600080fd5b505afa158015610f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4f9190612ce2565b6001600160a01b0316149050600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f9757600080fd5b505afa158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf9190612daa565b506001600160701b031691506001600160701b03169150611077600261092d866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561102757600080fd5b505afa15801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f9190612e10565b6108d560715488611070578661092d565b879061264e565b9695505050505050565b6000606582815481106110a457634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201805460028201549192506001600160a01b03169042116110d357505050565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561111257600080fd5b505afa158015611126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114a9190612e10565b61115957504260029091015550565b600061117283600201544261266690919063ffffffff16565b905060006111996071546108d5866001015461092d606d548761264e90919063ffffffff16565b90506111c46111b96070546108d5606c548561264e90919063ffffffff16565b600386015490612611565b60038501554260028501558354600160a01b900460ff16156111fa5783546111f4906001600160a01b0316610ec9565b60018501555b7f80412ab714911d3162155311ed4cae780b01a7eb225a1a554126e1a443eeb41a8460020154856003015460405161123c929190918252602082015260400190565b60405180910390a15050505050565b6033546001600160a01b031633146112755760405162461bcd60e51b815260040161062790612f67565b61127f6000612738565b565b6066818154811061129157600080fd5b6000918252602090912001546001600160a01b0316905081565b6069546001600160a01b03166112ef5760405162461bcd60e51b815260206004820152600960248201526810b932bbb0b93232b960b91b6044820152606401610627565b60006112fa60655490565b90506000805b8281101561136e5761131181611081565b61131b8133612624565b1561135e5761132c6109338261278a565b6000828152607360209081526040808320338452909152902060725491935090611357904290612611565b6003909101555b61136781613036565b9050611300565b5080156113e8576068546001600160a01b03166340c10f19336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156113cf57600080fd5b505af11580156113e3573d6000803e3d6000fd5b505050505b6069546068546001600160a01b039182169163eb2cb849913391166370a08231826040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561144857600080fd5b505afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190612e10565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156114c657600080fd5b505af11580156114da573d6000803e3d6000fd5b5050606954600092506001600160a01b0316905063a04d4813336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381600087803b15801561153557600080fd5b505af1158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612e10565b9050600081116115bf5760405162461bcd60e51b815260206004820152601960248201527f6578706563742072657374616b6520616d6f756e74203e2030000000000000006044820152606401610627565b600060656000815481106115e357634e487b7160e01b600052603260045260246000fd5b6000918252602090912060675460049092020180549092506001600160a01b039081169116146116475760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081cda5b99db19481c1bdbdb608a1b6044820152606401610627565b3360009081527f37752fb6c52d3edead1b46e6bc9caaf15e79e8a8593990dba84e5007780d3f996020526040902080546116819084612611565b808255606c54600384015461169a926108d5919061264e565b600182015542600282018190556072546116b49190612611565b600382015560405183815233907fc3bbee56d2e23d6cedf5b3cdf50a297800242593cbe2e4756e3eb5a82201e40f9060200160405180910390a25050505050565b6033546001600160a01b0316331461171f5760405162461bcd60e51b815260040161062790612f67565b606f548111156117415760405162461bcd60e51b815260040161062790612ebc565b6117496125b6565b606d81905560405181815233907f94b5ef2b3c61ec8d6f49d0583aa6453a359e0290398b5975daee477927d5e58b906020015b60405180910390a250565b600054610100900460ff16806117a0575060005460ff16155b6117bc5760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff161580156117de576000805461ffff19166101011790555b6117e66128dd565b6001600160a01b0387166118595760405162461bcd60e51b815260206004820152603460248201527f566553696e676c655374616b696e673a20756e6578706563746564207a65726f604482015273206164647265737320666f72205f73696e676c6560601b6064820152608401610627565b6001600160a01b0386166118ce5760405162461bcd60e51b815260206004820152603660248201527f566553696e676c655374616b696e673a20756e6578706563746564207a65726f604482015275206164647265737320666f72205f766553696e676c6560501b6064820152608401610627565b6ec097ce7bc90715b34b9f1000000000606f8190558511156119025760405162461bcd60e51b815260040161062790612ebc565b606f548411156119895760405162461bcd60e51b815260206004820152604660248201527f566553696e676c655374616b696e673a206578706563746564205f737065656460448201527f5570566553696e676c65506572536861726550657253656320746f206265203c6064820152651e9018b2999b60d11b608482015260a401610627565b6301e13380831115611a035760405162461bcd60e51b815260206004820152603b60248201527f566553696e676c655374616b696e673a206578706563746564205f6c6f636b5560448201527f704475726174696f6e20746f206265203c3d20333635206461797300000000006064820152608401610627565b62989680606b558115801590611a1b5750606b548211155b611a995760405162461bcd60e51b815260206004820152604360248201527f566553696e676c655374616b696e673a206578706563746564205f6d6178436160448201527f7050637420746f206265206e6f6e2d7a65726f20616e64203c3d20313030303060648201526203030360ec1b608482015260a401610627565b606a8290556072839055606780546001600160a01b03808a166001600160a01b031992831681178455606880548b8416908516179055606d899055606e889055670de0b6b3a7640000606c819055607081905560718190556040805160a081018252928352600060208401818152918401928352426060850190815260808501828152606580546001818101835591855296516004979097027f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c78101805496511515600160a01b026001600160a81b0319909716988a16989098179590951790965593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c8840155517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c983015591517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7ca9091015593546066805492830181559094527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435401805490921692169190911790558015611c3c576000805461ff00191690555b50505050505050565b6033546001600160a01b03163314611c6f5760405162461bcd60e51b815260040161062790612f67565b606a548111611cfd5760405162461bcd60e51b815260206004820152604e60248201527f566553696e676c655374616b696e673a206578706563746564206e6577205f6d60448201527f617843617050637420746f2062652067726561746572207468616e206578697360648201526d1d1a5b99c81b585e10d85c1418dd60921b608482015260a401610627565b8015801590611d0e5750606b548111155b611d905760405162461bcd60e51b815260206004820152604760248201527f566553696e676c655374616b696e673a206578706563746564206e6577205f6d60448201527f617843617050637420746f206265206e6f6e2d7a65726f20616e64203c3d20316064820152660303030303030360cc1b608482015260a401610627565b606a81905560405181815233907f8d4a57ca749299886997ec990a3f4a210270c58d6f283d4728136ca62c17d1bf9060200161177c565b606554600090815b81811015611e3957836001600160a01b031660668281548110611e0257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611e27575060019392505050565b80611e3181613036565b915050611dcf565b5060009392505050565b6033546001600160a01b03163314611e6d5760405162461bcd60e51b815260040161062790612f67565b611e7682611dc7565b15611ed55760405162461bcd60e51b815260206004820152602960248201527f566553696e676c655374616b696e673a3a616464506f6f6c3a3a207374616b656044820152680546f6b656e206475760bc1b6064820152608401610627565b60715481156120465760675460408051630dfe168160e01b8152905185926001600160a01b039081169290841691630dfe168191600480820192602092909190829003018186803b158015611f2957600080fd5b505afa158015611f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f619190612ce2565b6001600160a01b03161480611ffb57506067546040805163d21220a760e01b815290516001600160a01b039283169284169163d21220a7916004808301926020929190829003018186803b158015611fb857600080fd5b505afa158015611fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff09190612ce2565b6001600160a01b0316145b6120395760405162461bcd60e51b815260206004820152600f60248201526e3737ba1039b4b733b632903830b4b960891b6044820152606401610627565b61204284610ec9565b9150505b6040805160a0810182526001600160a01b039485168082529315156020820190815291810192835242606082019081526000608083018181526065805460018181018355918452945160049095027f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c78101805497511515600160a01b026001600160a81b031990981696909a16959095179590951790975593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c8830155517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c982015593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7ca9094019390935560668054938401815590527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435490910180546001600160a01b0319169091179055565b60006121a060655490565b90506000805b828110156121e5576121b88133612624565b156121d5576121c681611081565b6121d26109338261278a565b91505b6121de81613036565b90506121a6565b508015612369576068546001600160a01b03166340c10f19335b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561224757600080fd5b505af115801561225b573d6000803e3d6000fd5b50506069546001600160a01b03161591506123699050576069546068546001600160a01b039182169163eb2cb849913391166370a08231826040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190612e10565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561235057600080fd5b505af1158015612364573d6000803e3d6000fd5b505050505b5050565b600081116123e5576040805162461bcd60e51b81526020600482015260248101919091527f566553696e676c655374616b696e673a206578706563746564206465706f736960448201527f7420616d6f756e7420746f2062652067726561746572207468616e207a65726f6064820152608401610627565b6123ee82611081565b60006065838154811061241157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600490920290910180548684526073909252604083209093506001600160a01b039091169190816124493390565b6001600160a01b031681526020810191909152604001600020905061246e8533612624565b156124875761247c856125e7565b4260028201556124a1565b607254612495904290612611565b60038201554260028201555b80546124ad9085612611565b808255606c5460038501546124c6926108d5919061264e565b60018201556124e06001600160a01b038316333087612958565b604051848152339086907feaa18152488ce5959073c9c79c88ca90b3d96c00de1f118cfaad664c3dab06b99060200160405180910390a35050505050565b6033546001600160a01b031633146125485760405162461bcd60e51b815260040161062790612f67565b6001600160a01b0381166125ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610627565b61064281612738565b60006125c160655490565b905060005b81811015612369576125d781611081565b6125e081613036565b90506125c6565b60006125f28261278a565b90508015612369576068546001600160a01b03166340c10f19336121ff565b600061261d8284612f9c565b9392505050565b60009182526073602090815260408084206001600160a01b03939093168452919052902054151590565b600061261d8284612fd4565b600061261d8284612fb4565b600061261d8284612ff3565b600061267d60655490565b905060005b818110156126d0576126948184612624565b156126c05760008181526073602090815260408083206001600160a01b03871684529091528120600401555b6126c981613036565b9050612682565b505050565b6040516001600160a01b0383166024820152604481018290526126d090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612996565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080606583815481106127ae57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805160a08101825260049390930290910180546001600160a01b0381168452600160a01b900460ff161515938301939093526001830154908201526002820154606082015260039091015460808201529050612817833361075f565b60008481526073602090815260408083203384529091529020606c5481546080850151939550919261284d926108d5919061264e565b6001820155600381015415801590612869575080600301544210155b1561287657600060038201555b82156128d657428160020181905550828160040160008282546128999190612f9c565b9091555050604051838152339085907f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f3039060200160405180910390a35b5050919050565b600054610100900460ff16806128f6575060005460ff16155b6129125760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612934576000805461ffff19166101011790555b61293c612a68565b612944612ad2565b8015610642576000805461ff001916905550565b6040516001600160a01b03808516602483015283166044820152606481018290526129909085906323b872dd60e01b90608401612701565b50505050565b60006129eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b329092919063ffffffff16565b8051909150156126d05780806020019051810190612a099190612cfe565b6126d05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610627565b600054610100900460ff1680612a81575060005460ff16155b612a9d5760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612944576000805461ffff19166101011790558015610642576000805461ff001916905550565b600054610100900460ff1680612aeb575060005460ff16155b612b075760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612b29576000805461ffff19166101011790555b61294433612738565b6060612b418484600085612b49565b949350505050565b606082471015612baa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610627565b843b612bf85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610627565b600080866001600160a01b03168587604051612c149190612e6d565b60006040518083038185875af1925050503d8060008114612c51576040519150601f19603f3d011682016040523d82523d6000602084013e612c56565b606091505b5091509150612c66828286612c71565b979650505050505050565b60608315612c8057508161261d565b825115612c905782518084602001fd5b8160405162461bcd60e51b81526004016106279190612e89565b80516001600160701b0381168114612cc157600080fd5b919050565b600060208284031215612cd7578081fd5b813561261d81613067565b600060208284031215612cf3578081fd5b815161261d81613067565b600060208284031215612d0f578081fd5b815161261d8161307c565b60008060408385031215612d2c578081fd5b8235612d3781613067565b91506020830135612d478161307c565b809150509250929050565b60008060008060008060c08789031215612d6a578182fd5b8635612d7581613067565b95506020870135612d8581613067565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080600060608486031215612dbe578283fd5b612dc784612caa565b9250612dd560208501612caa565b9150604084015163ffffffff81168114612ded578182fd5b809150509250925092565b600060208284031215612e09578081fd5b5035919050565b600060208284031215612e21578081fd5b5051919050565b60008060408385031215612e3a578182fd5b823591506020830135612d4781613067565b60008060408385031215612e5e578182fd5b50508035926020909101359150565b60008251612e7f81846020870161300a565b9190910192915050565b6020815260008251806020840152612ea881604085016020870161300a565b601f01601f19169190910160400192915050565b6020808252603f908201527f566553696e676c655374616b696e673a206578706563746564205f766553696e60408201527f676c65506572536861726550657253656320746f206265203c3d203165333600606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612faf57612faf613051565b500190565b600082612fcf57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fee57612fee613051565b500290565b60008282101561300557613005613051565b500390565b60005b8381101561302557818101518382015260200161300d565b838111156129905750506000910152565b600060001982141561304a5761304a613051565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461064257600080fd5b801515811461064257600080fdfea264697066735822122043859faa16c5d962594920731419c7ec5bdba5d66f3d9ead747967f2b6d7d3c964736f6c63430008040033
0x608060405234801561001057600080fd5b50600436106102105760003560e01c8063715018a611610125578063b03df69d116100ad578063dcc3e06e1161007c578063dcc3e06e14610493578063de3e828e146104a6578063e2bbb158146104b9578063f2fde38b146104cc578063fec0c09e146104df57600080fd5b8063b03df69d1461044c578063b0bb00311461046f578063b19a3b2c14610482578063d1058e591461048b57600080fd5b80638529d12b116100f45780638529d12b1461039257806386489ba9146103a55780638728ec17146103b857806387370846146103cb5780638da5cb5b1461043b57600080fd5b8063715018a6146103665780637547c7a31461036e578063782a875e1461038157806378ec66f21461038a57600080fd5b80633df349a9116101a857806366a919891161017757806366a91989146103035780636aa662b51461030c5780636b51bff614610315578063709cc2a6146103405780637101d30c1461035357600080fd5b80633df349a9146102cb578063441a3e70146102de57806349857282146102f157806351f5958a146102fa57600080fd5b80631526fe27116101e45780631526fe27146102575780632ea0585d1461029c578063379607f5146102a55780633a6462e4146102b857600080fd5b80622d28d41461021557806302f715ce14610231578063081e3eda146102465780630c1706681461024e575b600080fd5b61021e606c5481565b6040519081526020015b60405180910390f35b61024461023f366004612df8565b6104e7565b005b60655461021e565b61021e60705481565b61026a610265366004612df8565b610560565b604080516001600160a01b0390961686529315156020860152928401919091526060830152608082015260a001610228565b61021e606e5481565b6102446102b3366004612df8565b6105af565b6102446102c6366004612cc6565b610645565b61021e6102d9366004612e28565b61075f565b6102446102ec366004612e4c565b610ac5565b61021e60715481565b61021e606b5481565b61021e606f5481565b61021e60725481565b606854610328906001600160a01b031681565b6040516001600160a01b039091168152602001610228565b61021e61034e366004612cc6565b610ec9565b610244610361366004612df8565b611081565b61024461124b565b61032861037c366004612df8565b611281565b61021e606d5481565b6102446112ab565b6102446103a0366004612df8565b6116f5565b6102446103b3366004612d52565b611787565b6102446103c6366004612df8565b611c45565b6104136103d9366004612e28565b6073602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610228565b6033546001600160a01b0316610328565b61045f61045a366004612cc6565b611dc7565b6040519015158152602001610228565b61024461047d366004612d1a565b611e43565b61021e606a5481565b610244612195565b606954610328906001600160a01b031681565b606754610328906001600160a01b031681565b6102446104c7366004612e4c565b61236d565b6102446104da366004612cc6565b61251e565b6102446125b6565b6104f081611081565b6104f9816125e7565b60008181526073602090815260408083203384529091529020607254610520904290612611565b6003820155604051828152339083907f18cc1e087da19336adbe2c7e66090d9883bc63e5b32deb5f09cb70126ac480229060200160405180910390a35050565b6065818154811061057057600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0383169450600160a01b90920460ff1692909185565b6105b98133612624565b6106305760405162461bcd60e51b815260206004820152603f60248201527f566553696e676c655374616b696e673a2063616e6e6f7420636c61696d20766560448201527f53494e474c45207768656e206e6f2053494e474c45206973207374616b65640060648201526084015b60405180910390fd5b61063981611081565b610642816125e7565b50565b6033546001600160a01b0316331461066f5760405162461bcd60e51b815260040161062790612f67565b6001600160a01b0381166106c55760405162461bcd60e51b815260206004820152601a60248201527f566553696e676c655374616b696e673a202172657761726465720000000000006044820152606401610627565b60405163c031a66f60e01b81523060048201526001600160a01b0382169063c031a66f9060240160206040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073c9190612e10565b50606980546001600160a01b0319166001600160a01b0392909216919091179055565b600061076b8383612624565b61077757506000610abf565b60006065848154811061079a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600402016040518060a00160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016000820160149054906101000a900460ff16151515158152602001600182015481526020016002820154815260200160038201548152505090506000607360008681526020019081526020016000206000856001600160a01b03166001600160a01b031681526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050600082602001516108a95782604001516108b4565b82516108b490610ec9565b905060006108db6071546108d584866000015161264e90919063ffffffff16565b9061265a565b60808501516060860151919250906000906108f7904290612666565b9050801561093d5761093a6109336071546108d56070546108d5606c5461092d8b61092d606d548b61264e90919063ffffffff16565b9061264e565b8390612611565b91505b606c548551600091610954916108d590869061264e565b8660200151101561098d5761098a8660200151610984606c546108d58a600001518861264e90919063ffffffff16565b90612666565b90505b600086606001516000141580156109a45750600082115b15610a23576000876060015142116109bc57426109c2565b87606001515b905060006109dd89604001518361266690919063ffffffff16565b905060006109f88a604001514261266690919063ffffffff16565b9050610a1d606d546108d5836108d5606e5461092d888c61264e90919063ffffffff16565b93505050505b6000610a2f8383612611565b6080890151606a5491925090600090610a4990899061264e565b905080610a5783606461264e565b10610a705760009b505050505050505050505050610abf565b80610a80606461092d8587612611565b1115610ab157610a9f60646108d5610a98858361264e565b8490612666565b9b505050505050505050505050610abf565b509099505050505050505050505b92915050565b60008111610b455760405162461bcd60e51b815260206004820152604160248201527f566553696e676c655374616b696e673a2065787065637465642077697468647260448201527f617720616d6f756e7420746f2062652067726561746572207468616e207a65726064820152606f60f81b608482015260a401610627565b600060658381548110610b6857634e487b7160e01b600052603260045260246000fd5b60009182526020808320600490920290910180548684526073909252604083209093506001600160a01b03909116919081610ba03390565b6001600160a01b03166001600160a01b0316815260200190815260200160002090508381600001541015610c545760405162461bcd60e51b815260206004820152604f60248201527f566553696e676c655374616b696e673a2063616e6e6f7420776974686472617760448201527f206772656174657220616d6f756e74206f662053494e474c45207468616e206360648201526e1d5c9c995b9d1b1e481cdd185ad959608a1b608482015260a401610627565b8060030154421015610ca85760405162461bcd60e51b815260206004820152601860248201527f566553696e676c655374616b696e673a206e6f742079657400000000000000006044820152606401610627565b610cb185611081565b610cba33612672565b8054610cc69085612666565b808255606c546003850154610cdf926108d5919061264e565b60018201554260028201556000600382018190556068546001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190612e10565b6068549091506001600160a01b03166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b50506069546001600160a01b0316159150610e709050576069546001600160a01b0316631e83409a336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015610e5757600080fd5b505af1158015610e6b573d6000803e3d6000fd5b505050505b610e846001600160a01b03841633876126d5565b6040805186815260208101839052339188917fb0ecf14e184effded5473bba77dcfab32b094b77ac1fbb36beec2aef55587970910160405180910390a3505050505050565b60675460408051630dfe168160e01b81529051600092849284926001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015610f1757600080fd5b505afa158015610f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4f9190612ce2565b6001600160a01b0316149050600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f9757600080fd5b505afa158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf9190612daa565b506001600160701b031691506001600160701b03169150611077600261092d866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561102757600080fd5b505afa15801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f9190612e10565b6108d560715488611070578661092d565b879061264e565b9695505050505050565b6000606582815481106110a457634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201805460028201549192506001600160a01b03169042116110d357505050565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561111257600080fd5b505afa158015611126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114a9190612e10565b61115957504260029091015550565b600061117283600201544261266690919063ffffffff16565b905060006111996071546108d5866001015461092d606d548761264e90919063ffffffff16565b90506111c46111b96070546108d5606c548561264e90919063ffffffff16565b600386015490612611565b60038501554260028501558354600160a01b900460ff16156111fa5783546111f4906001600160a01b0316610ec9565b60018501555b7f80412ab714911d3162155311ed4cae780b01a7eb225a1a554126e1a443eeb41a8460020154856003015460405161123c929190918252602082015260400190565b60405180910390a15050505050565b6033546001600160a01b031633146112755760405162461bcd60e51b815260040161062790612f67565b61127f6000612738565b565b6066818154811061129157600080fd5b6000918252602090912001546001600160a01b0316905081565b6069546001600160a01b03166112ef5760405162461bcd60e51b815260206004820152600960248201526810b932bbb0b93232b960b91b6044820152606401610627565b60006112fa60655490565b90506000805b8281101561136e5761131181611081565b61131b8133612624565b1561135e5761132c6109338261278a565b6000828152607360209081526040808320338452909152902060725491935090611357904290612611565b6003909101555b61136781613036565b9050611300565b5080156113e8576068546001600160a01b03166340c10f19336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156113cf57600080fd5b505af11580156113e3573d6000803e3d6000fd5b505050505b6069546068546001600160a01b039182169163eb2cb849913391166370a08231826040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561144857600080fd5b505afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190612e10565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156114c657600080fd5b505af11580156114da573d6000803e3d6000fd5b5050606954600092506001600160a01b0316905063a04d4813336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381600087803b15801561153557600080fd5b505af1158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612e10565b9050600081116115bf5760405162461bcd60e51b815260206004820152601960248201527f6578706563742072657374616b6520616d6f756e74203e2030000000000000006044820152606401610627565b600060656000815481106115e357634e487b7160e01b600052603260045260246000fd5b6000918252602090912060675460049092020180549092506001600160a01b039081169116146116475760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081cda5b99db19481c1bdbdb608a1b6044820152606401610627565b3360009081527f37752fb6c52d3edead1b46e6bc9caaf15e79e8a8593990dba84e5007780d3f996020526040902080546116819084612611565b808255606c54600384015461169a926108d5919061264e565b600182015542600282018190556072546116b49190612611565b600382015560405183815233907fc3bbee56d2e23d6cedf5b3cdf50a297800242593cbe2e4756e3eb5a82201e40f9060200160405180910390a25050505050565b6033546001600160a01b0316331461171f5760405162461bcd60e51b815260040161062790612f67565b606f548111156117415760405162461bcd60e51b815260040161062790612ebc565b6117496125b6565b606d81905560405181815233907f94b5ef2b3c61ec8d6f49d0583aa6453a359e0290398b5975daee477927d5e58b906020015b60405180910390a250565b600054610100900460ff16806117a0575060005460ff16155b6117bc5760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff161580156117de576000805461ffff19166101011790555b6117e66128dd565b6001600160a01b0387166118595760405162461bcd60e51b815260206004820152603460248201527f566553696e676c655374616b696e673a20756e6578706563746564207a65726f604482015273206164647265737320666f72205f73696e676c6560601b6064820152608401610627565b6001600160a01b0386166118ce5760405162461bcd60e51b815260206004820152603660248201527f566553696e676c655374616b696e673a20756e6578706563746564207a65726f604482015275206164647265737320666f72205f766553696e676c6560501b6064820152608401610627565b6ec097ce7bc90715b34b9f1000000000606f8190558511156119025760405162461bcd60e51b815260040161062790612ebc565b606f548411156119895760405162461bcd60e51b815260206004820152604660248201527f566553696e676c655374616b696e673a206578706563746564205f737065656460448201527f5570566553696e676c65506572536861726550657253656320746f206265203c6064820152651e9018b2999b60d11b608482015260a401610627565b6301e13380831115611a035760405162461bcd60e51b815260206004820152603b60248201527f566553696e676c655374616b696e673a206578706563746564205f6c6f636b5560448201527f704475726174696f6e20746f206265203c3d20333635206461797300000000006064820152608401610627565b62989680606b558115801590611a1b5750606b548211155b611a995760405162461bcd60e51b815260206004820152604360248201527f566553696e676c655374616b696e673a206578706563746564205f6d6178436160448201527f7050637420746f206265206e6f6e2d7a65726f20616e64203c3d20313030303060648201526203030360ec1b608482015260a401610627565b606a8290556072839055606780546001600160a01b03808a166001600160a01b031992831681178455606880548b8416908516179055606d899055606e889055670de0b6b3a7640000606c819055607081905560718190556040805160a081018252928352600060208401818152918401928352426060850190815260808501828152606580546001818101835591855296516004979097027f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c78101805496511515600160a01b026001600160a81b0319909716988a16989098179590951790965593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c8840155517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c983015591517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7ca9091015593546066805492830181559094527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435401805490921692169190911790558015611c3c576000805461ff00191690555b50505050505050565b6033546001600160a01b03163314611c6f5760405162461bcd60e51b815260040161062790612f67565b606a548111611cfd5760405162461bcd60e51b815260206004820152604e60248201527f566553696e676c655374616b696e673a206578706563746564206e6577205f6d60448201527f617843617050637420746f2062652067726561746572207468616e206578697360648201526d1d1a5b99c81b585e10d85c1418dd60921b608482015260a401610627565b8015801590611d0e5750606b548111155b611d905760405162461bcd60e51b815260206004820152604760248201527f566553696e676c655374616b696e673a206578706563746564206e6577205f6d60448201527f617843617050637420746f206265206e6f6e2d7a65726f20616e64203c3d20316064820152660303030303030360cc1b608482015260a401610627565b606a81905560405181815233907f8d4a57ca749299886997ec990a3f4a210270c58d6f283d4728136ca62c17d1bf9060200161177c565b606554600090815b81811015611e3957836001600160a01b031660668281548110611e0257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611e27575060019392505050565b80611e3181613036565b915050611dcf565b5060009392505050565b6033546001600160a01b03163314611e6d5760405162461bcd60e51b815260040161062790612f67565b611e7682611dc7565b15611ed55760405162461bcd60e51b815260206004820152602960248201527f566553696e676c655374616b696e673a3a616464506f6f6c3a3a207374616b656044820152680546f6b656e206475760bc1b6064820152608401610627565b60715481156120465760675460408051630dfe168160e01b8152905185926001600160a01b039081169290841691630dfe168191600480820192602092909190829003018186803b158015611f2957600080fd5b505afa158015611f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f619190612ce2565b6001600160a01b03161480611ffb57506067546040805163d21220a760e01b815290516001600160a01b039283169284169163d21220a7916004808301926020929190829003018186803b158015611fb857600080fd5b505afa158015611fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff09190612ce2565b6001600160a01b0316145b6120395760405162461bcd60e51b815260206004820152600f60248201526e3737ba1039b4b733b632903830b4b960891b6044820152606401610627565b61204284610ec9565b9150505b6040805160a0810182526001600160a01b039485168082529315156020820190815291810192835242606082019081526000608083018181526065805460018181018355918452945160049095027f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c78101805497511515600160a01b026001600160a81b031990981696909a16959095179590951790975593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c8830155517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c982015593517f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7ca9094019390935560668054938401815590527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435490910180546001600160a01b0319169091179055565b60006121a060655490565b90506000805b828110156121e5576121b88133612624565b156121d5576121c681611081565b6121d26109338261278a565b91505b6121de81613036565b90506121a6565b508015612369576068546001600160a01b03166340c10f19335b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561224757600080fd5b505af115801561225b573d6000803e3d6000fd5b50506069546001600160a01b03161591506123699050576069546068546001600160a01b039182169163eb2cb849913391166370a08231826040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190612e10565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561235057600080fd5b505af1158015612364573d6000803e3d6000fd5b505050505b5050565b600081116123e5576040805162461bcd60e51b81526020600482015260248101919091527f566553696e676c655374616b696e673a206578706563746564206465706f736960448201527f7420616d6f756e7420746f2062652067726561746572207468616e207a65726f6064820152608401610627565b6123ee82611081565b60006065838154811061241157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600490920290910180548684526073909252604083209093506001600160a01b039091169190816124493390565b6001600160a01b031681526020810191909152604001600020905061246e8533612624565b156124875761247c856125e7565b4260028201556124a1565b607254612495904290612611565b60038201554260028201555b80546124ad9085612611565b808255606c5460038501546124c6926108d5919061264e565b60018201556124e06001600160a01b038316333087612958565b604051848152339086907feaa18152488ce5959073c9c79c88ca90b3d96c00de1f118cfaad664c3dab06b99060200160405180910390a35050505050565b6033546001600160a01b031633146125485760405162461bcd60e51b815260040161062790612f67565b6001600160a01b0381166125ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610627565b61064281612738565b60006125c160655490565b905060005b81811015612369576125d781611081565b6125e081613036565b90506125c6565b60006125f28261278a565b90508015612369576068546001600160a01b03166340c10f19336121ff565b600061261d8284612f9c565b9392505050565b60009182526073602090815260408084206001600160a01b03939093168452919052902054151590565b600061261d8284612fd4565b600061261d8284612fb4565b600061261d8284612ff3565b600061267d60655490565b905060005b818110156126d0576126948184612624565b156126c05760008181526073602090815260408083206001600160a01b03871684529091528120600401555b6126c981613036565b9050612682565b505050565b6040516001600160a01b0383166024820152604481018290526126d090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612996565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080606583815481106127ae57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805160a08101825260049390930290910180546001600160a01b0381168452600160a01b900460ff161515938301939093526001830154908201526002820154606082015260039091015460808201529050612817833361075f565b60008481526073602090815260408083203384529091529020606c5481546080850151939550919261284d926108d5919061264e565b6001820155600381015415801590612869575080600301544210155b1561287657600060038201555b82156128d657428160020181905550828160040160008282546128999190612f9c565b9091555050604051838152339085907f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f3039060200160405180910390a35b5050919050565b600054610100900460ff16806128f6575060005460ff16155b6129125760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612934576000805461ffff19166101011790555b61293c612a68565b612944612ad2565b8015610642576000805461ff001916905550565b6040516001600160a01b03808516602483015283166044820152606481018290526129909085906323b872dd60e01b90608401612701565b50505050565b60006129eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b329092919063ffffffff16565b8051909150156126d05780806020019051810190612a099190612cfe565b6126d05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610627565b600054610100900460ff1680612a81575060005460ff16155b612a9d5760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612944576000805461ffff19166101011790558015610642576000805461ff001916905550565b600054610100900460ff1680612aeb575060005460ff16155b612b075760405162461bcd60e51b815260040161062790612f19565b600054610100900460ff16158015612b29576000805461ffff19166101011790555b61294433612738565b6060612b418484600085612b49565b949350505050565b606082471015612baa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610627565b843b612bf85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610627565b600080866001600160a01b03168587604051612c149190612e6d565b60006040518083038185875af1925050503d8060008114612c51576040519150601f19603f3d011682016040523d82523d6000602084013e612c56565b606091505b5091509150612c66828286612c71565b979650505050505050565b60608315612c8057508161261d565b825115612c905782518084602001fd5b8160405162461bcd60e51b81526004016106279190612e89565b80516001600160701b0381168114612cc157600080fd5b919050565b600060208284031215612cd7578081fd5b813561261d81613067565b600060208284031215612cf3578081fd5b815161261d81613067565b600060208284031215612d0f578081fd5b815161261d8161307c565b60008060408385031215612d2c578081fd5b8235612d3781613067565b91506020830135612d478161307c565b809150509250929050565b60008060008060008060c08789031215612d6a578182fd5b8635612d7581613067565b95506020870135612d8581613067565b95989597505050506040840135936060810135936080820135935060a0909101359150565b600080600060608486031215612dbe578283fd5b612dc784612caa565b9250612dd560208501612caa565b9150604084015163ffffffff81168114612ded578182fd5b809150509250925092565b600060208284031215612e09578081fd5b5035919050565b600060208284031215612e21578081fd5b5051919050565b60008060408385031215612e3a578182fd5b823591506020830135612d4781613067565b60008060408385031215612e5e578182fd5b50508035926020909101359150565b60008251612e7f81846020870161300a565b9190910192915050565b6020815260008251806020840152612ea881604085016020870161300a565b601f01601f19169190910160400192915050565b6020808252603f908201527f566553696e676c655374616b696e673a206578706563746564205f766553696e60408201527f676c65506572536861726550657253656320746f206265203c3d203165333600606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612faf57612faf613051565b500190565b600082612fcf57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fee57612fee613051565b500290565b60008282101561300557613005613051565b500390565b60005b8381101561302557818101518382015260200161300d565b838111156129905750506000910152565b600060001982141561304a5761304a613051565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461064257600080fd5b801515811461064257600080fdfea264697066735822122043859faa16c5d962594920731419c7ec5bdba5d66f3d9ead747967f2b6d7d3c964736f6c63430008040033