60e060405260366080818152906200321b60a03980516200002991601391602090910190620002ca565b503480156200003757600080fd5b50604080518082018252601381527f526176654661636573204e46542044726f70730000000000000000000000000060208083019182528351808501909452600c84526b149188111c9bdc1cc813919560a21b908401528151733cc6cdda760b79bafa08df41ecfa224f810dceb693600193929091620000ba91600291620002ca565b508051620000d0906003906020840190620002ca565b506000805550506daaeb6d7670e522a718067333cd4e3b156200021c5780156200016a57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200014b57600080fd5b505af115801562000160573d6000803e3d6000fd5b505050506200021c565b6001600160a01b03821615620001bb5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af29039060440162000130565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200020257600080fd5b505af115801562000217573d6000803e3d6000fd5b505050505b506200022a90503362000270565b60016009819055600a600c8190556000600d819055662386f26fc1000090915568056bc75e2d63100000600b556012805462ffffff1916909217909155601155620003ac565b600880546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620002d89062000370565b90600052602060002090601f016020900481019282620002fc576000855562000347565b82601f106200031757805160ff191683800117855562000347565b8280016001018555821562000347579182015b82811115620003475782518255916020019190600101906200032a565b506200035592915062000359565b5090565b5b808211156200035557600081556001016200035a565b600181811c908216806200038557607f821691505b602082108103620003a657634e487b7160e01b600052602260045260246000fd5b50919050565b612e5f80620003bc6000396000f3fe6080604052600436106102ae5760003560e01c8063715018a611610175578063a22cb465116100dc578063bdeae07111610095578063e985e9c51161006f578063e985e9c5146107b4578063ecba222a146107fd578063ee55efee14610815578063f2fde38b1461082a57600080fd5b8063bdeae07114610747578063c23dc68f14610767578063c87b56dd1461079457600080fd5b8063a22cb465146106c2578063a658c58d146106e2578063b2acca0914610702578063b5521a641461070a578063b8394a3f1461071f578063b88d4fde1461073457600080fd5b8063941ada0e1161012e578063941ada0e1461063a57806395d89b411461065257806397304ced1461066757806399a2557a1461067a5780639edcc3101461069a578063a1224ad3146106af57600080fd5b8063715018a61461058257806371c00e53146105975780637c98d82b146105b75780637f6066a9146105ca5780638462151c146105ea5780638da5cb5b1461061757600080fd5b806342966c681161021957806356196f11116101d257806356196f11146104c05780635bbb2177146104e05780635ef9432a1461050d5780636352211e146105225780636f8b44b01461054257806370a082311461056257600080fd5b806342966c681461042157806344a0d68a146104415780634c0f38c2146104615780634dae50a9146104765780634f3e1efc1461048b57806355f804b3146104a057600080fd5b806323b872dd1161026b57806323b872dd1461039a57806324a391ec146103ad57806335133b40146103c25780633ccfd60b146103d757806341f43434146103ec57806342842e0e1461040e57600080fd5b806301ffc9a7146102b357806306fdde03146102e8578063081812fc1461030a578063095ea7b3146103425780630cda5e6a1461035757806318160ddd14610377575b600080fd5b3480156102bf57600080fd5b506102d36102ce3660046126f6565b61084a565b60405190151581526020015b60405180910390f35b3480156102f457600080fd5b506102fd61089c565b6040516102df919061276b565b34801561031657600080fd5b5061032a61032536600461277e565b61092e565b6040516001600160a01b0390911681526020016102df565b6103556103503660046127b3565b610972565b005b34801561036357600080fd5b506103556103723660046127dd565b610a52565b34801561038357600080fd5b50600154600054035b6040519081526020016102df565b6103556103a83660046127f8565b610a7c565b3480156103b957600080fd5b50610355610b67565b3480156103ce57600080fd5b50610355610b80565b3480156103e357600080fd5b50610355610b94565b3480156103f857600080fd5b5061032a6daaeb6d7670e522a718067333cd4e81565b61035561041c3660046127f8565b610bdf565b34801561042d57600080fd5b5061035561043c36600461277e565b610cbf565b34801561044d57600080fd5b5061035561045c36600461277e565b610cca565b34801561046d57600080fd5b50600c5461038c565b34801561048257600080fd5b50610355610cd7565b34801561049757600080fd5b5061038c610ced565b3480156104ac57600080fd5b506103556104bb366004612834565b610d01565b3480156104cc57600080fd5b506103556104db3660046127dd565b610d15565b3480156104ec57600080fd5b506105006104fb3660046128f2565b610d3f565b6040516102df9190612971565b34801561051957600080fd5b50610355610e0b565b34801561052e57600080fd5b5061032a61053d36600461277e565b610e80565b34801561054e57600080fd5b5061035561055d36600461277e565b610e8b565b34801561056e57600080fd5b5061038c61057d3660046127dd565b610e98565b34801561058e57600080fd5b50610355610ee7565b3480156105a357600080fd5b506103556105b236600461277e565b610efb565b6103556105c536600461277e565b610f08565b3480156105d657600080fd5b506103556105e53660046127dd565b6110f0565b3480156105f657600080fd5b5061060a6106053660046127dd565b61111a565b6040516102df91906129b3565b34801561062357600080fd5b5060085461010090046001600160a01b031661032a565b34801561064657600080fd5b5060125460ff166102d3565b34801561065e57600080fd5b506102fd611223565b61035561067536600461277e565b611232565b34801561068657600080fd5b5061060a6106953660046129eb565b611395565b3480156106a657600080fd5b5061035561150f565b6103556106bd3660046128f2565b611526565b3480156106ce57600080fd5b506103556106dd366004612a2c565b6116fd565b3480156106ee57600080fd5b506103556106fd36600461277e565b6117d3565b6103556117e0565b34801561071657600080fd5b50600b5461038c565b34801561072b57600080fd5b50610355611972565b610355610742366004612aaa565b611987565b34801561075357600080fd5b5061038c6107623660046127dd565b611a75565b34801561077357600080fd5b5061078761078236600461277e565b611b7e565b6040516102df9190612b6a565b3480156107a057600080fd5b506102fd6107af36600461277e565b611bf6565b3480156107c057600080fd5b506102d36107cf366004612b78565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561080957600080fd5b5060085460ff166102d3565b34801561082157600080fd5b50610355611c79565b34801561083657600080fd5b506103556108453660046127dd565b611c94565b60006301ffc9a760e01b6001600160e01b03198316148061087b57506380ac58cd60e01b6001600160e01b03198316145b806108965750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600280546108ab90612bab565b80601f01602080910402602001604051908101604052809291908181526020018280546108d790612bab565b80156109245780601f106108f957610100808354040283529160200191610924565b820191906000526020600020905b81548152906001019060200180831161090757829003601f168201915b5050505050905090565b600061093982611d0a565b610956576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600854829060ff1615801561099557506daaeb6d7670e522a718067333cd4e3b15155b15610a4357604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190612be5565b610a4357604051633b79c77360e21b81526001600160a01b03821660048201526024015b60405180910390fd5b610a4d8383611d31565b505050565b610a5a611dd1565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600854839060ff16158015610a9f57506daaeb6d7670e522a718067333cd4e3b15155b15610b5657336001600160a01b03821603610ac457610abf848484611e31565b610b61565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b379190612be5565b610b5657604051633b79c77360e21b8152336004820152602401610a3a565b610b61848484611e31565b50505050565b610b6f611dd1565b6012805461ff001916610100179055565b610b88611dd1565b6012805460ff19169055565b610b9c611dd1565b6008546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015610bdc573d6000803e3d6000fd5b50565b600854839060ff16158015610c0257506daaeb6d7670e522a718067333cd4e3b15155b15610cb457336001600160a01b03821603610c2257610abf848484611fc1565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c959190612be5565b610cb457604051633b79c77360e21b8152336004820152602401610a3a565b610b61848484611fc1565b610bdc816001611fdc565b610cd2611dd1565b600a55565b610cdf611dd1565b6012805462ff000019169055565b6000610cfc6001546000540390565b905090565b610d09611dd1565b610a4d60138383612647565b610d1d611dd1565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b60608160008167ffffffffffffffff811115610d5d57610d5d612a63565b604051908082528060200260200182016040528015610daf57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610d7b5790505b50905060005b828114610e0257610ddd868683818110610dd157610dd1612c02565b90506020020135611b7e565b828281518110610def57610def612c02565b6020908102919091010152600101610db5565b50949350505050565b60085461010090046001600160a01b03166001600160a01b0316336001600160a01b031614610e4d57604051635fc483c560e01b815260040160405180910390fd5b60085460ff1615610e715760405163905e710760e01b815260040160405180910390fd5b6008805460ff19166001179055565b600061089682612114565b610e93611dd1565b600c55565b60006001600160a01b038216610ec1576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610eef611dd1565b610ef9600061217b565b565b610f03611dd1565b600b55565b6008546001600160a01b0361010090910416331480610f2e5750601254610100900460ff165b610f6d5760405162461bcd60e51b815260206004820152601060248201526f141c995cd85b1948191a5cd8589b195960821b6044820152606401610a3a565b600081118015610f7e575060028111155b610fe45760405162461bcd60e51b815260206004820152603160248201527f596f752063616e206d696e74206d696e696d756d20312c206d6178696d756d2060448201527032204e46547320696e2070726553616c6560781b6064820152608401610a3a565b6000610fef33611a75565b116110475760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79204261636b537461676550617373206f776e6572732063616e206d696044820152611b9d60f21b6064820152608401610a3a565b600d5461106161105a6001546000540390565b83906121d5565b111561109f5760405162461bcd60e51b815260206004820152600d60248201526c45786365656420737570706c7960981b6044820152606401610a3a565b6008546001600160a01b03610100909104163314806110ca5750600a546110c690826121e1565b3410155b6110e65760405162461bcd60e51b8152600401610a3a90612c18565b610bdc33826121ed565b6110f8611dd1565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080600061112a85610e98565b905060008167ffffffffffffffff81111561114757611147612a63565b604051908082528060200260200182016040528015611170578160200160208202803683370190505b50905061119d60408051608081018252600080825260208201819052918101829052606081019190915290565b60005b838614611217576111b081612207565b9150816040015161120f5781516001600160a01b0316156111d057815194505b876001600160a01b0316856001600160a01b03160361120f578083878060010198508151811061120257611202612c02565b6020026020010181815250505b6001016111a0565b50909695505050505050565b6060600380546108ab90612bab565b61123a612243565b60125460ff1661127c5760405162461bcd60e51b815260206004820152600d60248201526c135a5b9d08191a5cd8589b1959609a1b6044820152606401610a3a565b60008111801561128d575060148111155b6112e95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e206d696e74206d696e696d756d20312c206d6178696d756d206044820152663230204e46547360c81b6064820152608401610a3a565b600d546112fc61105a6001546000540390565b111561133a5760405162461bcd60e51b815260206004820152600d60248201526c45786365656420737570706c7960981b6044820152606401610a3a565b6008546001600160a01b03610100909104163314806113655750600a5461136190826121e1565b3410155b6113815760405162461bcd60e51b8152600401610a3a90612c18565b61138b33826121ed565b610bdc6001600955565b60608183106113b757604051631960ccad60e11b815260040160405180910390fd5b6000806113c360005490565b9050808411156113d1578093505b60006113dc87610e98565b9050848610156113fb57858503818110156113f5578091505b506113ff565b5060005b60008167ffffffffffffffff81111561141a5761141a612a63565b604051908082528060200260200182016040528015611443578160200160208202803683370190505b5090508160000361145957935061150892505050565b600061146488611b7e565b905060008160400151611475575080515b885b8881141580156114875750848714155b156114fc5761149581612207565b925082604001516114f45782516001600160a01b0316156114b557825191505b8a6001600160a01b0316826001600160a01b0316036114f457808488806001019950815181106114e7576114e7612c02565b6020026020010181815250505b600101611477565b50505092835250909150505b9392505050565b611517611dd1565b6012805460ff19166001179055565b61152e612243565b8061157b5760405162461bcd60e51b815260206004820152601b60248201527f4d697373696e6720726563697069656e742061646472657373657300000000006044820152606401610a3a565b6008546001600160a01b036101009091041633146115d45760405162461bcd60e51b815260206004820152601660248201527504f6e6c79206f776e65722063616e2061697264726f760541b6044820152606401610a3a565b80158015906115e4575060148111155b6116405760405162461bcd60e51b815260206004820152602760248201527f596f752063616e2064726f70206d696e696d756d20312c206d6178696d756d206044820152663230204e46547360c81b6064820152608401610a3a565b600c5461164e906001612c71565b61165e61105a6001546000540390565b106116a05760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b6044820152606401610a3a565b60005b818110156116ee576116dc8383838181106116c0576116c0612c02565b90506020020160208101906116d591906127dd565b60016121ed565b806116e681612c89565b9150506116a3565b506116f96001600955565b5050565b600854829060ff1615801561172057506daaeb6d7670e522a718067333cd4e3b15155b156117c957604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190612be5565b6117c957604051633b79c77360e21b81526001600160a01b0382166004820152602401610a3a565b610a4d838361229c565b6117db611dd1565b600d55565b6117e8612243565b60125460ff1661182a5760405162461bcd60e51b815260206004820152600d60248201526c135a5b9d08191a5cd8589b1959609a1b6044820152606401610a3a565b600d5460015460005403101561188d5760405162461bcd60e51b815260206004820152602260248201527f596f752063616e206f6e6c79206d696e7420666f722045544820666f72206e6f604482015261772160f01b6064820152608401610a3a565b600c5461189b906001612c71565b60015460005403106118e45760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b6044820152606401610a3a565b600e546001600160a01b03166379cc6790336118ff600b5490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506119683360016121ed565b610ef96001600955565b61197a611dd1565b6012805461ff0019169055565b600854849060ff161580156119aa57506daaeb6d7670e522a718067333cd4e3b15155b15611a6257336001600160a01b038216036119d0576119cb85858585612308565b611a6e565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a439190612be5565b611a6257604051633b79c77360e21b8152336004820152602401610a3a565b611a6e85858585612308565b5050505050565b6010546040516370a0823160e01b81526001600160a01b03838116600483015260009283928392909116906370a0823190602401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190612ca2565b600f54601154604051630d4a684960e41b815260048101919091526001600160a01b03878116602483015292945091169063d4a6849090604401600060405180830381865afa158015611b41573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b699190810190612cbb565b519050611b768183612c71565b949350505050565b6040805160808082018352600080835260208084018290528385018290526060808501839052855193840186528284529083018290529382018190529281018390529091506000548310611bd25792915050565b611bdb83612207565b9050806040015115611bed5792915050565b6115088361234c565b6060611c0182611d0a565b611c1e57604051630a14c4b560e41b815260040160405180910390fd5b6000611c28612381565b90508051600003611c485760405180602001604052806000815250611508565b80611c5284612390565b604051602001611c63929190612d61565b6040516020818303038152906040529392505050565b611c81611dd1565b6012805462ff0000191662010000179055565b611c9c611dd1565b6001600160a01b038116611d015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3a565b610bdc8161217b565b6000805482108015610896575050600090815260046020526040902054600160e01b161590565b6000611d3c82610e80565b9050336001600160a01b03821614611d7557611d5881336107cf565b611d75576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6008546001600160a01b03610100909104163314610ef95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a3a565b6000611e3c82612114565b9050836001600160a01b0316816001600160a01b031614611e6f5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054611e9b8187335b6001600160a01b039081169116811491141790565b611ec657611ea986336107cf565b611ec657604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516611eed57604051633a954ecd60e21b815260040160405180910390fd5b8015611ef857600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611f8a57600184016000818152600460205260408120549003611f88576000548114611f885760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b0316600080516020612e0a83398151915260405160405180910390a4505050505050565b610a4d83838360405180602001604052806000815250611987565b6000611fe783612114565b90508060008061200586600090815260066020526040902080549091565b9150915084156120455761201a818433611e86565b6120455761202883336107cf565b61204557604051632ce44b5f60e11b815260040160405180910390fd5b801561205057600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260046020526040812091909155600160e11b851690036120de576001860160008181526004602052604081205490036120dc5760005481146120dc5760008181526004602052604090208590555b505b60405186906000906001600160a01b03861690600080516020612e0a833981519152908390a45050600180548101905550505050565b6000816000548110156121625760008181526004602052604081205490600160e01b82169003612160575b8060000361150857506000190160008181526004602052604090205461213f565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006115088284612c71565b60006115088284612d90565b6116f98282604051806020016040528060008152506123d4565b6040805160808101825260008082526020820181905291810182905260608101919091526000828152600460205260409020546108969061243a565b6002600954036122955760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a3a565b6002600955565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612313848484610a7c565b6001600160a01b0383163b15610b615761232f84848484612482565b610b61576040516368d2bf6b60e11b815260040160405180910390fd5b60408051608081018252600080825260208201819052918101829052606081019190915261089661237c83612114565b61243a565b6060601380546108ab90612bab565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806123aa5750819003601f19909101908152919050565b6123de838361256d565b6001600160a01b0383163b15610a4d576000548281035b6124086000868380600101945086612482565b612425576040516368d2bf6b60e11b815260040160405180910390fd5b8181106123f5578160005414611a6e57600080fd5b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906124b7903390899088908890600401612daf565b6020604051808303816000875af19250505080156124f2575060408051601f3d908101601f191682019092526124ef91810190612dec565b60015b612550573d808015612520576040519150601f19603f3d011682016040523d82523d6000602084013e612525565b606091505b508051600003612548576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008054908290036125925760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020612e0a8339815191528180a4600183015b81811461261d5780836000600080516020612e0a833981519152600080a46001016125f7565b508160000361263e57604051622e076360e81b815260040160405180910390fd5b60005550505050565b82805461265390612bab565b90600052602060002090601f01602090048101928261267557600085556126bb565b82601f1061268e5782800160ff198235161785556126bb565b828001600101855582156126bb579182015b828111156126bb5782358255916020019190600101906126a0565b506126c79291506126cb565b5090565b5b808211156126c757600081556001016126cc565b6001600160e01b031981168114610bdc57600080fd5b60006020828403121561270857600080fd5b8135611508816126e0565b60005b8381101561272e578181015183820152602001612716565b83811115610b615750506000910152565b60008151808452612757816020860160208601612713565b601f01601f19169290920160200192915050565b602081526000611508602083018461273f565b60006020828403121561279057600080fd5b5035919050565b80356001600160a01b03811681146127ae57600080fd5b919050565b600080604083850312156127c657600080fd5b6127cf83612797565b946020939093013593505050565b6000602082840312156127ef57600080fd5b61150882612797565b60008060006060848603121561280d57600080fd5b61281684612797565b925061282460208501612797565b9150604084013590509250925092565b6000806020838503121561284757600080fd5b823567ffffffffffffffff8082111561285f57600080fd5b818501915085601f83011261287357600080fd5b81358181111561288257600080fd5b86602082850101111561289457600080fd5b60209290920196919550909350505050565b60008083601f8401126128b857600080fd5b50813567ffffffffffffffff8111156128d057600080fd5b6020830191508360208260051b85010111156128eb57600080fd5b9250929050565b6000806020838503121561290557600080fd5b823567ffffffffffffffff81111561291c57600080fd5b612928858286016128a6565b90969095509350505050565b80516001600160a01b0316825260208082015167ffffffffffffffff169083015260408082015115159083015260609081015162ffffff16910152565b6020808252825182820181905260009190848201906040850190845b81811015611217576129a0838551612934565b928401926080929092019160010161298d565b6020808252825182820181905260009190848201906040850190845b81811015611217578351835292840192918401916001016129cf565b600080600060608486031215612a0057600080fd5b612a0984612797565b95602085013595506040909401359392505050565b8015158114610bdc57600080fd5b60008060408385031215612a3f57600080fd5b612a4883612797565b91506020830135612a5881612a1e565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612aa257612aa2612a63565b604052919050565b60008060008060808587031215612ac057600080fd5b612ac985612797565b93506020612ad8818701612797565b935060408601359250606086013567ffffffffffffffff80821115612afc57600080fd5b818801915088601f830112612b1057600080fd5b813581811115612b2257612b22612a63565b612b34601f8201601f19168501612a79565b91508082528984828501011115612b4a57600080fd5b808484018584013760008482840101525080935050505092959194509250565b608081016108968284612934565b60008060408385031215612b8b57600080fd5b612b9483612797565b9150612ba260208401612797565b90509250929050565b600181811c90821680612bbf57607f821691505b602082108103612bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612bf757600080fd5b815161150881612a1e565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f45746865722076616c75652073656e742069732062656c6f772074686520707260408201526269636560e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612c8457612c84612c5b565b500190565b600060018201612c9b57612c9b612c5b565b5060010190565b600060208284031215612cb457600080fd5b5051919050565b60006020808385031215612cce57600080fd5b825167ffffffffffffffff80821115612ce657600080fd5b818501915085601f830112612cfa57600080fd5b815181811115612d0c57612d0c612a63565b8060051b9150612d1d848301612a79565b8181529183018401918481019088841115612d3757600080fd5b938501935b83851015612d5557845182529385019390850190612d3c565b98975050505050505050565b60008351612d73818460208801612713565b835190830190612d87818360208801612713565b01949350505050565b6000816000190483118215151615612daa57612daa612c5b565b500290565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612de29083018461273f565b9695505050505050565b600060208284031215612dfe57600080fd5b8151611508816126e056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220eb50f441ec121bb77194a88d34c15a6e0b353f356652e0094dc1b50aaa26f01464736f6c634300080d0033697066733a2f2f516d56694666514341596d4a75704c623776656b4d57627a6e3264756b47454d3862757a3575787a7263507a506a2f