0x60806040526004361061024a5760003560e01c80638089dbfd11610139578063c0a904a2116100b6578063dd62ed3e1161007a578063dd62ed3e14610725578063e626815814610745578063f0cd14f314610765578063f2fde38b14610785578063f3bf087e146107a5578063fd116019146107c557600080fd5b8063c0a904a214610678578063c18bc19514610698578063c26d7be0146106b8578063cc274b29146106e5578063dbc3a0ad1461070557600080fd5b8063966b53c4116100fd578063966b53c4146105e2578063a457c2d714610602578063a9059cbb14610622578063aa4bde2814610642578063c02466681461065857600080fd5b80638089dbfd1461054f5780638980f11f1461056f5780638da5cb5b1461058f5780638fffabed146105ad57806395d89b41146105cd57600080fd5b806342966c68116101c75780636a3e8f3d1161018b5780636a3e8f3d1461049457806370a08231146104b4578063715018a6146104ea57806376856557146104ff57806379cc67901461052f57600080fd5b806342966c68146103b757806347a81845146103d75780634fbee193146103f7578063502f7446146104275780635cce86cd1461046457600080fd5b806323b872dd1161020e57806323b872dd146103085780632d99d32e14610328578063313ce567146103485780633950935114610364578063408ccbdf1461038457600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102a157806318160ddd146102d157806320abdef1146102e657600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60065481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506102946107db565b60405161027691906124db565b3480156102ad57600080fd5b506102c16102bc366004612408565b61086d565b6040519015158152602001610276565b3480156102dd57600080fd5b5060025461026c565b3480156102f257600080fd5b50610306610301366004612451565b610885565b005b34801561031457600080fd5b506102c1610323366004612399565b610a3a565b34801561033457600080fd5b506103066103433660046123da565b610a5e565b34801561035457600080fd5b5060405160128152602001610276565b34801561037057600080fd5b506102c161037f366004612408565b610aee565b34801561039057600080fd5b506103a461039f366004612494565b610b10565b60405161ffff9091168152602001610276565b3480156103c357600080fd5b506103066103d2366004612494565b610b3e565b3480156103e357600080fd5b506103a46103f2366004612494565b610b4b565b34801561040357600080fd5b506102c161041236600461231f565b600d6020526000908152604090205460ff1681565b34801561043357600080fd5b50600f5461044c9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561047057600080fd5b506102c161047f36600461231f565b60126020526000908152604090205460ff1681565b3480156104a057600080fd5b506103066104af366004612494565b610b5b565b3480156104c057600080fd5b5061026c6104cf36600461231f565b6001600160a01b031660009081526020819052604090205490565b3480156104f657600080fd5b50610306610bfc565b34801561050b57600080fd5b506102c161051a36600461231f565b60116020526000908152604090205460ff1681565b34801561053b57600080fd5b5061030661054a366004612408565b610c10565b34801561055b57600080fd5b50600b5461044c906001600160a01b031681565b34801561057b57600080fd5b5061030661058a366004612408565b610c25565b34801561059b57600080fd5b506005546001600160a01b031661044c565b3480156105b957600080fd5b5060105461044c906001600160a01b031681565b3480156105d957600080fd5b50610294610d3c565b3480156105ee57600080fd5b506103a46105fd366004612494565b610d4b565b34801561060e57600080fd5b506102c161061d366004612408565b610d5b565b34801561062e57600080fd5b506102c161063d366004612408565b610dd6565b34801561064e57600080fd5b5061026c60135481565b34801561066457600080fd5b506103066106733660046123da565b610de4565b34801561068457600080fd5b506103066106933660046123da565b610e4c565b3480156106a457600080fd5b506103066106b3366004612494565b610eac565b3480156106c457600080fd5b5061026c6106d336600461231f565b60146020526000908152604090205481565b3480156106f157600080fd5b50610306610700366004612494565b610ee9565b34801561071157600080fd5b5061030661072036600461231f565b610f26565b34801561073157600080fd5b5061026c610740366004612360565b610f8d565b34801561075157600080fd5b50610306610760366004612451565b610fb8565b34801561077157600080fd5b5060095461044c906001600160a01b031681565b34801561079157600080fd5b506103066107a036600461231f565b61115b565b3480156107b157600080fd5b506103066107c036600461231f565b6111d1565b3480156107d157600080fd5b5061026c60155481565b6060600380546107ea9061268d565b80601f01602080910402602001604051908101604052809291908181526020018280546108169061268d565b80156108635780601f1061083857610100808354040283529160200191610863565b820191906000526020600020905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b60003361087b818585611227565b5060019392505050565b61088d61134b565b6040805160608101825261ffff808616825284811660208301528316918101919091526108be90600a90600361225d565b50600c54600a5461ffff918216916108d8911660006125f7565b6108e291906125f7565b600e805461ffff191661ffff928316179055600c54600a546201000091829004831692610914929091041660006125f7565b61091e91906125f7565b600e805463ffff000019166201000061ffff93841602179055600c54600a54600160201b91829004831692610958929091041660006125f7565b61096291906125f7565b600e805461ffff928316600160201b0265ffff0000000019821681179092556109c49083169190921617118015906109a95750600e546109c46201000090910461ffff1611155b80156109c55750600e546109c4600160201b90910461ffff1611155b6109ea5760405162461bcd60e51b81526004016109e190612530565b60405180910390fd5b6040805161ffff808616825280851660208301528316918101919091527fe0dc3c96898e240afd3478fbca37454516f4d5294096ea6bd2ff78939bca5e51906060015b60405180910390a1505050565b600033610a488582856113a5565b610a5385858561141f565b506001949350505050565b610a6661134b565b6010546001600160a01b0383811691161415610ae05760405162461bcd60e51b815260206004820152603360248201527f44656661756c74526f757465723a2043616e6e6f742072656d6f766520696e696044820152721d1a585b081c185a5c88199c9bdb481b1a5cdd606a1b60648201526084016109e1565b610aea82826118c8565b5050565b60003361087b818585610b018383610f8d565b610b0b919061261d565b611227565b600e8160038110610b2057600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b610b48338261193d565b50565b600a8160038110610b2057600080fd5b610b6361134b565b62093a80811115610bc05760405162461bcd60e51b815260206004820152602160248201527f416e7469626f743a20547261646520636f6f6c646f776e20746f6f206c6f6e676044820152601760f91b60648201526084016109e1565b60158190556040518181527f07583f92fee444c67f59bbc03e68bfda63fc2e087769ccc4f2b40360336a5467906020015b60405180910390a150565b610c0461134b565b610c0e6000611a82565b565b610c1b8233836113a5565b610aea828261193d565b610c2d61134b565b6001600160a01b038216301415610c965760405162461bcd60e51b815260206004820152602760248201527f546f6b656e5265636f7665723a2043616e6e6f74207265636f7665722074686960448201526639903a37b5b2b760c91b60648201526084016109e1565b816001600160a01b031663a9059cbb610cb76005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d379190612434565b505050565b6060600480546107ea9061268d565b600c8160038110610b2057600080fd5b60003381610d698286610f8d565b905083811015610dc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109e1565b610a538286868403611227565b60003361087b81858561141f565b610dec61134b565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b610e5461134b565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610e40565b610eb461134b565b60138190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e00190602001610bf1565b610ef161134b565b60068190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647690602001610bf1565b610f2e61134b565b600980546001600160a01b0319166001600160a01b038316179055610f54816001610de4565b6040516001600160a01b03821681527fa139c1f8b42e76e7880e1213f616e9e5ae702d5ce7d8e0ec549a7405079a67ca90602001610bf1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610fc061134b565b6040805160608101825261ffff80861682528481166020830152831691810191909152610ff190600c90600361225d565b50600c54600a5461ffff9182169161100b911660006125f7565b61101591906125f7565b600e805461ffff191661ffff928316179055600c54600a546201000091829004831692611047929091041660006125f7565b61105191906125f7565b600e805463ffff000019166201000061ffff93841602179055600c54600a54600160201b9182900483169261108b929091041660006125f7565b61109591906125f7565b600e805461ffff928316600160201b0265ffff0000000019821681179092556109c49083169190921617118015906110dc5750600e546109c46201000090910461ffff1611155b80156110f85750600e546109c4600160201b90910461ffff1611155b6111145760405162461bcd60e51b81526004016109e190612530565b6040805161ffff808616825280851660208301528316918101919091527f2524ccb75260c9a50c71af1740c212c049a01232ef122061416b51815ec57a1890606001610a2d565b61116361134b565b6001600160a01b0381166111c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e1565b610b4881611a82565b6111d961134b565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f1c75c7e1dcc8d5c68921dfeb6ac2a2a801ac4e38b295aec5c41e03fdc1ef0c4f90602001610bf1565b6001600160a01b0383166112895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109e1565b6001600160a01b0382166112ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109e1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610c0e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e1565b60006113b18484610f8d565b90506000198114611419578181101561140c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109e1565b6114198484848403611227565b50505050565b60006006546008546007546000611436919061261d565b611440919061261d565b600f54911115915060ff1615801561147157506001600160a01b03841660009081526011602052604090205460ff16155b801561147a5750805b1561160f57600f805460ff19166001179055600060075411156115ea57600060075460006114a8919061261d565b905060006114b582611ad4565b600754479060009084906114c99084612657565b6114d39190612635565b905080156115e0576009546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611528576040519150601f19603f3d011682016040523d82523d6000602084013e61152d565b606091505b505080935050826115995760405162461bcd60e51b815260206004820152603060248201527f546178657344656661756c74526f7574657257616c6c6574436f696e3a20466560448201526f32903a3930b739b332b91032b93937b960811b60648201526084016109e1565b600954604080516001600160a01b039092168252602082018390527f47bf493966afe79be6c6abf12f28b13522a72c334ff73aebefb2b5ea1d482615910160405180910390a15b5050600060075550505b600a600854111561160457611600600854611c60565b6008555b600f805460ff191690555b600f5460ff161580156116225750600082115b80156116415750600f546001600160a01b038481166101009092041614155b801561166657506001600160a01b0384166000908152600d602052604090205460ff16155b801561168b57506001600160a01b0383166000908152600d602052604090205460ff16155b156118bd576001600160a01b03841660009081526011602052604081205460039060ff16156116c957600e5461ffff16156116c4575060005b61171b565b6001600160a01b03851660009081526011602052604090205460ff161561170457600e5462010000900461ffff16156116c45750600161171b565b600e54600160201b900461ffff161561171b575060025b60038160ff1610156118a957612710600e8260ff1660038110611740576117406126de565b601091828204019190066002029054906101000a900461ffff1661ffff16856117699190612657565b6117739190612635565b915061177f8285612676565b9350600e8160ff1660038110611797576117976126de565b601091828204019190066002029054906101000a900461ffff1661ffff16600a8260ff16600381106117cb576117cb6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16836117f49190612657565b6117fe9190612635565b6007600082825461180f919061261d565b90915550600e905060ff82166003811061182b5761182b6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16600c8260ff166003811061185f5761185f6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16836118889190612657565b6118929190612635565b600860008282546118a3919061261d565b90915550505b81156118ba576118ba863084611d04565b50505b611419848484611d04565b6001600160a01b0382166000908152601160205260409020805460ff1916821580159190911790915561190057611900826001610e4c565b816001600160a01b03167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845582604051610e40911515815260200190565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109e1565b6119a982600083611eb9565b6001600160a01b03821660009081526020819052604090205481811015611a1d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109e1565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d378360008461201e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b0957611b096126de565b60200260200101906001600160a01b031690816001600160a01b031681525050600f60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7757600080fd5b505afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612343565b81600181518110611bc257611bc26126de565b6001600160a01b039283166020918202929092010152600f54611bed91309161010090041684611227565b600f5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611c2a908590600090869030904290600401612586565b600060405180830381600087803b158015611c4457600080fd5b505af1158015611c58573d6000803e3d6000fd5b505050505050565b600080611c6e600284612635565b90506000611c7c8285612676565b9050611c8782611ad4565b478015611cfc576000806000611c9d8585612182565b604080518481526020810184905290810182905292955090935091507f3db50c324c27fb39c451e35d4d23abba3e20d96d036e7a40f4adc681c1ce30139060600160405180910390a1611cf08386612676565b98975050505050505050565b509392505050565b6001600160a01b038316611d685760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109e1565b6001600160a01b038216611dca5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109e1565b611dd5838383611eb9565b6001600160a01b03831660009081526020819052604090205481811015611e4d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109e1565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361141984848461201e565b6001600160a01b03831660009081526012602052604090205460ff16611f6a576015546001600160a01b0384166000908152601460205260409020544291611f009161261d565b1115611f6a5760405162461bcd60e51b815260206004820152603360248201527f416e7469626f743a205472616e73616374696f6e2073656e6465722069732069604482015272371030b73a3496b137ba1031b7b7b63237bbb760691b60648201526084016109e1565b6001600160a01b03821660009081526012602052604090205460ff16610d37576015546001600160a01b0383166000908152601460205260409020544291611fb19161261d565b1115610d375760405162461bcd60e51b815260206004820152603660248201527f416e7469626f743a205472616e73616374696f6e20726563697069656e742069604482015275399034b71030b73a3496b137ba1031b7b7b63237bbb760511b60648201526084016109e1565b6001600160a01b03821660009081526012602052604090205460ff166120ba576013546001600160a01b03831660009081526020819052604090205411156120ba5760405162461bcd60e51b815260206004820152602960248201527f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c6044820152681b195d081b1a5b5a5d60ba1b60648201526084016109e1565b6001600160a01b03831660009081526011602052604090205460ff1680156120fb57506001600160a01b03821660009081526012602052604090205460ff16155b1561211e57506001600160a01b0316600090815260146020526040902042905550565b6001600160a01b03821660009081526011602052604090205460ff16801561215f57506001600160a01b03831660009081526012602052604090205460ff16155b15610d375750506001600160a01b03166000908152601460205260409020429055565b60008060006121a730600f60019054906101000a90046001600160a01b031687611227565b600f54600b5460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990869060c4016060604051808303818588803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061225091906124ad565b9250925092509250925092565b6001830191839082156122e35791602002820160005b838211156122b357835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612273565b80156122e15782816101000a81549061ffff02191690556002016020816001010492830192600103026122b3565b505b506122ef9291506122f3565b5090565b5b808211156122ef57600081556001016122f4565b803561ffff8116811461231a57600080fd5b919050565b60006020828403121561233157600080fd5b813561233c816126f4565b9392505050565b60006020828403121561235557600080fd5b815161233c816126f4565b6000806040838503121561237357600080fd5b823561237e816126f4565b9150602083013561238e816126f4565b809150509250929050565b6000806000606084860312156123ae57600080fd5b83356123b9816126f4565b925060208401356123c9816126f4565b929592945050506040919091013590565b600080604083850312156123ed57600080fd5b82356123f8816126f4565b9150602083013561238e81612709565b6000806040838503121561241b57600080fd5b8235612426816126f4565b946020939093013593505050565b60006020828403121561244657600080fd5b815161233c81612709565b60008060006060848603121561246657600080fd5b61246f84612308565b925061247d60208501612308565b915061248b60408501612308565b90509250925092565b6000602082840312156124a657600080fd5b5035919050565b6000806000606084860312156124c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612508578581018301518582016040015282016124ec565b8181111561251a576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526036908201527f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560408201527564206d617820746f74616c20666565206f662032352560501b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125d65784516001600160a01b0316835293830193918301916001016125b1565b50506001600160a01b03969096166060850152505050608001529392505050565b600061ffff808316818516808303821115612614576126146126c8565b01949350505050565b60008219821115612630576126306126c8565b500190565b60008261265257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612671576126716126c8565b500290565b600082821015612688576126886126c8565b500390565b600181811c908216806126a157607f821691505b602082108114156126c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610b4857600080fd5b8015158114610b4857600080fdfea26469706673582212201f8418c9c6826dce34a82177db821bcc3f7a0ca7551ebf44fab0f5c24c4944e964736f6c63430008070033
0x60806040523480156200001157600080fd5b50604080518082018252600981526814d0519148149152d560ba1b60208083019182528351808501909452600584526414d49152d560da1b908401528151919291620000609160039162001066565b5080516200007690600490602084019062001066565b505050620000936200008d6200022e60201b60201c565b62000232565b7304fe3f218bf43dadc31981ac96185dd1d3bfdedc620000ce620000ba6012600a6200125e565b620000c89061c3506200131f565b62000284565b620000ed7304fe3f218bf43dadc31981ac96185dd1d3bfdedc620002ca565b620000ff6102586101f4600062000336565b6200011e7304fe3f218bf43dadc31981ac96185dd1d3bfdedc62000541565b6200013061012c61019060006200059a565b6200013d81600162000799565b6200014a30600162000799565b62000169737a250d5630b4cf539739df2c5dacb4c659f2488d62000803565b6200017681600162000a4e565b6200018330600162000a4e565b620001916000600162000a4e565b600954620001aa906001600160a01b0316600162000a4e565b620001d1620001bc6012600a6200125e565b620001cb90620f42406200131f565b62000ab1565b620001df62093a8062000af1565b6200020881620001f26012600a6200125e565b620002029063041cdb406200131f565b62000b90565b620002277304fe3f218bf43dadc31981ac96185dd1d3bfdedc62000232565b5062001394565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200028e62000c6f565b60068190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd06476906020015b60405180910390a150565b620002d462000c6f565b600980546001600160a01b0319166001600160a01b038316179055620002fc81600162000799565b6040516001600160a01b03821681527fa139c1f8b42e76e7880e1213f616e9e5ae702d5ce7d8e0ec549a7405079a67ca90602001620002bf565b6200034062000c6f565b6040805160608101825261ffff808616825284811660208301528316918101919091526200037390600a906003620010f5565b50600c54600a5461ffff918216916200038f91166000620011d1565b6200039b9190620011d1565b600e805461ffff191661ffff928316179055600c54600a546201000091829004831692620003cf92909104166000620011d1565b620003db9190620011d1565b600e805463ffff000019166201000061ffff93841602179055600c54600a54640100000000918290048316926200041892909104166000620011d1565b620004249190620011d1565b600e805461ffff9283166401000000000261ffff60201b19821681179092556109c49083169190921617118015906200046c5750600e546109c46201000090910461ffff1611155b80156200048a5750600e546109c464010000000090910461ffff1611155b620004f15760405162461bcd60e51b8152602060048201526036602482015260008051602062003af183398151915260448201527f64206d617820746f74616c20666565206f66203235250000000000000000000060648201526084015b60405180910390fd5b6040805161ffff808616825280851660208301528316918101919091527fe0dc3c96898e240afd3478fbca37454516f4d5294096ea6bd2ff78939bca5e51906060015b60405180910390a1505050565b6200054b62000c6f565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f1c75c7e1dcc8d5c68921dfeb6ac2a2a801ac4e38b295aec5c41e03fdc1ef0c4f90602001620002bf565b620005a462000c6f565b6040805160608101825261ffff80861682528481166020830152831691810191909152620005d790600c906003620010f5565b50600c54600a5461ffff91821691620005f391166000620011d1565b620005ff9190620011d1565b600e805461ffff191661ffff928316179055600c54600a5462010000918290048316926200063392909104166000620011d1565b6200063f9190620011d1565b600e805463ffff000019166201000061ffff93841602179055600c54600a54640100000000918290048316926200067c92909104166000620011d1565b620006889190620011d1565b600e805461ffff9283166401000000000261ffff60201b19821681179092556109c4908316919092161711801590620006d05750600e546109c46201000090910461ffff1611155b8015620006ee5750600e546109c464010000000090910461ffff1611155b620007515760405162461bcd60e51b8152602060048201526036602482015260008051602062003af183398151915260448201527f64206d617820746f74616c20666565206f6620323525000000000000000000006064820152608401620004e8565b6040805161ffff808616825280851660208301528316918101919091527f2524ccb75260c9a50c71af1740c212c049a01232ef122061416b51815ec57a189060600162000534565b620007a362000c6f565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b80600f60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600f60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200087957600080fd5b505afa1580156200088e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008b491906200119f565b6001600160a01b031663c9c6539630600f60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200091257600080fd5b505afa15801562000927573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200094d91906200119f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200099657600080fd5b505af1158015620009ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009d191906200119f565b601080546001600160a01b0319166001600160a01b0392909216919091179055620009fe81600162000a4e565b60105462000a17906001600160a01b0316600162000ccd565b6040516001600160a01b038216907fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60290600090a250565b62000a5862000c6f565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101620007f7565b62000abb62000c6f565b60138190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e00190602001620002bf565b62000afb62000c6f565b62093a8081111562000b5a5760405162461bcd60e51b815260206004820152602160248201527f416e7469626f743a20547261646520636f6f6c646f776e20746f6f206c6f6e676044820152601760f91b6064820152608401620004e8565b60158190556040518181527f07583f92fee444c67f59bbc03e68bfda63fc2e087769ccc4f2b40360336a546790602001620002bf565b6001600160a01b03821662000be85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004e8565b62000bf66000838362000d46565b806002600082825462000c0a9190620011fa565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000c6b6000838362000ee3565b5050565b6005546001600160a01b0316331462000ccb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620004e8565b565b6001600160a01b0382166000908152601160205260409020805460ff1916821580159190911790915562000d085762000d0882600162000a4e565b816001600160a01b03167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845582604051620007f7911515815260200190565b6001600160a01b03831660009081526012602052604090205460ff1662000e06576015546001600160a01b038416600090815260146020526040902054429162000d9091620011fa565b111562000e065760405162461bcd60e51b815260206004820152603360248201527f416e7469626f743a205472616e73616374696f6e2073656e646572206973206960448201527f6e20616e74692d626f7420636f6f6c646f776e000000000000000000000000006064820152608401620004e8565b6001600160a01b03821660009081526012602052604090205460ff1662000ec6576015546001600160a01b038316600090815260146020526040902054429162000e5091620011fa565b111562000ec65760405162461bcd60e51b815260206004820152603660248201527f416e7469626f743a205472616e73616374696f6e20726563697069656e74206960448201527f7320696e20616e74692d626f7420636f6f6c646f776e000000000000000000006064820152608401620004e8565b62000ede83838362000ede60201b62000d371760201c565b505050565b6001600160a01b03821660009081526012602052604090205460ff1662000f82576013546001600160a01b038316600090815260208190526040902054111562000f825760405162461bcd60e51b815260206004820152602960248201527f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c6044820152681b195d081b1a5b5a5d60ba1b6064820152608401620004e8565b6001600160a01b03831660009081526011602052604090205460ff16801562000fc457506001600160a01b03821660009081526012602052604090205460ff16155b1562000feb576001600160a01b038216600090815260146020526040902042905562000ec6565b6001600160a01b03821660009081526011602052604090205460ff1680156200102d57506001600160a01b03831660009081526012602052604090205460ff16155b1562000ec6576001600160a01b038316600090815260146020526040902042905562000ede83838362000ede60201b62000d371760201c565b828054620010749062001341565b90600052602060002090601f016020900481019282620010985760008555620010e3565b82601f10620010b357805160ff1916838001178555620010e3565b82800160010185558215620010e3579182015b82811115620010e3578251825591602001919060010190620010c6565b50620010f192915062001188565b5090565b600183019183908215620010e35791602002820160005b838211156200114e57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026200110c565b80156200117e5782816101000a81549061ffff02191690556002016020816001010492830192600103026200114e565b5050620010f19291505b5b80821115620010f1576000815560010162001189565b600060208284031215620011b257600080fd5b81516001600160a01b0381168114620011ca57600080fd5b9392505050565b600061ffff808316818516808303821115620011f157620011f16200137e565b01949350505050565b600082198211156200121057620012106200137e565b500190565b600181815b80851115620012565781600019048211156200123a576200123a6200137e565b808516156200124857918102915b93841c93908002906200121a565b509250929050565b6000620011ca60ff8416836000826200127a5750600162001319565b81620012895750600062001319565b8160018114620012a25760028114620012ad57620012cd565b600191505062001319565b60ff841115620012c157620012c16200137e565b50506001821b62001319565b5060208310610133831016604e8410600b8410161715620012f2575081810a62001319565b620012fe838362001215565b80600019048211156200131557620013156200137e565b0290505b92915050565b60008160001904831182151516156200133c576200133c6200137e565b500290565b600181811c908216806200135657607f821691505b602082108114156200137857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61274d80620013a46000396000f3fe60806040526004361061024a5760003560e01c80638089dbfd11610139578063c0a904a2116100b6578063dd62ed3e1161007a578063dd62ed3e14610725578063e626815814610745578063f0cd14f314610765578063f2fde38b14610785578063f3bf087e146107a5578063fd116019146107c557600080fd5b8063c0a904a214610678578063c18bc19514610698578063c26d7be0146106b8578063cc274b29146106e5578063dbc3a0ad1461070557600080fd5b8063966b53c4116100fd578063966b53c4146105e2578063a457c2d714610602578063a9059cbb14610622578063aa4bde2814610642578063c02466681461065857600080fd5b80638089dbfd1461054f5780638980f11f1461056f5780638da5cb5b1461058f5780638fffabed146105ad57806395d89b41146105cd57600080fd5b806342966c68116101c75780636a3e8f3d1161018b5780636a3e8f3d1461049457806370a08231146104b4578063715018a6146104ea57806376856557146104ff57806379cc67901461052f57600080fd5b806342966c68146103b757806347a81845146103d75780634fbee193146103f7578063502f7446146104275780635cce86cd1461046457600080fd5b806323b872dd1161020e57806323b872dd146103085780632d99d32e14610328578063313ce567146103485780633950935114610364578063408ccbdf1461038457600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102a157806318160ddd146102d157806320abdef1146102e657600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60065481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506102946107db565b60405161027691906124db565b3480156102ad57600080fd5b506102c16102bc366004612408565b61086d565b6040519015158152602001610276565b3480156102dd57600080fd5b5060025461026c565b3480156102f257600080fd5b50610306610301366004612451565b610885565b005b34801561031457600080fd5b506102c1610323366004612399565b610a3a565b34801561033457600080fd5b506103066103433660046123da565b610a5e565b34801561035457600080fd5b5060405160128152602001610276565b34801561037057600080fd5b506102c161037f366004612408565b610aee565b34801561039057600080fd5b506103a461039f366004612494565b610b10565b60405161ffff9091168152602001610276565b3480156103c357600080fd5b506103066103d2366004612494565b610b3e565b3480156103e357600080fd5b506103a46103f2366004612494565b610b4b565b34801561040357600080fd5b506102c161041236600461231f565b600d6020526000908152604090205460ff1681565b34801561043357600080fd5b50600f5461044c9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610276565b34801561047057600080fd5b506102c161047f36600461231f565b60126020526000908152604090205460ff1681565b3480156104a057600080fd5b506103066104af366004612494565b610b5b565b3480156104c057600080fd5b5061026c6104cf36600461231f565b6001600160a01b031660009081526020819052604090205490565b3480156104f657600080fd5b50610306610bfc565b34801561050b57600080fd5b506102c161051a36600461231f565b60116020526000908152604090205460ff1681565b34801561053b57600080fd5b5061030661054a366004612408565b610c10565b34801561055b57600080fd5b50600b5461044c906001600160a01b031681565b34801561057b57600080fd5b5061030661058a366004612408565b610c25565b34801561059b57600080fd5b506005546001600160a01b031661044c565b3480156105b957600080fd5b5060105461044c906001600160a01b031681565b3480156105d957600080fd5b50610294610d3c565b3480156105ee57600080fd5b506103a46105fd366004612494565b610d4b565b34801561060e57600080fd5b506102c161061d366004612408565b610d5b565b34801561062e57600080fd5b506102c161063d366004612408565b610dd6565b34801561064e57600080fd5b5061026c60135481565b34801561066457600080fd5b506103066106733660046123da565b610de4565b34801561068457600080fd5b506103066106933660046123da565b610e4c565b3480156106a457600080fd5b506103066106b3366004612494565b610eac565b3480156106c457600080fd5b5061026c6106d336600461231f565b60146020526000908152604090205481565b3480156106f157600080fd5b50610306610700366004612494565b610ee9565b34801561071157600080fd5b5061030661072036600461231f565b610f26565b34801561073157600080fd5b5061026c610740366004612360565b610f8d565b34801561075157600080fd5b50610306610760366004612451565b610fb8565b34801561077157600080fd5b5060095461044c906001600160a01b031681565b34801561079157600080fd5b506103066107a036600461231f565b61115b565b3480156107b157600080fd5b506103066107c036600461231f565b6111d1565b3480156107d157600080fd5b5061026c60155481565b6060600380546107ea9061268d565b80601f01602080910402602001604051908101604052809291908181526020018280546108169061268d565b80156108635780601f1061083857610100808354040283529160200191610863565b820191906000526020600020905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b60003361087b818585611227565b5060019392505050565b61088d61134b565b6040805160608101825261ffff808616825284811660208301528316918101919091526108be90600a90600361225d565b50600c54600a5461ffff918216916108d8911660006125f7565b6108e291906125f7565b600e805461ffff191661ffff928316179055600c54600a546201000091829004831692610914929091041660006125f7565b61091e91906125f7565b600e805463ffff000019166201000061ffff93841602179055600c54600a54600160201b91829004831692610958929091041660006125f7565b61096291906125f7565b600e805461ffff928316600160201b0265ffff0000000019821681179092556109c49083169190921617118015906109a95750600e546109c46201000090910461ffff1611155b80156109c55750600e546109c4600160201b90910461ffff1611155b6109ea5760405162461bcd60e51b81526004016109e190612530565b60405180910390fd5b6040805161ffff808616825280851660208301528316918101919091527fe0dc3c96898e240afd3478fbca37454516f4d5294096ea6bd2ff78939bca5e51906060015b60405180910390a1505050565b600033610a488582856113a5565b610a5385858561141f565b506001949350505050565b610a6661134b565b6010546001600160a01b0383811691161415610ae05760405162461bcd60e51b815260206004820152603360248201527f44656661756c74526f757465723a2043616e6e6f742072656d6f766520696e696044820152721d1a585b081c185a5c88199c9bdb481b1a5cdd606a1b60648201526084016109e1565b610aea82826118c8565b5050565b60003361087b818585610b018383610f8d565b610b0b919061261d565b611227565b600e8160038110610b2057600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b610b48338261193d565b50565b600a8160038110610b2057600080fd5b610b6361134b565b62093a80811115610bc05760405162461bcd60e51b815260206004820152602160248201527f416e7469626f743a20547261646520636f6f6c646f776e20746f6f206c6f6e676044820152601760f91b60648201526084016109e1565b60158190556040518181527f07583f92fee444c67f59bbc03e68bfda63fc2e087769ccc4f2b40360336a5467906020015b60405180910390a150565b610c0461134b565b610c0e6000611a82565b565b610c1b8233836113a5565b610aea828261193d565b610c2d61134b565b6001600160a01b038216301415610c965760405162461bcd60e51b815260206004820152602760248201527f546f6b656e5265636f7665723a2043616e6e6f74207265636f7665722074686960448201526639903a37b5b2b760c91b60648201526084016109e1565b816001600160a01b031663a9059cbb610cb76005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d379190612434565b505050565b6060600480546107ea9061268d565b600c8160038110610b2057600080fd5b60003381610d698286610f8d565b905083811015610dc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109e1565b610a538286868403611227565b60003361087b81858561141f565b610dec61134b565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b610e5461134b565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610e40565b610eb461134b565b60138190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e00190602001610bf1565b610ef161134b565b60068190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647690602001610bf1565b610f2e61134b565b600980546001600160a01b0319166001600160a01b038316179055610f54816001610de4565b6040516001600160a01b03821681527fa139c1f8b42e76e7880e1213f616e9e5ae702d5ce7d8e0ec549a7405079a67ca90602001610bf1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610fc061134b565b6040805160608101825261ffff80861682528481166020830152831691810191909152610ff190600c90600361225d565b50600c54600a5461ffff9182169161100b911660006125f7565b61101591906125f7565b600e805461ffff191661ffff928316179055600c54600a546201000091829004831692611047929091041660006125f7565b61105191906125f7565b600e805463ffff000019166201000061ffff93841602179055600c54600a54600160201b9182900483169261108b929091041660006125f7565b61109591906125f7565b600e805461ffff928316600160201b0265ffff0000000019821681179092556109c49083169190921617118015906110dc5750600e546109c46201000090910461ffff1611155b80156110f85750600e546109c4600160201b90910461ffff1611155b6111145760405162461bcd60e51b81526004016109e190612530565b6040805161ffff808616825280851660208301528316918101919091527f2524ccb75260c9a50c71af1740c212c049a01232ef122061416b51815ec57a1890606001610a2d565b61116361134b565b6001600160a01b0381166111c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e1565b610b4881611a82565b6111d961134b565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f1c75c7e1dcc8d5c68921dfeb6ac2a2a801ac4e38b295aec5c41e03fdc1ef0c4f90602001610bf1565b6001600160a01b0383166112895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109e1565b6001600160a01b0382166112ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109e1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610c0e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e1565b60006113b18484610f8d565b90506000198114611419578181101561140c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109e1565b6114198484848403611227565b50505050565b60006006546008546007546000611436919061261d565b611440919061261d565b600f54911115915060ff1615801561147157506001600160a01b03841660009081526011602052604090205460ff16155b801561147a5750805b1561160f57600f805460ff19166001179055600060075411156115ea57600060075460006114a8919061261d565b905060006114b582611ad4565b600754479060009084906114c99084612657565b6114d39190612635565b905080156115e0576009546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611528576040519150601f19603f3d011682016040523d82523d6000602084013e61152d565b606091505b505080935050826115995760405162461bcd60e51b815260206004820152603060248201527f546178657344656661756c74526f7574657257616c6c6574436f696e3a20466560448201526f32903a3930b739b332b91032b93937b960811b60648201526084016109e1565b600954604080516001600160a01b039092168252602082018390527f47bf493966afe79be6c6abf12f28b13522a72c334ff73aebefb2b5ea1d482615910160405180910390a15b5050600060075550505b600a600854111561160457611600600854611c60565b6008555b600f805460ff191690555b600f5460ff161580156116225750600082115b80156116415750600f546001600160a01b038481166101009092041614155b801561166657506001600160a01b0384166000908152600d602052604090205460ff16155b801561168b57506001600160a01b0383166000908152600d602052604090205460ff16155b156118bd576001600160a01b03841660009081526011602052604081205460039060ff16156116c957600e5461ffff16156116c4575060005b61171b565b6001600160a01b03851660009081526011602052604090205460ff161561170457600e5462010000900461ffff16156116c45750600161171b565b600e54600160201b900461ffff161561171b575060025b60038160ff1610156118a957612710600e8260ff1660038110611740576117406126de565b601091828204019190066002029054906101000a900461ffff1661ffff16856117699190612657565b6117739190612635565b915061177f8285612676565b9350600e8160ff1660038110611797576117976126de565b601091828204019190066002029054906101000a900461ffff1661ffff16600a8260ff16600381106117cb576117cb6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16836117f49190612657565b6117fe9190612635565b6007600082825461180f919061261d565b90915550600e905060ff82166003811061182b5761182b6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16600c8260ff166003811061185f5761185f6126de565b601091828204019190066002029054906101000a900461ffff1661ffff16836118889190612657565b6118929190612635565b600860008282546118a3919061261d565b90915550505b81156118ba576118ba863084611d04565b50505b611419848484611d04565b6001600160a01b0382166000908152601160205260409020805460ff1916821580159190911790915561190057611900826001610e4c565b816001600160a01b03167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845582604051610e40911515815260200190565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109e1565b6119a982600083611eb9565b6001600160a01b03821660009081526020819052604090205481811015611a1d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109e1565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d378360008461201e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b0957611b096126de565b60200260200101906001600160a01b031690816001600160a01b031681525050600f60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7757600080fd5b505afa158015611b8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baf9190612343565b81600181518110611bc257611bc26126de565b6001600160a01b039283166020918202929092010152600f54611bed91309161010090041684611227565b600f5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611c2a908590600090869030904290600401612586565b600060405180830381600087803b158015611c4457600080fd5b505af1158015611c58573d6000803e3d6000fd5b505050505050565b600080611c6e600284612635565b90506000611c7c8285612676565b9050611c8782611ad4565b478015611cfc576000806000611c9d8585612182565b604080518481526020810184905290810182905292955090935091507f3db50c324c27fb39c451e35d4d23abba3e20d96d036e7a40f4adc681c1ce30139060600160405180910390a1611cf08386612676565b98975050505050505050565b509392505050565b6001600160a01b038316611d685760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109e1565b6001600160a01b038216611dca5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109e1565b611dd5838383611eb9565b6001600160a01b03831660009081526020819052604090205481811015611e4d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109e1565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361141984848461201e565b6001600160a01b03831660009081526012602052604090205460ff16611f6a576015546001600160a01b0384166000908152601460205260409020544291611f009161261d565b1115611f6a5760405162461bcd60e51b815260206004820152603360248201527f416e7469626f743a205472616e73616374696f6e2073656e6465722069732069604482015272371030b73a3496b137ba1031b7b7b63237bbb760691b60648201526084016109e1565b6001600160a01b03821660009081526012602052604090205460ff16610d37576015546001600160a01b0383166000908152601460205260409020544291611fb19161261d565b1115610d375760405162461bcd60e51b815260206004820152603660248201527f416e7469626f743a205472616e73616374696f6e20726563697069656e742069604482015275399034b71030b73a3496b137ba1031b7b7b63237bbb760511b60648201526084016109e1565b6001600160a01b03821660009081526012602052604090205460ff166120ba576013546001600160a01b03831660009081526020819052604090205411156120ba5760405162461bcd60e51b815260206004820152602960248201527f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c6044820152681b195d081b1a5b5a5d60ba1b60648201526084016109e1565b6001600160a01b03831660009081526011602052604090205460ff1680156120fb57506001600160a01b03821660009081526012602052604090205460ff16155b1561211e57506001600160a01b0316600090815260146020526040902042905550565b6001600160a01b03821660009081526011602052604090205460ff16801561215f57506001600160a01b03831660009081526012602052604090205460ff16155b15610d375750506001600160a01b03166000908152601460205260409020429055565b60008060006121a730600f60019054906101000a90046001600160a01b031687611227565b600f54600b5460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990869060c4016060604051808303818588803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061225091906124ad565b9250925092509250925092565b6001830191839082156122e35791602002820160005b838211156122b357835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612273565b80156122e15782816101000a81549061ffff02191690556002016020816001010492830192600103026122b3565b505b506122ef9291506122f3565b5090565b5b808211156122ef57600081556001016122f4565b803561ffff8116811461231a57600080fd5b919050565b60006020828403121561233157600080fd5b813561233c816126f4565b9392505050565b60006020828403121561235557600080fd5b815161233c816126f4565b6000806040838503121561237357600080fd5b823561237e816126f4565b9150602083013561238e816126f4565b809150509250929050565b6000806000606084860312156123ae57600080fd5b83356123b9816126f4565b925060208401356123c9816126f4565b929592945050506040919091013590565b600080604083850312156123ed57600080fd5b82356123f8816126f4565b9150602083013561238e81612709565b6000806040838503121561241b57600080fd5b8235612426816126f4565b946020939093013593505050565b60006020828403121561244657600080fd5b815161233c81612709565b60008060006060848603121561246657600080fd5b61246f84612308565b925061247d60208501612308565b915061248b60408501612308565b90509250925092565b6000602082840312156124a657600080fd5b5035919050565b6000806000606084860312156124c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612508578581018301518582016040015282016124ec565b8181111561251a576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526036908201527f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560408201527564206d617820746f74616c20666565206f662032352560501b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125d65784516001600160a01b0316835293830193918301916001016125b1565b50506001600160a01b03969096166060850152505050608001529392505050565b600061ffff808316818516808303821115612614576126146126c8565b01949350505050565b60008219821115612630576126306126c8565b500190565b60008261265257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612671576126716126c8565b500290565b600082821015612688576126886126c8565b500390565b600181811c908216806126a157607f821691505b602082108114156126c257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610b4857600080fd5b8015158114610b4857600080fdfea26469706673582212201f8418c9c6826dce34a82177db821bcc3f7a0ca7551ebf44fab0f5c24c4944e964736f6c63430008070033546178657344656661756c74526f757465723a2043616e6e6f74206578636565