0x608060405234801561001057600080fd5b50600436106102065760003560e01c806379ba50971161011a578063be203094116100ad578063db7954fd1161007c578063db7954fd14610537578063e30c39781461054a578063efc75f241461055b578063f2fde38b1461057c578063f7c618c11461058f57600080fd5b8063be203094146104e7578063be26317e146104fa578063bea6b8b814610503578063ca37271b1461052457600080fd5b80638c37dfa3116100e95780638c37dfa31461045b5780638da5cb5b1461046e57806392a1823514610493578063b4a0bdf3146104d657600080fd5b806379ba50971461040d5780637c05a7c51461041557806380d45a2d14610435578063856e5e6c1461044857600080fd5b80632eed69061161019d5780636d0493291161016c5780636d049329146103935780636dfd08ca146103a6578063715018a6146103d2578063741b2525146103da57806374c4c1cc146103ed57600080fd5b80632eed69061461033c57806342cbb15c1461034f578063552c0971146103555780636a95ddef1461038057600080fd5b80631627ee89116101d95780631627ee891461027857806323526079146102a65780632a869a4d146102b95780632c427b57146102cc57600080fd5b806304caeb101461020b5780630a3a3a9e146102205780630e32cb8614610233578063160c3a0314610246575b600080fd5b61021e610219366004612660565b6105a3565b005b61021e61022e3660046126b0565b610786565b61021e6102413660046126b0565b6107bd565b61025b6a0c097ce7bc90715b34b9f160241b81565b6040516001600160e01b0390911681526020015b60405180910390f35b6102986102863660046126b0565b60fd6020526000908152604090205481565b60405190815260200161026f565b61021e6102b436600461270f565b6107ce565b61021e6102c73660046126b0565b610807565b6103106102da3660046126b0565b61010060205260009081526040902080546001909101546001600160e01b0382169163ffffffff600160e01b9091048116911683565b604080516001600160e01b03909416845263ffffffff928316602085015291169082015260600161026f565b61021e61034a366004612745565b610961565b43610298565b610298610363366004612771565b60fc60209081526000928352604080842090915290825290205481565b61021e61038e3660046127aa565b610a0f565b61021e6103a1366004612745565b610a4a565b6102986103b4366004612771565b61010360209081526000928352604080842090915290825290205481565b61021e610b01565b61021e6103e83660046126b0565b610b15565b6102986103fb3660046126b0565b60ff6020526000908152604090205481565b61021e610c02565b6102986104233660046126b0565b60fe6020526000908152604090205481565b61021e6104433660046127f2565b610c79565b61021e610456366004612857565b610c8a565b61021e61046936600461294c565b610dc6565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161026f565b6103106104a13660046126b0565b60fb60205260009081526040902080546001909101546001600160e01b0382169163ffffffff600160e01b9091048116911683565b6097546001600160a01b031661047b565b61021e6104f53660046129d4565b610ebd565b61029860c95481565b6102986105113660046126b0565b6101026020526000908152604090205481565b61021e6105323660046126b0565b611015565b61021e610545366004612771565b611095565b6065546001600160a01b031661047b565b6102986105693660046126b0565b6101016020526000908152604090205481565b61021e61058a3660046126b0565b6110ca565b6101055461047b906001600160a01b031681565b80516105ae8161113b565b60005b818110156107405760008382815181106105cd576105cd612a27565b602090810291909101015161010454604051633d98a1e560e01b81526001600160a01b038084166004830152929350911690633d98a1e590602401602060405180830381865afa158015610625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106499190612a3d565b6106925760405162461bcd60e51b81526020600482015260156024820152741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b60448201526064015b60405180910390fd5b60006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190612a5f565b9052905061070f828261116c565b61071a828783611394565b61072382611523565b61072d8287611706565b50508061073990612a8e565b90506105b1565b506001600160a01b038316600090815260fd60205260409020546107659084906118ab565b6001600160a01b03909316600090815260fd60205260409020929092555050565b610104546001600160a01b031633146107b15760405162461bcd60e51b815260040161068990612aa7565b6107ba81611523565b50565b6107c5611961565b6107ba816119bb565b610104546001600160a01b031633146107f95760405162461bcd60e51b815260040161068990612aa7565b610803828261116c565b5050565b610104546001600160a01b031633146108325760405162461bcd60e51b815260040161068990612aa7565b6000610874435b6040518060400160405280601c81526020017f626c6f636b206e756d6265722065786365656473203332206269747300000000815250611a81565b6001600160a01b038316600090815260fb6020908152604080832061010090925282208154939450909290916001600160e01b0390911690036108d05781546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1782555b80546001600160e01b03166000036109015780546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1781555b805463ffffffff8416600160e01b026001600160e01b039182168117835583549091161782556040516001600160a01b038516907ffe6944646a362be70b0925ea999b3d9f755589a63ffcd89e4fb2b0affd252c7190600090a250505050565b610969611961565b61097282610b15565b80600003610999576001600160a01b038216600090815261010260205260408120556109b5565b436001600160a01b038316600090815261010260205260409020555b6001600160a01b0382166000818152610101602052604090819020839055517f4882c0217331870166b5d239c9f7be7801bab4be26560cd2f8789145d0fd3af490610a039084815260200190565b60405180910390a25050565b610104546001600160a01b03163314610a3a5760405162461bcd60e51b815260040161068990612aa7565b610a45838383611394565b505050565b610a52611961565b6000610a5e83836118ab565b90508015610ab95760405162461bcd60e51b815260206004820152602260248201527f696e73756666696369656e7420726577617264546f6b656e20666f72206772616044820152611b9d60f21b6064820152608401610689565b826001600160a01b03167f251909abf904fc80eac3f0d4c25e5c800441ea19fda63c6f0df08e4f24f926f983604051610af491815260200190565b60405180910390a2505050565b610b09611961565b610b136000611ab1565b565b6001600160a01b0381166000908152610101602090815260408083205461010290925282205490914391610b4a908390611aca565b9050600081118015610b5c5750600083115b15610bfc576000610b6d8285611add565b6001600160a01b038616600090815260fd602052604081205491925090610b949083611ae9565b6001600160a01b038716600081815260fd602081815260408084208681556101028352938190208a90559181529154905190815292935090917f38fe05baf9dc12e4e3bfda3daba26419e9930bf26ee6227f407ca46f8c9c29bc91015b60405180910390a250505b50505050565b60655433906001600160a01b03168114610c705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610689565b6107ba81611ab1565b610c81611961565b6107ba81611af5565b610cab604051806060016040528060328152602001612de560329139611b8f565b848381148015610cba57508082145b610d2c5760405162461bcd60e51b815260206004820152603860248201527f526577617264734469737472696275746f723a3a7365744c617374526577617260448201527f64696e67426c6f636b7320696e76616c696420696e70757400000000000000006064820152608401610689565b60005b81811015610dbc57610db4888883818110610d4c57610d4c612a27565b9050602002016020810190610d6191906126b0565b878784818110610d7357610d73612a27565b9050602002016020810190610d889190612aee565b868685818110610d9a57610d9a612a27565b9050602002016020810190610daf9190612aee565b611c29565b600101610d2f565b5050505050505050565b610de7604051806060016040528060338152602001612e1760339139611b8f565b8251825181148015610df95750815181145b610e455760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420736574526577617264546f6b656e537065656473000000006044820152606401610689565b60005b81811015610eb657610ea6858281518110610e6557610e65612a27565b6020026020010151858381518110610e7f57610e7f612a27565b6020026020010151858481518110610e9957610e99612a27565b6020026020010151611ebf565b610eaf81612a8e565b9050610e48565b5050505050565b600054610100900460ff1615808015610edd5750600054600160ff909116105b80610ef75750303b158015610ef7575060005460ff166001145b610f5a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610689565b6000805460ff191660011790558015610f7d576000805461ff0019166101001790555b61010480546001600160a01b038088166001600160a01b031992831617909255610105805492871692909116919091179055610fb76120ef565b610fc08261211e565b610fc983611af5565b8015610eb6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6107ba8161010460009054906101000a90046001600160a01b03166001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102199190810190612b14565b610104546001600160a01b031633146110c05760405162461bcd60e51b815260040161068990612aa7565b6108038282611706565b6110d2611961565b606580546001600160a01b0383166001600160a01b031990911681179091556111036033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9548111156107ba5760c95460405163792bfb1b60e11b8152600481019190915260248101829052604401610689565b6001600160a01b03821660009081526101006020908152604080832060fe909252822054909161119b43610839565b600184015490915063ffffffff16158015906111c45750600183015463ffffffff908116908216115b156111d65750600182015463ffffffff165b82546000906111f59063ffffffff80851691600160e01b900416611aca565b90506000811180156112075750600083115b15611336576000611279876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612a5f565b87612145565b905060006112878386611add565b905060008083116112a757604051806020016040528060008152506112b1565b6112b18284612163565b604080516020810190915288546001600160e01b03168152909150611314906112da90836121a7565b5160408051808201909152601a81527f6e657720696e646578206578636565647320323234206269747300000000000060208201526121d3565b6001600160e01b0316600160e01b63ffffffff87160217875550611358915050565b80156113585783546001600160e01b0316600160e01b63ffffffff8416021784555b856001600160a01b03167fbfeed4eb85c013b0e466fdfdbaa785159ff7986078247dc95f1c717a5bd6bca286604051610bf19151815260200190565b6001600160a01b038381166000908152610100602090815260408083208054610103845282852095881685529490925290912080546001600160e01b03909316908190559091801580156113f657506a0c097ce7bc90715b34b9f160241b8210155b1561140c57506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806114238585611aca565b90526040516395dd919360e01b81526001600160a01b03888116600483015291925060009161147691908a16906395dd919390602401602060405180830381865afa15801561124f573d6000803e3d6000fd5b90508015610dbc57600061148a82846121fe565b6001600160a01b038916600090815260fd6020526040812054919250906114b19083611ae9565b6001600160a01b038a8116600081815260fd602090815260409182902085905581518781529081018590529081018a905292935091908c16907f510d7612da9ca257889eabdfbe0366aaea10020be46f7810f4afb2111d80aa939060600160405180910390a350505050505050505050565b6001600160a01b038116600090815260fb6020908152604080832060ff909252822054909161155143610839565b600184015490915063ffffffff161580159061157a5750600183015463ffffffff908116908216115b1561158c5750600182015463ffffffff165b82546000906115ab9063ffffffff80851691600160e01b900416611aca565b90506000811180156115bd5750600083115b156116a9576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612a5f565b905060006116348386611add565b90506000808311611654576040518060200160405280600081525061165e565b61165e8284612163565b604080516020810190915288546001600160e01b03168152909150611687906112da90836121a7565b6001600160e01b0316600160e01b63ffffffff871602178755506116cb915050565b80156116cb5783546001600160e01b0316600160e01b63ffffffff8416021784555b6040516001600160a01b038616907f6a7b996800070d8bc0f9a3ddcb0a4b09bc1653f76381d745444956366afd423a90600090a25050505050565b6001600160a01b03828116600090815260fb60209081526040808320805460fc845282852095871685529490925290912080546001600160e01b039093169081905590918015801561176657506a0c097ce7bc90715b34b9f160241b8210155b1561177c57506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806117938585611aca565b90526040516370a0823160e01b81526001600160a01b0387811660048301529192506000918816906370a0823190602401602060405180830381865afa1580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118059190612a5f565b9050600061181382846121fe565b6001600160a01b038816600090815260fd60205260408120549192509061183a9083611ae9565b6001600160a01b03898116600081815260fd602090815260409182902085905581518781529081018590529081018a905292935091908b16907f9563ff6035b973f2e4514ad9315010c220eb74b0c33a782a18118a199a97e4429060600160405180910390a3505050505050505050565b610105546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612a5f565b905060008311801561192f5750808311155b15611956576101055461194c906001600160a01b03168585612227565b600091505061195b565b829150505b92915050565b6033546001600160a01b03163314610b135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610689565b6001600160a01b038116611a1f5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610689565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091015b60405180910390a15050565b60008163ffffffff841115611aa95760405162461bcd60e51b81526004016106899190612bfb565b509192915050565b606580546001600160a01b03191690556107ba81612279565b6000611ad68284612c0e565b9392505050565b6000611ad68284612c25565b6000611ad68284612c44565b60c9548111611b515760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610689565b60c980549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101611a75565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90611bc29033908690600401612c5c565b602060405180830381865afa158015611bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c039190612a3d565b90508061080357333083604051634a3fa29360e01b815260040161068993929190612c80565b61010454604051633d98a1e560e01b81526001600160a01b03858116600483015290911690633d98a1e590602401602060405180830381865afa158015611c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c989190612a3d565b611ce45760405162461bcd60e51b815260206004820181905260248201527f726577617264546f6b656e206d61726b6574206973206e6f74206c69737465646044820152606401610689565b4363ffffffff83168110611d0a5760405162461bcd60e51b815260040161068990612cb5565b808263ffffffff1611611d2f5760405162461bcd60e51b815260040161068990612cb5565b6001600160a01b038416600090815260fb6020908152604080832060019081015461010090935292209091015463ffffffff9182169116811580611d785750828263ffffffff16115b611d945760405162461bcd60e51b815260040161068990612d12565b63ffffffff81161580611dac5750828163ffffffff16115b611dc85760405162461bcd60e51b815260040161068990612d12565b8463ffffffff168263ffffffff1614611e41576001600160a01b038616600081815260fb6020908152604091829020600101805463ffffffff191663ffffffff8a1690811790915591519182527f41b697bf2627e0a03f253382759baaab2469897004cc619465a3d8f4bb6b3fec910160405180910390a25b8363ffffffff168163ffffffff1614611eb7576001600160a01b03861660008181526101006020908152604091829020600101805463ffffffff191663ffffffff891690811790915591519182527f4163eb203170b7facecc8d7307e3f8affa8826d4df30fc722f8f8ce17988eb919101610bf1565b505050505050565b61010454604051633d98a1e560e01b81526001600160a01b03858116600483015290911690633d98a1e590602401602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190612a3d565b611f7a5760405162461bcd60e51b815260206004820181905260248201527f726577617264546f6b656e206d61726b6574206973206e6f74206c69737465646044820152606401610689565b6001600160a01b038316600090815260ff60205260409020548214611ff857611fa283611523565b6001600160a01b038316600081815260ff602052604090819020849055517f24741480445e83baea9eb28086e16a4377ebb4f003c773e386496fd90b3ed04e90611fef9085815260200190565b60405180910390a25b6001600160a01b038316600090815260fe60205260409020548114610a455760006040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120869190612a5f565b90529050612094848261116c565b6001600160a01b038416600081815260fe602052604090819020849055517f2091432bbf4aa40f4785b469e931d32c5f5c6ba66dcf702a99cbe776df729c3c906120e19085815260200190565b60405180910390a250505050565b600054610100900460ff166121165760405162461bcd60e51b815260040161068990612d5b565b610b136122cb565b600054610100900460ff166107c55760405162461bcd60e51b815260040161068990612d5b565b6000611ad661215c84670de0b6b3a7640000611add565b83516122fb565b604080516020810190915260008152604051806020016040528061219e612198866a0c097ce7bc90715b34b9f160241b611add565b856122fb565b90529392505050565b604080516020810190915260008152604051806020016040528061219e85600001518560000151611ae9565b6000816001600160e01b03841115611aa95760405162461bcd60e51b81526004016106899190612bfb565b60006a0c097ce7bc90715b34b9f160241b61221d848460000151611add565b611ad69190612da6565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a45908490612307565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166122f25760405162461bcd60e51b815260040161068990612d5b565b610b1333611ab1565b6000611ad68284612da6565b600061235c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123dc9092919063ffffffff16565b905080516000148061237d57508080602001905181019061237d9190612a3d565b610a455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610689565b60606123eb84846000856123f3565b949350505050565b6060824710156124545760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610689565b600080866001600160a01b031685876040516124709190612dc8565b60006040518083038185875af1925050503d80600081146124ad576040519150601f19603f3d011682016040523d82523d6000602084013e6124b2565b606091505b50915091506124c3878383876124ce565b979650505050505050565b6060831561253d578251600003612536576001600160a01b0385163b6125365760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610689565b50816123eb565b6123eb83838151156125525781518083602001fd5b8060405162461bcd60e51b81526004016106899190612bfb565b6001600160a01b03811681146107ba57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125c0576125c0612581565b604052919050565b600067ffffffffffffffff8211156125e2576125e2612581565b5060051b60200190565b600082601f8301126125fd57600080fd5b8135602061261261260d836125c8565b612597565b82815260059290921b8401810191818101908684111561263157600080fd5b8286015b848110156126555780356126488161256c565b8352918301918301612635565b509695505050505050565b6000806040838503121561267357600080fd5b823561267e8161256c565b9150602083013567ffffffffffffffff81111561269a57600080fd5b6126a6858286016125ec565b9150509250929050565b6000602082840312156126c257600080fd5b8135611ad68161256c565b6000602082840312156126df57600080fd5b6040516020810181811067ffffffffffffffff8211171561270257612702612581565b6040529135825250919050565b6000806040838503121561272257600080fd5b823561272d8161256c565b915061273c84602085016126cd565b90509250929050565b6000806040838503121561275857600080fd5b82356127638161256c565b946020939093013593505050565b6000806040838503121561278457600080fd5b823561278f8161256c565b9150602083013561279f8161256c565b809150509250929050565b6000806000606084860312156127bf57600080fd5b83356127ca8161256c565b925060208401356127da8161256c565b91506127e985604086016126cd565b90509250925092565b60006020828403121561280457600080fd5b5035919050565b60008083601f84011261281d57600080fd5b50813567ffffffffffffffff81111561283557600080fd5b6020830191508360208260051b850101111561285057600080fd5b9250929050565b6000806000806000806060878903121561287057600080fd5b863567ffffffffffffffff8082111561288857600080fd5b6128948a838b0161280b565b909850965060208901359150808211156128ad57600080fd5b6128b98a838b0161280b565b909650945060408901359150808211156128d257600080fd5b506128df89828a0161280b565b979a9699509497509295939492505050565b600082601f83011261290257600080fd5b8135602061291261260d836125c8565b82815260059290921b8401810191818101908684111561293157600080fd5b8286015b848110156126555780358352918301918301612935565b60008060006060848603121561296157600080fd5b833567ffffffffffffffff8082111561297957600080fd5b612985878388016125ec565b9450602086013591508082111561299b57600080fd5b6129a7878388016128f1565b935060408601359150808211156129bd57600080fd5b506129ca868287016128f1565b9150509250925092565b600080600080608085870312156129ea57600080fd5b84356129f58161256c565b93506020850135612a058161256c565b9250604085013591506060850135612a1c8161256c565b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a4f57600080fd5b81518015158114611ad657600080fd5b600060208284031215612a7157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600060018201612aa057612aa0612a78565b5060010190565b60208082526027908201527f4f6e6c7920636f6d7074726f6c6c65722063616e2063616c6c207468697320666040820152663ab731ba34b7b760c91b606082015260800190565b600060208284031215612b0057600080fd5b813563ffffffff81168114611ad657600080fd5b60006020808385031215612b2757600080fd5b825167ffffffffffffffff811115612b3e57600080fd5b8301601f81018513612b4f57600080fd5b8051612b5d61260d826125c8565b81815260059190911b82018301908381019087831115612b7c57600080fd5b928401925b828410156124c3578351612b948161256c565b82529284019290840190612b81565b60005b83811015612bbe578181015183820152602001612ba6565b83811115610bfc5750506000910152565b60008151808452612be7816020860160208601612ba3565b601f01601f19169290920160200192915050565b602081526000611ad66020830184612bcf565b600082821015612c2057612c20612a78565b500390565b6000816000190483118215151615612c3f57612c3f612a78565b500290565b60008219821115612c5757612c57612a78565b500190565b6001600160a01b03831681526040602082018190526000906123eb90830184612bcf565b6001600160a01b03848116825283166020820152606060408201819052600090612cac90830184612bcf565b95945050505050565b60208082526037908201527f73657474696e67206c61737420726577617264696e6720626c6f636b20696e2060408201527f7468652070617374206973206e6f7420616c6c6f776564000000000000000000606082015260800190565b60208082526029908201527f7468697320526577617264734469737472696275746f7220697320616c726561604082015268191e481b1bd8dad95960ba1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082612dc357634e487b7160e01b600052601260045260246000fd5b500490565b60008251612dda818460208701612ba3565b919091019291505056fe7365744c617374526577617264696e67426c6f636b28616464726573735b5d2c75696e7433325b5d2c75696e7433325b5d29736574526577617264546f6b656e53706565647328616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d29a2646970667358221220a2eba4639d6e4a6353dfdadb8869acb1115ae22ab8a9f2e0341b7e2c63ca385a64736f6c634300080d0033
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612e7f80620000f36000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806379ba50971161011a578063be203094116100ad578063db7954fd1161007c578063db7954fd14610537578063e30c39781461054a578063efc75f241461055b578063f2fde38b1461057c578063f7c618c11461058f57600080fd5b8063be203094146104e7578063be26317e146104fa578063bea6b8b814610503578063ca37271b1461052457600080fd5b80638c37dfa3116100e95780638c37dfa31461045b5780638da5cb5b1461046e57806392a1823514610493578063b4a0bdf3146104d657600080fd5b806379ba50971461040d5780637c05a7c51461041557806380d45a2d14610435578063856e5e6c1461044857600080fd5b80632eed69061161019d5780636d0493291161016c5780636d049329146103935780636dfd08ca146103a6578063715018a6146103d2578063741b2525146103da57806374c4c1cc146103ed57600080fd5b80632eed69061461033c57806342cbb15c1461034f578063552c0971146103555780636a95ddef1461038057600080fd5b80631627ee89116101d95780631627ee891461027857806323526079146102a65780632a869a4d146102b95780632c427b57146102cc57600080fd5b806304caeb101461020b5780630a3a3a9e146102205780630e32cb8614610233578063160c3a0314610246575b600080fd5b61021e610219366004612660565b6105a3565b005b61021e61022e3660046126b0565b610786565b61021e6102413660046126b0565b6107bd565b61025b6a0c097ce7bc90715b34b9f160241b81565b6040516001600160e01b0390911681526020015b60405180910390f35b6102986102863660046126b0565b60fd6020526000908152604090205481565b60405190815260200161026f565b61021e6102b436600461270f565b6107ce565b61021e6102c73660046126b0565b610807565b6103106102da3660046126b0565b61010060205260009081526040902080546001909101546001600160e01b0382169163ffffffff600160e01b9091048116911683565b604080516001600160e01b03909416845263ffffffff928316602085015291169082015260600161026f565b61021e61034a366004612745565b610961565b43610298565b610298610363366004612771565b60fc60209081526000928352604080842090915290825290205481565b61021e61038e3660046127aa565b610a0f565b61021e6103a1366004612745565b610a4a565b6102986103b4366004612771565b61010360209081526000928352604080842090915290825290205481565b61021e610b01565b61021e6103e83660046126b0565b610b15565b6102986103fb3660046126b0565b60ff6020526000908152604090205481565b61021e610c02565b6102986104233660046126b0565b60fe6020526000908152604090205481565b61021e6104433660046127f2565b610c79565b61021e610456366004612857565b610c8a565b61021e61046936600461294c565b610dc6565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161026f565b6103106104a13660046126b0565b60fb60205260009081526040902080546001909101546001600160e01b0382169163ffffffff600160e01b9091048116911683565b6097546001600160a01b031661047b565b61021e6104f53660046129d4565b610ebd565b61029860c95481565b6102986105113660046126b0565b6101026020526000908152604090205481565b61021e6105323660046126b0565b611015565b61021e610545366004612771565b611095565b6065546001600160a01b031661047b565b6102986105693660046126b0565b6101016020526000908152604090205481565b61021e61058a3660046126b0565b6110ca565b6101055461047b906001600160a01b031681565b80516105ae8161113b565b60005b818110156107405760008382815181106105cd576105cd612a27565b602090810291909101015161010454604051633d98a1e560e01b81526001600160a01b038084166004830152929350911690633d98a1e590602401602060405180830381865afa158015610625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106499190612a3d565b6106925760405162461bcd60e51b81526020600482015260156024820152741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b60448201526064015b60405180910390fd5b60006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190612a5f565b9052905061070f828261116c565b61071a828783611394565b61072382611523565b61072d8287611706565b50508061073990612a8e565b90506105b1565b506001600160a01b038316600090815260fd60205260409020546107659084906118ab565b6001600160a01b03909316600090815260fd60205260409020929092555050565b610104546001600160a01b031633146107b15760405162461bcd60e51b815260040161068990612aa7565b6107ba81611523565b50565b6107c5611961565b6107ba816119bb565b610104546001600160a01b031633146107f95760405162461bcd60e51b815260040161068990612aa7565b610803828261116c565b5050565b610104546001600160a01b031633146108325760405162461bcd60e51b815260040161068990612aa7565b6000610874435b6040518060400160405280601c81526020017f626c6f636b206e756d6265722065786365656473203332206269747300000000815250611a81565b6001600160a01b038316600090815260fb6020908152604080832061010090925282208154939450909290916001600160e01b0390911690036108d05781546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1782555b80546001600160e01b03166000036109015780546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1781555b805463ffffffff8416600160e01b026001600160e01b039182168117835583549091161782556040516001600160a01b038516907ffe6944646a362be70b0925ea999b3d9f755589a63ffcd89e4fb2b0affd252c7190600090a250505050565b610969611961565b61097282610b15565b80600003610999576001600160a01b038216600090815261010260205260408120556109b5565b436001600160a01b038316600090815261010260205260409020555b6001600160a01b0382166000818152610101602052604090819020839055517f4882c0217331870166b5d239c9f7be7801bab4be26560cd2f8789145d0fd3af490610a039084815260200190565b60405180910390a25050565b610104546001600160a01b03163314610a3a5760405162461bcd60e51b815260040161068990612aa7565b610a45838383611394565b505050565b610a52611961565b6000610a5e83836118ab565b90508015610ab95760405162461bcd60e51b815260206004820152602260248201527f696e73756666696369656e7420726577617264546f6b656e20666f72206772616044820152611b9d60f21b6064820152608401610689565b826001600160a01b03167f251909abf904fc80eac3f0d4c25e5c800441ea19fda63c6f0df08e4f24f926f983604051610af491815260200190565b60405180910390a2505050565b610b09611961565b610b136000611ab1565b565b6001600160a01b0381166000908152610101602090815260408083205461010290925282205490914391610b4a908390611aca565b9050600081118015610b5c5750600083115b15610bfc576000610b6d8285611add565b6001600160a01b038616600090815260fd602052604081205491925090610b949083611ae9565b6001600160a01b038716600081815260fd602081815260408084208681556101028352938190208a90559181529154905190815292935090917f38fe05baf9dc12e4e3bfda3daba26419e9930bf26ee6227f407ca46f8c9c29bc91015b60405180910390a250505b50505050565b60655433906001600160a01b03168114610c705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610689565b6107ba81611ab1565b610c81611961565b6107ba81611af5565b610cab604051806060016040528060328152602001612de560329139611b8f565b848381148015610cba57508082145b610d2c5760405162461bcd60e51b815260206004820152603860248201527f526577617264734469737472696275746f723a3a7365744c617374526577617260448201527f64696e67426c6f636b7320696e76616c696420696e70757400000000000000006064820152608401610689565b60005b81811015610dbc57610db4888883818110610d4c57610d4c612a27565b9050602002016020810190610d6191906126b0565b878784818110610d7357610d73612a27565b9050602002016020810190610d889190612aee565b868685818110610d9a57610d9a612a27565b9050602002016020810190610daf9190612aee565b611c29565b600101610d2f565b5050505050505050565b610de7604051806060016040528060338152602001612e1760339139611b8f565b8251825181148015610df95750815181145b610e455760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420736574526577617264546f6b656e537065656473000000006044820152606401610689565b60005b81811015610eb657610ea6858281518110610e6557610e65612a27565b6020026020010151858381518110610e7f57610e7f612a27565b6020026020010151858481518110610e9957610e99612a27565b6020026020010151611ebf565b610eaf81612a8e565b9050610e48565b5050505050565b600054610100900460ff1615808015610edd5750600054600160ff909116105b80610ef75750303b158015610ef7575060005460ff166001145b610f5a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610689565b6000805460ff191660011790558015610f7d576000805461ff0019166101001790555b61010480546001600160a01b038088166001600160a01b031992831617909255610105805492871692909116919091179055610fb76120ef565b610fc08261211e565b610fc983611af5565b8015610eb6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6107ba8161010460009054906101000a90046001600160a01b03166001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102199190810190612b14565b610104546001600160a01b031633146110c05760405162461bcd60e51b815260040161068990612aa7565b6108038282611706565b6110d2611961565b606580546001600160a01b0383166001600160a01b031990911681179091556111036033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9548111156107ba5760c95460405163792bfb1b60e11b8152600481019190915260248101829052604401610689565b6001600160a01b03821660009081526101006020908152604080832060fe909252822054909161119b43610839565b600184015490915063ffffffff16158015906111c45750600183015463ffffffff908116908216115b156111d65750600182015463ffffffff165b82546000906111f59063ffffffff80851691600160e01b900416611aca565b90506000811180156112075750600083115b15611336576000611279876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612a5f565b87612145565b905060006112878386611add565b905060008083116112a757604051806020016040528060008152506112b1565b6112b18284612163565b604080516020810190915288546001600160e01b03168152909150611314906112da90836121a7565b5160408051808201909152601a81527f6e657720696e646578206578636565647320323234206269747300000000000060208201526121d3565b6001600160e01b0316600160e01b63ffffffff87160217875550611358915050565b80156113585783546001600160e01b0316600160e01b63ffffffff8416021784555b856001600160a01b03167fbfeed4eb85c013b0e466fdfdbaa785159ff7986078247dc95f1c717a5bd6bca286604051610bf19151815260200190565b6001600160a01b038381166000908152610100602090815260408083208054610103845282852095881685529490925290912080546001600160e01b03909316908190559091801580156113f657506a0c097ce7bc90715b34b9f160241b8210155b1561140c57506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806114238585611aca565b90526040516395dd919360e01b81526001600160a01b03888116600483015291925060009161147691908a16906395dd919390602401602060405180830381865afa15801561124f573d6000803e3d6000fd5b90508015610dbc57600061148a82846121fe565b6001600160a01b038916600090815260fd6020526040812054919250906114b19083611ae9565b6001600160a01b038a8116600081815260fd602090815260409182902085905581518781529081018590529081018a905292935091908c16907f510d7612da9ca257889eabdfbe0366aaea10020be46f7810f4afb2111d80aa939060600160405180910390a350505050505050505050565b6001600160a01b038116600090815260fb6020908152604080832060ff909252822054909161155143610839565b600184015490915063ffffffff161580159061157a5750600183015463ffffffff908116908216115b1561158c5750600182015463ffffffff165b82546000906115ab9063ffffffff80851691600160e01b900416611aca565b90506000811180156115bd5750600083115b156116a9576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612a5f565b905060006116348386611add565b90506000808311611654576040518060200160405280600081525061165e565b61165e8284612163565b604080516020810190915288546001600160e01b03168152909150611687906112da90836121a7565b6001600160e01b0316600160e01b63ffffffff871602178755506116cb915050565b80156116cb5783546001600160e01b0316600160e01b63ffffffff8416021784555b6040516001600160a01b038616907f6a7b996800070d8bc0f9a3ddcb0a4b09bc1653f76381d745444956366afd423a90600090a25050505050565b6001600160a01b03828116600090815260fb60209081526040808320805460fc845282852095871685529490925290912080546001600160e01b039093169081905590918015801561176657506a0c097ce7bc90715b34b9f160241b8210155b1561177c57506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806117938585611aca565b90526040516370a0823160e01b81526001600160a01b0387811660048301529192506000918816906370a0823190602401602060405180830381865afa1580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118059190612a5f565b9050600061181382846121fe565b6001600160a01b038816600090815260fd60205260408120549192509061183a9083611ae9565b6001600160a01b03898116600081815260fd602090815260409182902085905581518781529081018590529081018a905292935091908b16907f9563ff6035b973f2e4514ad9315010c220eb74b0c33a782a18118a199a97e4429060600160405180910390a3505050505050505050565b610105546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612a5f565b905060008311801561192f5750808311155b15611956576101055461194c906001600160a01b03168585612227565b600091505061195b565b829150505b92915050565b6033546001600160a01b03163314610b135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610689565b6001600160a01b038116611a1f5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610689565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091015b60405180910390a15050565b60008163ffffffff841115611aa95760405162461bcd60e51b81526004016106899190612bfb565b509192915050565b606580546001600160a01b03191690556107ba81612279565b6000611ad68284612c0e565b9392505050565b6000611ad68284612c25565b6000611ad68284612c44565b60c9548111611b515760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610689565b60c980549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101611a75565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90611bc29033908690600401612c5c565b602060405180830381865afa158015611bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c039190612a3d565b90508061080357333083604051634a3fa29360e01b815260040161068993929190612c80565b61010454604051633d98a1e560e01b81526001600160a01b03858116600483015290911690633d98a1e590602401602060405180830381865afa158015611c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c989190612a3d565b611ce45760405162461bcd60e51b815260206004820181905260248201527f726577617264546f6b656e206d61726b6574206973206e6f74206c69737465646044820152606401610689565b4363ffffffff83168110611d0a5760405162461bcd60e51b815260040161068990612cb5565b808263ffffffff1611611d2f5760405162461bcd60e51b815260040161068990612cb5565b6001600160a01b038416600090815260fb6020908152604080832060019081015461010090935292209091015463ffffffff9182169116811580611d785750828263ffffffff16115b611d945760405162461bcd60e51b815260040161068990612d12565b63ffffffff81161580611dac5750828163ffffffff16115b611dc85760405162461bcd60e51b815260040161068990612d12565b8463ffffffff168263ffffffff1614611e41576001600160a01b038616600081815260fb6020908152604091829020600101805463ffffffff191663ffffffff8a1690811790915591519182527f41b697bf2627e0a03f253382759baaab2469897004cc619465a3d8f4bb6b3fec910160405180910390a25b8363ffffffff168163ffffffff1614611eb7576001600160a01b03861660008181526101006020908152604091829020600101805463ffffffff191663ffffffff891690811790915591519182527f4163eb203170b7facecc8d7307e3f8affa8826d4df30fc722f8f8ce17988eb919101610bf1565b505050505050565b61010454604051633d98a1e560e01b81526001600160a01b03858116600483015290911690633d98a1e590602401602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190612a3d565b611f7a5760405162461bcd60e51b815260206004820181905260248201527f726577617264546f6b656e206d61726b6574206973206e6f74206c69737465646044820152606401610689565b6001600160a01b038316600090815260ff60205260409020548214611ff857611fa283611523565b6001600160a01b038316600081815260ff602052604090819020849055517f24741480445e83baea9eb28086e16a4377ebb4f003c773e386496fd90b3ed04e90611fef9085815260200190565b60405180910390a25b6001600160a01b038316600090815260fe60205260409020548114610a455760006040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120869190612a5f565b90529050612094848261116c565b6001600160a01b038416600081815260fe602052604090819020849055517f2091432bbf4aa40f4785b469e931d32c5f5c6ba66dcf702a99cbe776df729c3c906120e19085815260200190565b60405180910390a250505050565b600054610100900460ff166121165760405162461bcd60e51b815260040161068990612d5b565b610b136122cb565b600054610100900460ff166107c55760405162461bcd60e51b815260040161068990612d5b565b6000611ad661215c84670de0b6b3a7640000611add565b83516122fb565b604080516020810190915260008152604051806020016040528061219e612198866a0c097ce7bc90715b34b9f160241b611add565b856122fb565b90529392505050565b604080516020810190915260008152604051806020016040528061219e85600001518560000151611ae9565b6000816001600160e01b03841115611aa95760405162461bcd60e51b81526004016106899190612bfb565b60006a0c097ce7bc90715b34b9f160241b61221d848460000151611add565b611ad69190612da6565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a45908490612307565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166122f25760405162461bcd60e51b815260040161068990612d5b565b610b1333611ab1565b6000611ad68284612da6565b600061235c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123dc9092919063ffffffff16565b905080516000148061237d57508080602001905181019061237d9190612a3d565b610a455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610689565b60606123eb84846000856123f3565b949350505050565b6060824710156124545760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610689565b600080866001600160a01b031685876040516124709190612dc8565b60006040518083038185875af1925050503d80600081146124ad576040519150601f19603f3d011682016040523d82523d6000602084013e6124b2565b606091505b50915091506124c3878383876124ce565b979650505050505050565b6060831561253d578251600003612536576001600160a01b0385163b6125365760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610689565b50816123eb565b6123eb83838151156125525781518083602001fd5b8060405162461bcd60e51b81526004016106899190612bfb565b6001600160a01b03811681146107ba57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125c0576125c0612581565b604052919050565b600067ffffffffffffffff8211156125e2576125e2612581565b5060051b60200190565b600082601f8301126125fd57600080fd5b8135602061261261260d836125c8565b612597565b82815260059290921b8401810191818101908684111561263157600080fd5b8286015b848110156126555780356126488161256c565b8352918301918301612635565b509695505050505050565b6000806040838503121561267357600080fd5b823561267e8161256c565b9150602083013567ffffffffffffffff81111561269a57600080fd5b6126a6858286016125ec565b9150509250929050565b6000602082840312156126c257600080fd5b8135611ad68161256c565b6000602082840312156126df57600080fd5b6040516020810181811067ffffffffffffffff8211171561270257612702612581565b6040529135825250919050565b6000806040838503121561272257600080fd5b823561272d8161256c565b915061273c84602085016126cd565b90509250929050565b6000806040838503121561275857600080fd5b82356127638161256c565b946020939093013593505050565b6000806040838503121561278457600080fd5b823561278f8161256c565b9150602083013561279f8161256c565b809150509250929050565b6000806000606084860312156127bf57600080fd5b83356127ca8161256c565b925060208401356127da8161256c565b91506127e985604086016126cd565b90509250925092565b60006020828403121561280457600080fd5b5035919050565b60008083601f84011261281d57600080fd5b50813567ffffffffffffffff81111561283557600080fd5b6020830191508360208260051b850101111561285057600080fd5b9250929050565b6000806000806000806060878903121561287057600080fd5b863567ffffffffffffffff8082111561288857600080fd5b6128948a838b0161280b565b909850965060208901359150808211156128ad57600080fd5b6128b98a838b0161280b565b909650945060408901359150808211156128d257600080fd5b506128df89828a0161280b565b979a9699509497509295939492505050565b600082601f83011261290257600080fd5b8135602061291261260d836125c8565b82815260059290921b8401810191818101908684111561293157600080fd5b8286015b848110156126555780358352918301918301612935565b60008060006060848603121561296157600080fd5b833567ffffffffffffffff8082111561297957600080fd5b612985878388016125ec565b9450602086013591508082111561299b57600080fd5b6129a7878388016128f1565b935060408601359150808211156129bd57600080fd5b506129ca868287016128f1565b9150509250925092565b600080600080608085870312156129ea57600080fd5b84356129f58161256c565b93506020850135612a058161256c565b9250604085013591506060850135612a1c8161256c565b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a4f57600080fd5b81518015158114611ad657600080fd5b600060208284031215612a7157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600060018201612aa057612aa0612a78565b5060010190565b60208082526027908201527f4f6e6c7920636f6d7074726f6c6c65722063616e2063616c6c207468697320666040820152663ab731ba34b7b760c91b606082015260800190565b600060208284031215612b0057600080fd5b813563ffffffff81168114611ad657600080fd5b60006020808385031215612b2757600080fd5b825167ffffffffffffffff811115612b3e57600080fd5b8301601f81018513612b4f57600080fd5b8051612b5d61260d826125c8565b81815260059190911b82018301908381019087831115612b7c57600080fd5b928401925b828410156124c3578351612b948161256c565b82529284019290840190612b81565b60005b83811015612bbe578181015183820152602001612ba6565b83811115610bfc5750506000910152565b60008151808452612be7816020860160208601612ba3565b601f01601f19169290920160200192915050565b602081526000611ad66020830184612bcf565b600082821015612c2057612c20612a78565b500390565b6000816000190483118215151615612c3f57612c3f612a78565b500290565b60008219821115612c5757612c57612a78565b500190565b6001600160a01b03831681526040602082018190526000906123eb90830184612bcf565b6001600160a01b03848116825283166020820152606060408201819052600090612cac90830184612bcf565b95945050505050565b60208082526037908201527f73657474696e67206c61737420726577617264696e6720626c6f636b20696e2060408201527f7468652070617374206973206e6f7420616c6c6f776564000000000000000000606082015260800190565b60208082526029908201527f7468697320526577617264734469737472696275746f7220697320616c726561604082015268191e481b1bd8dad95960ba1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082612dc357634e487b7160e01b600052601260045260246000fd5b500490565b60008251612dda818460208701612ba3565b919091019291505056fe7365744c617374526577617264696e67426c6f636b28616464726573735b5d2c75696e7433325b5d2c75696e7433325b5d29736574526577617264546f6b656e53706565647328616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d29a2646970667358221220a2eba4639d6e4a6353dfdadb8869acb1115ae22ab8a9f2e0341b7e2c63ca385a64736f6c634300080d0033