0x6080604052600436106101395760003560e01c80635ecb16cd116100ab5780639779d1a61161006f5780639779d1a6146103ce5780639ca37a0b146103fe578063d408f65714610411578063f1c772b614610441578063f2fde38b14610461578063fbec27bf1461048157600080fd5b80635ecb16cd14610330578063715018a61461035057806375f12b21146103655780638da5cb5b146103865780639735a634146103ae57600080fd5b80631f632285116100fd5780631f63228514610267578063357d6b5b1461027a5780633ff428c71461029a5780634f51e294146102ba578063550bfa56146102fa5780635de0398e1461031a57600080fd5b806301e980d41461019a5780630dc9de85146101ba5780631385d24c146101da5780631781261f146101ef57806318b135e31461023a57600080fd5b3661019557333214156101935760405162461bcd60e51b815260206004820152601a60248201527f446f206e6f742073656e642057454d4958206469726563746c7900000000000060448201526064015b60405180910390fd5b005b600080fd5b3480156101a657600080fd5b506101936101b5366004612d2b565b6104a1565b3480156101c657600080fd5b506101936101d5366004612d90565b610509565b3480156101e657600080fd5b50610193610710565b3480156101fb57600080fd5b5061022761020a366004612de7565b600560209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561024657600080fd5b50610227610255366004612e20565b60066020526000908152604090205481565b610227610275366004612e98565b610739565b34801561028657600080fd5b50610227610295366004612f68565b6108b5565b3480156102a657600080fd5b506101936102b5366004612fc3565b610a6d565b3480156102c657600080fd5b506102ea6102d5366004612e20565b60046020526000908152604090205460ff1681565b6040519015158152602001610231565b34801561030657600080fd5b50610193610315366004612d2b565b610aa0565b34801561032657600080fd5b5061022760025481565b34801561033c57600080fd5b5061019361034b366004612d90565b610afe565b34801561035c57600080fd5b50610193610d07565b34801561037157600080fd5b506000546102ea90600160a01b900460ff1681565b34801561039257600080fd5b506000546040516001600160a01b039091168152602001610231565b3480156103ba57600080fd5b506101936103c9366004612ff1565b610d1b565b3480156103da57600080fd5b506102ea6103e9366004612e20565b60076020526000908152604090205460ff1681565b61022761040c36600461305d565b610e07565b34801561041d57600080fd5b506102ea61042c366004612e20565b60016020526000908152604090205460ff1681565b34801561044d57600080fd5b5061022761045c366004613126565b610f4f565b34801561046d57600080fd5b5061019361047c366004612e20565b6110eb565b34801561048d57600080fd5b5061019361049c366004612fc3565b611164565b6104a9611197565b60648111156105045760405162461bcd60e51b815260206004820152602160248201527f416666696c696174652053706c69742056616c7565206e6f7420616c6c6f77656044820152601960fa1b606482015260840161018a565b600355565b6000805b8281101561070a573360009081526005602052604081209085858481811061053757610537613177565b905060200201602081019061054c9190612e20565b6001600160a01b0316815260208082019290925260409081016000908120543382526005909352908120919350908186868581811061058d5761058d613177565b90506020020160208101906105a29190612e20565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555081600660008686858181106105dd576105dd613177565b90506020020160208101906105f29190612e20565b6001600160a01b03166001600160a01b031681526020019081526020016000205461061d91906131a3565b6006600086868581811061063357610633613177565b90506020020160208101906106489190612e20565b6001600160a01b0316815260208101919091526040016000205573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee84848381811061068957610689613177565b905060200201602081019061069e9190612e20565b6001600160a01b031614156106bc576106b733836111f1565b6106f8565b6106f833838686858181106106d3576106d3613177565b90506020020160208101906106e89190612e20565b6001600160a01b0316919061130a565b80610702816131ba565b91505061050d565b50505050565b610718611197565b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b60008054600160a01b900460ff16156107895760405162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015260640161018a565b60008061079b8e8c600060018861136d565b905060006107ae8e8c600060018961136d565b90506108048f8f8f85858e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d61156b565b92505050878110156108485760405162461bcd60e51b815260206004820152600d60248201526c4869676820536c69707061676560981b604482015260640161018a565b604080513381526001600160a01b038d1660208201529081018290527f7f31d76771556dce5ab39ba5b60664743da2629a75c474e9445734b7ad34087d9060600160405180910390a16108a56001600160a01b038c16338361130a565b9c9b505050505050505050505050565b6000807f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c06001600160a01b031663e6a4390587876040518363ffffffff1660e01b81526004016109069291906131d5565b60206040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095691906131ef565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561099457600080fd5b505afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc9190613223565b506001600160701b031691506001600160701b03169150876001600160a01b0316896001600160a01b03161415610a3057610a0982828888611654565b935060008411610a2b5760405162461bcd60e51b815260040161018a90613273565b610a61565b939493610a3f81838789611654565b935060008411610a615760405162461bcd60e51b815260040161018a90613273565b50505095945050505050565b610a75611197565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b610aa8611197565b6064811115610af95760405162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015260640161018a565b600255565b610b06611197565b60005b81811015610d0257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee848484818110610b3a57610b3a613177565b9050602002016020810190610b4f9190612e20565b6001600160a01b03161415610bcf5760066000858585818110610b7457610b74613177565b9050602002016020810190610b899190612e20565b6001600160a01b03168152602081019190915260400160002054610bad90476131a3565b9050610bca610bc46000546001600160a01b031690565b826111f1565b610cef565b60066000858585818110610be557610be5613177565b9050602002016020810190610bfa9190612e20565b6001600160a01b03166001600160a01b0316815260200190815260200160002054848484818110610c2d57610c2d613177565b9050602002016020810190610c429190612e20565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b158015610c8357600080fd5b505afa158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb91906132b4565b610cc591906131a3565b9050610cef610cdc6000546001600160a01b031690565b828686868181106106d3576106d3613177565b5080610cfa816131ba565b915050610b09565b505050565b610d0f611197565b610d196000611744565b565b610d23611197565b828114610d695760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c84092dce0eae840d8cadccee8d60631b604482015260640161018a565b60005b83811015610e0057828282818110610d8657610d86613177565b9050602002016020810190610d9b91906132cd565b60076000878785818110610db157610db1613177565b9050602002016020810190610dc69190612e20565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610df8816131ba565b915050610d6c565b5050505050565b60008054600160a01b900460ff1615610e575760405162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015260640161018a565b6000610e678c8b8760018761136d565b90506000610eb08d8d848c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250611794915050565b905089811015610ef25760405162461bcd60e51b815260206004820152600d60248201526c4869676820536c69707061676560981b604482015260640161018a565b604080513381526001600160a01b038e1660208201529081018290527f7f31d76771556dce5ab39ba5b60664743da2629a75c474e9445734b7ad34087d9060600160405180910390a16108a56001600160a01b038d16338361130a565b6000807f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c06001600160a01b031663e6a4390586866040518363ffffffff1660e01b8152600401610fa09291906131d5565b60206040518083038186803b158015610fb857600080fd5b505afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906131ef565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561102e57600080fd5b505afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190613223565b506001600160701b031691506001600160701b03169150866001600160a01b0316886001600160a01b031614156110be576110a18286611831565b9350600084116110b9576110b6600286613300565b93505b6110e0565b6110c88186611831565b9350600084116110e0576110dd600286613300565b93505b505050949350505050565b6110f3611197565b6001600160a01b0381166111585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161018a565b61116181611744565b50565b61116c611197565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018a565b804710156112415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161018a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461128e576040519150601f19603f3d011682016040523d82523d6000602084013e611293565b606091505b5050905080610d025760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161018a565b6040516001600160a01b038316602482015260448101829052610d0290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261188e565b6000806001600160a01b0387166113f257600034116113be5760405162461bcd60e51b815260206004820152600d60248201526c139bc815d1535256081cd95b9d609a1b604482015260640161018a565b6113de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee348787611960565b90506113ea81346131a3565b915050611562565b600086116114395760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b604482015260640161018a565b821561153157333b1515801561144f5750333214155b6114b05760405162461bcd60e51b815260206004820152602c60248201527f4552523a2073686f756c6453656c6c456e7469726542616c616e63652069732060448201526b7472756520666f7220454f4160a01b606482015260840161018a565b604051636eb1769f60e11b81526001600160a01b0388169063dd62ed3e906114de90339030906004016131d5565b60206040518083038186803b1580156114f657600080fd5b505afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e91906132b4565b95505b6115466001600160a01b038816333089611aa8565b61155287878787611960565b905061155e81876131a3565b9150505b95945050505050565b600080600080600061157c8b611ae0565b91509150816001600160a01b03168d6001600160a01b0316141580156115b45750806001600160a01b03168d6001600160a01b031614155b156115d0576115c68d8c8c8b8b611ce5565b90945092506115d7565b8c92508993505b816001600160a01b03168c6001600160a01b03161415801561160b5750806001600160a01b03168c6001600160a01b031614155b156116205761161d8c8c8b8b8b611ce5565b50505b600080611630858585898f612190565b91509150611641848484848c61239a565b9f9e505050505050505050505050505050565b6000806116618584613322565b61166d9061031e61333a565b905060006116fb82876116838a6209bdc161333a565b61168d919061333a565b611697878b61333a565b896116a58a6209bdc061333a565b6116af919061333a565b6116b99190613322565b6116c39190613322565b6116cd9190613300565b836116d88988613322565b6116e2908b61333a565b6116ec9190613300565b6116f6919061333a565b612544565b905060008261170a8887613322565b6117168a61031f61333a565b611720919061333a565b61172a9190613300565b905080821161173a5760006110dd565b6110dd81836131a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008060006117a58a611ae0565b91509150816001600160a01b03168b6001600160a01b0316141580156117dd5750806001600160a01b03168b6001600160a01b031614155b156117f9576117ef8b8b8b8b8b611ce5565b9094509250611800565b8a92508893505b60008061180f858585896125a2565b91509150611820848484848c61239a565b9d9c50505050505050505050505050565b600061031e6118428461031f61333a565b611873611852866209bdc161333a565b61185f866209bdc061333a565b6118699190613322565b6116f6908761333a565b61187d91906131a3565b6118879190613300565b9392505050565b60006118e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661277a9092919063ffffffff16565b805190915015610d0257808060200190518101906119019190613359565b610d025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161018a565b3360009081526001602052604081205460ff1682801561197e575080155b801561198c57506000600254115b15611a9f57612710600254866119a2919061333a565b6119ac9190613300565b6001600160a01b03851660009081526004602052604090205490925060ff1615611a9f576001600160a01b0386166119f65773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee95505b6000606460035484611a08919061333a565b611a129190613300565b6001600160a01b038087166000908152600560209081526040808320938c1683529290522054909150611a46908290613322565b6001600160a01b038087166000908152600560209081526040808320938c168352928152828220939093556006909252902054611a84908290613322565b6001600160a01b038816600090815260066020526040902055505b50949350505050565b6040516001600160a01b038085166024830152831660448201526064810182905261070a9085906323b872dd60e01b90608401611336565b6000806000839050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2157600080fd5b505afa158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5991906131ef565b9250806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9457600080fd5b505afa158015611ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcc91906131ef565b60405163e6a4390560e01b81529092506001600160a01b037f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c0169063e6a4390590611c1d90869086906004016131d5565b60206040518083038186803b158015611c3557600080fd5b505afa158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d91906131ef565b6001600160a01b0316846001600160a01b031614611cdf5760405162461bcd60e51b815260206004820152602960248201527f5765737761705a6170496e3a3a5f67657450616972546f6b656e733a20494e5660448201526820a624a22fa820a4a960b91b606482015260840161018a565b50915091565b6000807f000000000000000000000000244c72ab61f11dd44bfa4aaf11e2efd89ca789fe6001600160a01b0316846001600160a01b03161415611dc1577f000000000000000000000000244c72ab61f11dd44bfa4aaf11e2efd89ca789fe6001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d7d57600080fd5b505af1158015611d91573d6000803e3d6000fd5b5050505050847f000000000000000000000000244c72ab61f11dd44bfa4aaf11e2efd89ca789fe91509150612186565b60006001600160a01b038816611dd8575084611de3565b611de3888688612791565b600080611def89611ae0565b6040516370a0823160e01b81523060048201529193509150829082906000906001600160a01b038416906370a082319060240160206040518083038186803b158015611e3a57600080fd5b505afa158015611e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7291906132b4565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a082319060240160206040518083038186803b158015611eb757600080fd5b505afa158015611ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eef91906132b4565b6001600160a01b038c1660009081526007602052604090205490915060ff16611f525760405162461bcd60e51b815260206004820152601560248201527415185c99d95d081b9bdd08105d5d1a1bdc9a5e9959605a1b604482015260640161018a565b60008b6001600160a01b0316888c604051611f6d91906133a2565b60006040518083038185875af1925050503d8060008114611faa576040519150601f19603f3d011682016040523d82523d6000602084013e611faf565b606091505b50509050806120005760405162461bcd60e51b815260206004820152601760248201527f4572726f72205377617070696e6720546f6b656e732031000000000000000000604482015260640161018a565b6040516370a0823160e01b815230600482015260009084906001600160a01b038816906370a082319060240160206040518083038186803b15801561204457600080fd5b505afa158015612058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207c91906132b4565b61208691906131a3565b6040516370a0823160e01b815230600482015290915060009084906001600160a01b038816906370a082319060240160206040518083038186803b1580156120cd57600080fd5b505afa1580156120e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210591906132b4565b61210f91906131a3565b90508082111561212457819b50889a5061212b565b809b50879a505b60008c1161217b5760405162461bcd60e51b815260206004820152601f60248201527f5377617070656420746f20496e76616c696420496e7465726d65646961746500604482015260640161018a565b505050505050505050505b9550959350505050565b60008060007f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c06001600160a01b031663e6a4390588886040518363ffffffff1660e01b81526004016121e39291906131d5565b60206040518083038186803b1580156121fb57600080fd5b505afa15801561220f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223391906131ef565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561227157600080fd5b505afa158015612285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a99190613223565b506001600160701b031691506001600160701b03169150886001600160a01b03168a6001600160a01b031614156123345760006122e883838a8a611654565b90506000811161230a5760405162461bcd60e51b815260040161018a90613273565b866123168c8b846127ba565b6123209190613322565b945061232c81896131a3565b95505061238d565b94959460006123458284898b611654565b9050600081116123675760405162461bcd60e51b815260040161018a90613273565b876123738c8c846127ba565b61237d9190613322565b955061238981886131a3565b9450505b5050509550959350505050565b60006123c7867f00000000000000000000000078adc147e1ff67a49fe8790533573e7fe81eb17786612791565b6123f2857f00000000000000000000000078adc147e1ff67a49fe8790533573e7fe81eb17785612791565b60405162e8e33760e81b81526001600160a01b0387811660048301528681166024830152604482018690526064820185905260016084830181905260a48301523060c4830152600f60fc1b60e4830152600091829182917f00000000000000000000000078adc147e1ff67a49fe8790533573e7fe81eb1779091169063e8e337009061010401606060405180830381600087803b15801561249257600080fd5b505af11580156124a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ca91906133be565b92509250925084156125385760006124e284896131a3565b111561250757612507336124f6858a6131a3565b6001600160a01b038c16919061130a565b600061251383886131a3565b1115612538576125383361252784896131a3565b6001600160a01b038b16919061130a565b98975050505050505050565b60006003821115612593575080600160028204015b8181101561258d57809150600281828581612576576125766132ea565b040181612585576125856132ea565b049050612559565b50919050565b811561259d575060015b919050565b60008060007f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c06001600160a01b031663e6a4390587876040518363ffffffff1660e01b81526004016125f59291906131d5565b60206040518083038186803b15801561260d57600080fd5b505afa158015612621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264591906131ef565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561268357600080fd5b505afa158015612697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126bb9190613223565b506001600160701b031691506001600160701b03169150876001600160a01b0316896001600160a01b0316141561272f5760006126f88388611831565b9050600081116127105761270d600288613300565b90505b61271b8a89836127ba565b945061272781886131a3565b95505061276e565b600061273b8288611831565b90506000811161275357612750600288613300565b90505b61275e8a8a836127ba565b955061276a81886131a3565b9450505b50505094509492505050565b60606127898484600085612a9e565b949350505050565b6127a66001600160a01b038416836000612bcf565b610d026001600160a01b0384168383612bcf565b6000826001600160a01b0316846001600160a01b031614156127dd575080611887565b612808847f00000000000000000000000078adc147e1ff67a49fe8790533573e7fe81eb17784612791565b60405163e6a4390560e01b81526000906001600160a01b037f000000000000000000000000f3d8c1f59617cb95d79f9300c2e59c83ffc969c0169063e6a439059061285990889088906004016131d5565b60206040518083038186803b15801561287157600080fd5b505afa158015612885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a991906131ef565b90506001600160a01b0381166128f55760405162461bcd60e51b81526020600482015260116024820152704e6f205377617020417661696c61626c6560781b604482015260640161018a565b604080516002808252606082018352600092602083019080368337019050509050858160008151811061292a5761292a613177565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811061295e5761295e613177565b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f00000000000000000000000078adc147e1ff67a49fe8790533573e7fe81eb177909116906338ed1739906129c790879060019086903090600f60fc1b90600401613402565b600060405180830381600087803b1580156129e157600080fd5b505af11580156129f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a1d9190810190613473565b60018251612a2b91906131a3565b81518110612a3b57612a3b613177565b6020026020010151925060008311612a955760405162461bcd60e51b815260206004820152601760248201527f4572726f72205377617070696e6720546f6b656e732032000000000000000000604482015260640161018a565b50509392505050565b606082471015612aff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161018a565b6001600160a01b0385163b612b565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161018a565b600080866001600160a01b03168587604051612b7291906133a2565b60006040518083038185875af1925050503d8060008114612baf576040519150601f19603f3d011682016040523d82523d6000602084013e612bb4565b606091505b5091509150612bc4828286612cf2565b979650505050505050565b801580612c575750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90612c0590309086906004016131d5565b60206040518083038186803b158015612c1d57600080fd5b505afa158015612c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5591906132b4565b155b612cc25760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161018a565b6040516001600160a01b038316602482015260448101829052610d0290849063095ea7b360e01b90606401611336565b60608315612d01575081611887565b825115612d115782518084602001fd5b8160405162461bcd60e51b815260040161018a9190613525565b600060208284031215612d3d57600080fd5b5035919050565b60008083601f840112612d5657600080fd5b50813567ffffffffffffffff811115612d6e57600080fd5b6020830191508360208260051b8501011115612d8957600080fd5b9250929050565b60008060208385031215612da357600080fd5b823567ffffffffffffffff811115612dba57600080fd5b612dc685828601612d44565b90969095509350505050565b6001600160a01b038116811461116157600080fd5b60008060408385031215612dfa57600080fd5b8235612e0581612dd2565b91506020830135612e1581612dd2565b809150509250929050565b600060208284031215612e3257600080fd5b813561188781612dd2565b60008083601f840112612e4f57600080fd5b50813567ffffffffffffffff811115612e6757600080fd5b602083019150836020828501011115612d8957600080fd5b801515811461116157600080fd5b803561259d81612e7f565b60008060008060008060008060008060006101408c8e031215612eba57600080fd5b8b35612ec581612dd2565b9a5060208c0135612ed581612dd2565b995060408c0135612ee581612dd2565b985060608c0135975060808c0135965060a08c0135955060c08c0135612f0a81612dd2565b945060e08c013567ffffffffffffffff811115612f2657600080fd5b612f328e828f01612e3d565b9095509350506101008c0135612f4781612e7f565b9150612f566101208d01612e8d565b90509295989b509295989b9093969950565b600080600080600060a08688031215612f8057600080fd5b8535612f8b81612dd2565b94506020860135612f9b81612dd2565b93506040860135612fab81612dd2565b94979396509394606081013594506080013592915050565b60008060408385031215612fd657600080fd5b8235612fe181612dd2565b91506020830135612e1581612e7f565b6000806000806040858703121561300757600080fd5b843567ffffffffffffffff8082111561301f57600080fd5b61302b88838901612d44565b9096509450602087013591508082111561304457600080fd5b5061305187828801612d44565b95989497509550505050565b6000806000806000806000806000806101208b8d03121561307d57600080fd5b8a3561308881612dd2565b995060208b013561309881612dd2565b985060408b0135975060608b0135965060808b01356130b681612dd2565b955060a08b013567ffffffffffffffff8111156130d257600080fd5b6130de8d828e01612e3d565b90965094505060c08b01356130f281612dd2565b925060e08b013561310281612e7f565b91506101008b013561311381612e7f565b809150509295989b9194979a5092959850565b6000806000806080858703121561313c57600080fd5b843561314781612dd2565b9350602085013561315781612dd2565b9250604085013561316781612dd2565b9396929550929360600135925050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156131b5576131b561318d565b500390565b60006000198214156131ce576131ce61318d565b5060010190565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561320157600080fd5b815161188781612dd2565b80516001600160701b038116811461259d57600080fd5b60008060006060848603121561323857600080fd5b6132418461320c565b925061324f6020850161320c565b9150604084015163ffffffff8116811461326857600080fd5b809150509250925092565b60208082526021908201527f5a6170496e3a206e6f7420616c6c6f77656420746f20637265617465207061696040820152603960f91b606082015260800190565b6000602082840312156132c657600080fd5b5051919050565b6000602082840312156132df57600080fd5b813561188781612e7f565b634e487b7160e01b600052601260045260246000fd5b60008261331d57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156133355761333561318d565b500190565b60008160001904831182151516156133545761335461318d565b500290565b60006020828403121561336b57600080fd5b815161188781612e7f565b60005b83811015613391578181015183820152602001613379565b8381111561070a5750506000910152565b600082516133b4818460208701613376565b9190910192915050565b6000806000606084860312156133d357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156134525784516001600160a01b03168352938301939183019160010161342d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561348657600080fd5b825167ffffffffffffffff8082111561349e57600080fd5b818501915085601f8301126134b257600080fd5b8151818111156134c4576134c46133ec565b8060051b604051601f19603f830116810181811085821117156134e9576134e96133ec565b60405291825284820192508381018501918883111561350757600080fd5b938501935b828510156125385784518452938501939285019261350c565b6020815260008251806020840152613544816040850160208701613376565b601f01601f1916919091016040019291505056fea2646970667358221220005db72243d5ea7a948e8e311ca89ef32802d6eb98fdda1df2eeb754e4a5cb2e64736f6c63430008090033