0x60806040526004361061046c5760003560e01c806375f0a8741161024a578063bbde77c111610139578063dbe66ca0116100b6578063e9d9e4fc1161007a578063e9d9e4fc14610db9578063f2fde38b14610dd9578063f7942b6314610df9578063fe575a8714610e19578063ff90061214610e4957600080fd5b8063dbe66ca014610cf7578063dd62ed3e14610d27578063df10b50814610d6d578063e0d2f9eb14610d83578063e52fb9ec14610da357600080fd5b8063c8c8ebe4116100fd578063c8c8ebe414610c65578063cc1776d314610c7b578063cfd1940e14610c91578063d24cd3ec14610cb1578063d46b6a3014610cc757600080fd5b8063bbde77c114610bcc578063bc43d84914610be2578063be617fa014610c02578063bfd8a75614610c18578063c3f4f54f14610c3857600080fd5b806395d89b41116101c7578063a9059cbb1161018b578063a9059cbb14610b30578063addc6c4814610b50578063aed04fae14610b80578063b40d09e214610b96578063b8668fbe14610bac57600080fd5b806395d89b4114610a9857806398d7e72114610ac45780639ec22c0e14610ae4578063a457c2d714610afa578063a4c82a0014610b1a57600080fd5b8063893d20e81161020e578063893d20e814610a1a578063896648c114610a3857806389ce89f914610a585780638da5cb5b14610a1a5780638ea5220f14610a7857600080fd5b806375f0a8741461098e5780637e47be79146109ae5780638124f7ac146109c4578063817d4bff146109da578063868b0141146109fa57600080fd5b80632c92293c1161036657806354bdc753116102e35780636c933f74116102a75780636c933f74146108ee57806370a082311461090e5780637115d00e14610944578063715018a614610959578063730c18881461096e57600080fd5b806354bdc753146107e857806358b6b904146108085780635cce86cd146108285780635cd0a874146108615780636386c1c71461087757600080fd5b806341aec3571161032a57806341aec3571461076957806346e35f031461077e5780634f7041a5146107935780635149f984146107a957806351bc3c85146107c957600080fd5b80632c92293c146106d65780632e82f1a0146106f6578063313ce5671461071757806333d6867814610733578063395093511461074957600080fd5b8063199ffc72116103f45780631f3d14f2116103b85780631f3d14f21461064957806323b872dd1461066b57806326254a861461068b5780632b112e49146106ab5780632c3e486c146106c057600080fd5b8063199ffc72146105c85780631a80029d146105de5780631d4eaead146105fe5780631d97b7cd146106145780631e293c101461062957600080fd5b80630c305c2c1161043b5780630c305c2c146105425780630eff4c6414610565578063114cfaf61461057b57806318160ddd1461059d578063184c16c5146105b257600080fd5b8063062287491461047857806306fdde03146104ab57806309218ee7146104ee578063095ea7b31461051257600080fd5b3661047357005b600080fd5b34801561048457600080fd5b5061048e61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156104b757600080fd5b506040805180820190915260118152702a3434b932102232b3b932b290213ab93760791b60208201525b6040516104a291906139b8565b3480156104fa57600080fd5b5061050460155481565b6040519081526020016104a2565b34801561051e57600080fd5b5061053261052d366004613a25565b610e69565b60405190151581526020016104a2565b34801561054e57600080fd5b50601f546105329065010000000000900460ff1681565b34801561057157600080fd5b5061050460115481565b34801561058757600080fd5b5061059b610596366004613a51565b610e80565b005b3480156105a957600080fd5b50610504610f0f565b3480156105be57600080fd5b50610504601b5481565b3480156105d457600080fd5b5061050460185481565b3480156105ea57600080fd5b5061059b6105f9366004613a78565b610f31565b34801561060a57600080fd5b50610504600d5481565b34801561062057600080fd5b5061059b610fc0565b34801561063557600080fd5b5061059b610644366004613a51565b6110d8565b34801561065557600080fd5b50601f5461053290640100000000900460ff1681565b34801561067757600080fd5b50610532610686366004613a95565b6111f1565b34801561069757600080fd5b506105046106a6366004613ad6565b611288565b3480156106b757600080fd5b506105046112d9565b3480156106cc57600080fd5b5061050460195481565b3480156106e257600080fd5b5061059b6106f1366004613a51565b61131b565b34801561070257600080fd5b50601f54610532906301000000900460ff1681565b34801561072357600080fd5b50604051601281526020016104a2565b34801561073f57600080fd5b50610504601e5481565b34801561075557600080fd5b50610532610764366004613a25565b611431565b34801561077557600080fd5b5061059b611468565b34801561078a57600080fd5b506105326114d6565b34801561079f57600080fd5b5061050460095481565b3480156107b557600080fd5b5061059b6107c4366004613af3565b61151c565b3480156107d557600080fd5b50601f5461053290610100900460ff1681565b3480156107f457600080fd5b5061059b610803366004613a78565b611607565b34801561081457600080fd5b5061059b610823366004613b2c565b611660565b34801561083457600080fd5b50610532610843366004613ad6565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561086d57600080fd5b50610504601d5481565b34801561088357600080fd5b506108d3610892366004613ad6565b6001600160a01b0316600090815260076020908152604091829020825160608101845281548082526001830154938201849052600290920154930183905292565b604080519384526020840192909252908201526060016104a2565b3480156108fa57600080fd5b5061059b610909366004613a51565b61171c565b34801561091a57600080fd5b50610504610929366004613ad6565b6001600160a01b031660009081526001602052604090205490565b34801561095057600080fd5b5061059b6117ad565b34801561096557600080fd5b5061059b6118f9565b34801561097a57600080fd5b5061059b610989366004613b5e565b61197c565b34801561099a57600080fd5b5060215461048e906001600160a01b031681565b3480156109ba57600080fd5b50610504600b5481565b3480156109d057600080fd5b50610504600c5481565b3480156109e657600080fd5b5061059b6109f5366004613ad6565b611abf565b348015610a0657600080fd5b5061059b610a15366004613a78565b611b46565b348015610a2657600080fd5b506000546001600160a01b031661048e565b348015610a4457600080fd5b50601f546105329062010000900460ff1681565b348015610a6457600080fd5b5061059b610a73366004613b97565b611bc8565b348015610a8457600080fd5b5060225461048e906001600160a01b031681565b348015610aa457600080fd5b5060408051808201909152600381526219a22160e91b60208201526104e1565b348015610ad057600080fd5b50610532610adf366004613a51565b611c9f565b348015610af057600080fd5b50610504601c5481565b348015610b0657600080fd5b50610532610b15366004613a25565b611f34565b348015610b2657600080fd5b50610504601a5481565b348015610b3c57600080fd5b50610532610b4b366004613a25565b611fb0565b348015610b5c57600080fd5b50610532610b6b366004613ad6565b60086020526000908152604090205460ff1681565b348015610b8c57600080fd5b5061050460135481565b348015610ba257600080fd5b5061050460125481565b348015610bb857600080fd5b5061059b610bc7366004613c12565b611fbd565b348015610bd857600080fd5b5061050460165481565b348015610bee57600080fd5b5061059b610bfd366004613a51565b612169565b348015610c0e57600080fd5b50610504600e5481565b348015610c2457600080fd5b5061059b610c33366004613a78565b6121e6565b348015610c4457600080fd5b5061dead6000526001602052600080516020613fe883398151915254610504565b348015610c7157600080fd5b5061050460175481565b348015610c8757600080fd5b50610504600a5481565b348015610c9d57600080fd5b5061059b610cac366004613a51565b612241565b348015610cbd57600080fd5b50610504600f5481565b348015610cd357600080fd5b50610532610ce2366004613ad6565b60056020526000908152604090205460ff1681565b348015610d0357600080fd5b50610532610d12366004613ad6565b60046020526000908152604090205460ff1681565b348015610d3357600080fd5b50610504610d42366004613c5e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610d7957600080fd5b5061050460145481565b348015610d8f57600080fd5b5061059b610d9e366004613af3565b6122bd565b348015610daf57600080fd5b5061050460105481565b348015610dc557600080fd5b5061059b610dd4366004613b97565b6123aa565b348015610de557600080fd5b5061059b610df4366004613ad6565b612458565b348015610e0557600080fd5b5061059b610e14366004613af3565b612551565b348015610e2557600080fd5b50610532610e34366004613ad6565b60066020526000908152604090205460ff1681565b348015610e5557600080fd5b5061059b610e64366004613ad6565b6125e6565b6000610e7633848461266d565b5060015b92915050565b33610e936000546001600160a01b031690565b6001600160a01b031614610ec25760405162461bcd60e51b8152600401610eb990613c8c565b60405180910390fd5b6064811015610f0a5760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba1039b2ba103132b637bb9018929760611b6044820152606401610eb9565b601d55565b6000610f1d6012600a613dbb565b610f2c90644d9c370555613dca565b905090565b33610f446000546001600160a01b031690565b6001600160a01b031614610f6a5760405162461bcd60e51b8152600401610eb990613c8c565b601f8054821515620100000262ff0000199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610fb590831515815260200190565b60405180910390a150565b33610fd36000546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610eb990613c8c565b6012541561103b5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610eb9565b4260129081556103e89061105090600a613dbb565b61105f90644d9c370555613dca565b61106a90600a613dca565b6110749190613de9565b6016556127106110866012600a613dbb565b61109590644d9c370555613dca565b6110a0906064613dca565b6110aa9190613de9565b6017556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b336110eb6000546001600160a01b031690565b6001600160a01b0316146111115760405162461bcd60e51b8152600401610eb990613c8c565b601981101561114e5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610eb9565b61271081111561118b5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610eb9565b6127108161119b6012600a613dbb565b6111aa90644d9c370555613dca565b6111b49190613dca565b6111be9190613de9565b6017556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac90602001610fb5565b60006111fe848484612760565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156112695760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610eb9565b61127d85336112788685613e0b565b61266d565b506001949350505050565b601e546001600160a01b038216600090815260076020526040812060010154909182916112b59190613e22565b9050428111156112d0576112c94282613e0b565b9392505050565b50600092915050565b61dead60009081526001602052600080516020613fe8833981519152546113026012600a613dbb565b61131190644d9c370555613dca565b610f2c9190613e0b565b3361132e6000546001600160a01b031690565b6001600160a01b0316146113545760405162461bcd60e51b8152600401610eb990613c8c565b600a81101561138e5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610eb9565b6103e88111156113cb5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610eb9565b6103e8816113db6012600a613dbb565b6113ea90644d9c370555613dca565b6113f49190613dca565b6113fe9190613de9565b6016556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610fb5565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610e76918590611278908690613e22565b3361147b6000546001600160a01b031690565b6001600160a01b0316146114a15760405162461bcd60e51b8152600401610eb990613c8c565b6114ab6001612932565b6040517f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f90600090a1565b60006103e86011546114e66112d9565b6114f09190613dca565b6114fa9190613de9565b602080546001600160a01b031660009081526001909152604090205411919050565b3361152f6000546001600160a01b031690565b6001600160a01b0316146115555760405162461bcd60e51b8152600401610eb990613c8c565b6020546001600160a01b03908116908316036115aa5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610eb9565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151517905590519182527fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f091015b60405180910390a15050565b3361161a6000546001600160a01b031690565b6001600160a01b0316146116405760405162461bcd60e51b8152600401610eb990613c8c565b601f80549115156401000000000264ff0000000019909216919091179055565b336116736000546001600160a01b031690565b6001600160a01b0316146116995760405162461bcd60e51b8152600401610eb990613c8c565b606481836116a78688613e22565b6116b19190613e22565b6116bb9190613e22565b11156116c657600080fd5b60138490556015839055601482905560408051858152602081018590529081018390527ff81b1f9d8b5d36a5a67d13006a8b091a9b63e2a38b331d315d99c6daefd2ddcc9060600160405180910390a150505050565b3361172f6000546001600160a01b031690565b6001600160a01b0316146117555760405162461bcd60e51b8152600401610eb990613c8c565b620151808111156117a85760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207365742061626f766520323420686f7572732e0000000000006044820152606401610eb9565b601e55565b336117c06000546001600160a01b031690565b6001600160a01b0316146117e65760405162461bcd60e51b8152600401610eb990613c8c565b6020546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190613e3a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156118a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cb9190613e53565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b3361190c6000546001600160a01b031690565b6001600160a01b0316146119325760405162461bcd60e51b8152600401610eb990613c8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361198f6000546001600160a01b031690565b6001600160a01b0316146119b55760405162461bcd60e51b8152600401610eb990613c8c565b610258831015611a235760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610eb9565b6103e88211158015611a33575060015b611a985760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610eb9565b601992909255601855601f805491151563010000000263ff00000019909216919091179055565b33611ad26000546001600160a01b031690565b6001600160a01b031614611af85760405162461bcd60e51b8152600401610eb990613c8c565b602180546001600160a01b0319166001600160a01b0383169081179091556040519081527f9e42de18c651175b949c09ca698a4cf63aa023f4038a9ed83bd882c7d6f8fb6490602001610fb5565b33611b596000546001600160a01b031690565b6001600160a01b031614611b7f5760405162461bcd60e51b8152600401610eb990613c8c565b601f80548215156101000261ff00199091161790556040517faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e11507082190610fb590831515815260200190565b33611bdb6000546001600160a01b031690565b6001600160a01b031614611c015760405162461bcd60e51b8152600401610eb990613c8c565b60005b82811015611c70578160066000868685818110611c2357611c23613e70565b9050602002016020810190611c389190613ad6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611c6981613e86565b9050611c04565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b600033611cb46000546001600160a01b031690565b6001600160a01b031614611cda5760405162461bcd60e51b8152600401610eb990613c8c565b601b54601c54611cea9190613e22565b4211611d385760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610eb9565b6103e8821115611d9d5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610eb9565b42601c556020546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e109190613e3a565b90506000612710611e218584613dca565b611e2b9190613de9565b90508015611e9e5761dead60009081526001602052600080516020613fe88339815191528054839290611e5f908490613e22565b909155505060205460405161dead916001600160a01b03169060008051602061400883398151915290611e959085815260200190565b60405180910390a35b6020546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015611f975760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610eb9565b611fa633856112788685613e0b565b5060019392505050565b6000610e76338484612760565b33611fd06000546001600160a01b031690565b6001600160a01b031614611ff65760405162461bcd60e51b8152600401610eb990613c8c565b6000612005600a6103e8613de9565b90508088111580156120175750808711155b80156120235750808611155b801561202f5750808211155b6120705760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610eb9565b6103e88361207e8688613e22565b6120889190613e22565b146120df5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610eb9565b6009889055600a879055600b829055600c869055600f849055600e839055600d8590556040805189815260208101899052908101879052606081018690526080810185905260a0810184905260c081018390527f6cdd0b254c12e6e079483ac4d60596517e9d8df83e5b35a3f23ad869581c44229060e00160405180910390a15050505050505050565b3361217c6000546001600160a01b031690565b6001600160a01b0316146121a25760405162461bcd60e51b8152600401610eb990613c8c565b6103e88111156121b157600080fd5b60118190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610fb5565b336121f96000546001600160a01b031690565b6001600160a01b03161461221f5760405162461bcd60e51b8152600401610eb990613c8c565b601f8054911515650100000000000265ff000000000019909216919091179055565b336122546000546001600160a01b031690565b6001600160a01b03161461227a5760405162461bcd60e51b8152600401610eb990613c8c565b600a81111561228857600080fd5b60108190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610fb5565b336122d06000546001600160a01b031690565b6001600160a01b0316146122f65760405162461bcd60e51b8152600401610eb990613c8c565b306001600160a01b0383160361234e5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610eb9565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491016115fb565b336123bd6000546001600160a01b031690565b6001600160a01b0316146123e35760405162461bcd60e51b8152600401610eb990613c8c565b60005b8281101561245257816008600086868581811061240557612405613e70565b905060200201602081019061241a9190613ad6565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561244b81613e86565b90506123e6565b50505050565b3361246b6000546001600160a01b031690565b6001600160a01b0316146124915760405162461bcd60e51b8152600401610eb990613c8c565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610eb9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b336125646000546001600160a01b031690565b6001600160a01b03161461258a5760405162461bcd60e51b8152600401610eb990613c8c565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291016115fb565b336125f96000546001600160a01b031690565b6001600160a01b03161461261f5760405162461bcd60e51b8152600401610eb990613c8c565b602280546001600160a01b0319166001600160a01b0383169081179091556040519081527f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af90602001610fb5565b6001600160a01b0383166126b75760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610eb9565b6001600160a01b0382166126ff5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610eb9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166127ab5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610eb9565b6001600160a01b0382166127f45760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610eb9565b601f5462010000900460ff1615612881576001600160a01b03831660009081526006602052604090205460ff1615801561284757506001600160a01b03821660009081526006602052604090205460ff16155b6128815760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610eb9565b6001600160a01b03831660009081526004602052604090205460ff16806128c057506001600160a01b03821660009081526004602052604090205460ff165b156128d5576128d0838383612bba565b505050565b6000601254116129275760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610eb9565b6128d0838383612cbb565b601f805460ff191660019081179091553060009081526020919091526040812054600f54600e549192916129669190613e22565b601054602080546001600160a01b0316600090815260019091526040812054929350916103e89161299691613dca565b6129a09190613de9565b9050816000036129b257505050612bad565b83156129ce5750306000908152600160205260409020546129de565b808310156129de57505050612bad565b60006129e86114d6565b612a0a5782600e54836129fb9190613dca565b612a059190613de9565b612a0d565b60005b90506000612a1b8284613e0b565b90506000612a2a600284613de9565b90506000612a388383613e22565b905047612a4482613416565b6000612a508247613e0b565b90508515612a7d57600083612a658684613dca565b612a6f9190613de9565b9050612a7b858261358f565b505b6000606460155447612a8f9190613dca565b612a999190613de9565b90506000606460135447612aad9190613dca565b612ab79190613de9565b90506000606460145447612acb9190613dca565b612ad59190613de9565b90508215612b34576021546040516000916001600160a01b03169085908381818185875af1925050503d8060008114612b2a576040519150601f19603f3d011682016040523d82523d6000602084013e612b2f565b606091505b505050505b8115612b91576022546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612b87576040519150601f19603f3d011682016040523d82523d6000602084013e612b8c565b606091505b505050505b8015612ba057612ba08161364d565b5050505050505050505050505b50601f805460ff19169055565b6001600160a01b03831660009081526001602052604090205481811015612c1e5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610eb9565b6001600160a01b03841660009081526001602052604081208054849290612c46908490613e0b565b90915550506001600160a01b03831660009081526001602052604081208054849290612c73908490613e22565b92505081905550826001600160a01b0316846001600160a01b031660008051602061400883398151915284604051612cad91815260200190565b60405180910390a350505050565b6001600160a01b03831660009081526001602052604090205481811015612d1f5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610eb9565b6001600160a01b03841660009081526003602052604081205460ff1680612d5e57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612d87575080155b15612e3457601754831115612dae5760405162461bcd60e51b8152600401610eb990613e9f565b6001600160a01b038416600090815260016020526040902054601654612dd48583613e22565b1115612e2e5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610eb9565b50612e81565b6001600160a01b03841660009081526005602052604090205460ff168015612e5a575080155b15612e8157601754831115612e815760405162461bcd60e51b8152600401610eb990613e9f565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156130cf57601254600190612ec3908290613e22565b421015612ed857612ed58160c86137a9565b91505b601f54640100000000900460ff168015612f0a57506001600160a01b03891660009081526008602052604090205460ff165b156130c357600b54601e546001600160a01b038b166000908152600760205260409020600101549193504291612f409190613e22565b1115612ff6576001600160a01b038916600090815260076020526040812054612f6a908990613e22565b6001600160a01b038b16600090815260076020526040902060020154909150811115612fd85760405162461bcd60e51b815260206004820181905260248201527f53656c6c20616d6f756e742065786365656473206461696c79206c696d69742e6044820152606401610eb9565b6001600160a01b038a166000908152600760205260409020556130c9565b612710601d5461301b8b6001600160a01b031660009081526001602052604090205490565b6130259190613dca565b61302f9190613de9565b6001600160a01b038a16600090815260076020526040902060020181905587111561309c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c20616d6f756e742065786365656473206461696c79206c696d69742e6044820152606401610eb9565b6001600160a01b0389166000908152600760205260409020878155426001909101556130c9565b600a5491505b506131f7565b821561314357601f5465010000000000900460ff161561310e576001600160a01b03871660009081526008602052604090205460ff1661310e57600080fd5b60125460019061311f908290613e22565b42101561313957613132816103e76137a9565b91506130c9565b50506009546131f7565b601f54640100000000900460ff16158061319a57506001600160a01b03871660009081526008602052604090205460ff1615801561319a57506001600160a01b03881660009081526008602052604090205460ff16155b6131f25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f742073656e6420746f6b656e7320746f206120666c6f6f7220686f604482015263363232b960e11b6064820152608401610eb9565b50600c545b6020546001600160a01b0389811691161480159061321d5750601f54610100900460ff16155b801561322c5750601f5460ff16155b1561323b5761323b6000612932565b601f5460ff1615801561326657506001600160a01b03871660009081526005602052604090205460ff165b801561327b5750601f546301000000900460ff165b80156132965750601954601a546132929190613e22565b4210155b156132a5576132a36137ef565b505b60006132b48783600d5461398b565b905060006132d28884600e54600f546132cd9190613e22565b61398b565b905060006132e08284613e22565b6132ea908a613e0b565b6001600160a01b038c16600090815260016020526040812080549293508b92909190613317908490613e0b565b9091555050306000908152600160205260408120805484929061333b908490613e22565b909155505061dead60009081526001602052600080516020613fe8833981519152805485929061336c908490613e22565b90915550506001600160a01b038a1660009081526001602052604081208054839290613399908490613e22565b909155505060405183815261dead906001600160a01b038d16906000805160206140088339815191529060200160405180910390a3896001600160a01b03168b6001600160a01b03166000805160206140088339815191528360405161340191815260200190565b60405180910390a35050505050505050505050565b601f54613435903090600160301b90046001600160a01b03168361266d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061346a5761346a613e70565b60200260200101906001600160a01b031690816001600160a01b031681525050601f60069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135019190613ee7565b8160018151811061351457613514613e70565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b8152600160301b9091049091169063791ac94790613563908590600090869030904290600401613f48565b600060405180830381600087803b15801561357d57600080fd5b505af19250505080156128d057505050565b601f546135ae903090600160301b90046001600160a01b03168461266d565b601f5460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a4820152600160301b9091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015613621573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136469190613f84565b5050505050565b604080516002808252606082018352600092602083019080368337019050509050601f60069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e59190613ee7565b816000815181106136f8576136f8613e70565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061372c5761372c613e70565b6001600160a01b039283166020918202929092010152601f5460405163b6f9de9560e01b8152600160301b9091049091169063b6f9de9590849061377d90600090869061dead904290600401613fb2565b6000604051808303818588803b15801561379657600080fd5b505af1935050505080156128d057505050565b600080601254426137ba9190613e0b565b905083816137c9603286613e0b565b6137d39190613dca565b6137dd9190613de9565b6137e79084613e0b565b949350505050565b42601a556020546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015613840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138649190613e3a565b90506000612710601854836138799190613dca565b6138839190613de9565b905080156138f65761dead60009081526001602052600080516020613fe883398151915280548392906138b7908490613e22565b909155505060205460405161dead916001600160a01b031690600080516020614008833981519152906138ed9085815260200190565b60405180910390a35b6020546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561394057600080fd5b505af1158015613954573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b60006139996103e880613dca565b826139a48587613dca565b6139ae9190613dca565b6137e79190613de9565b600060208083528351808285015260005b818110156139e5578581018301518582016040015282016139c9565b818111156139f7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114613a2257600080fd5b50565b60008060408385031215613a3857600080fd5b8235613a4381613a0d565b946020939093013593505050565b600060208284031215613a6357600080fd5b5035919050565b8015158114613a2257600080fd5b600060208284031215613a8a57600080fd5b81356112c981613a6a565b600080600060608486031215613aaa57600080fd5b8335613ab581613a0d565b92506020840135613ac581613a0d565b929592945050506040919091013590565b600060208284031215613ae857600080fd5b81356112c981613a0d565b60008060408385031215613b0657600080fd5b8235613b1181613a0d565b91506020830135613b2181613a6a565b809150509250929050565b60008060008060808587031215613b4257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215613b7357600080fd5b83359250602084013591506040840135613b8c81613a6a565b809150509250925092565b600080600060408486031215613bac57600080fd5b833567ffffffffffffffff80821115613bc457600080fd5b818601915086601f830112613bd857600080fd5b813581811115613be757600080fd5b8760208260051b8501011115613bfc57600080fd5b60209283019550935050840135613b8c81613a6a565b600080600080600080600060e0888a031215613c2d57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613c7157600080fd5b8235613c7c81613a0d565b91506020830135613b2181613a0d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613d12578160001904821115613cf857613cf8613cc1565b80851615613d0557918102915b93841c9390800290613cdc565b509250929050565b600082613d2957506001610e7a565b81613d3657506000610e7a565b8160018114613d4c5760028114613d5657613d72565b6001915050610e7a565b60ff841115613d6757613d67613cc1565b50506001821b610e7a565b5060208310610133831016604e8410600b8410161715613d95575081810a610e7a565b613d9f8383613cd7565b8060001904821115613db357613db3613cc1565b029392505050565b60006112c960ff841683613d1a565b6000816000190483118215151615613de457613de4613cc1565b500290565b600082613e0657634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613e1d57613e1d613cc1565b500390565b60008219821115613e3557613e35613cc1565b500190565b600060208284031215613e4c57600080fd5b5051919050565b600060208284031215613e6557600080fd5b81516112c981613a6a565b634e487b7160e01b600052603260045260246000fd5b600060018201613e9857613e98613cc1565b5060010190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b600060208284031215613ef957600080fd5b81516112c981613a0d565b600081518084526020808501945080840160005b83811015613f3d5781516001600160a01b031687529582019590820190600101613f18565b509495945050505050565b85815284602082015260a060408201526000613f6760a0830186613f04565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215613f9957600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000613fcb6080830186613f04565b6001600160a01b0394909416604083015250606001529291505056feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204eb8c6a4040b8fcea8c94c300e77a8f0523e09abd0e6815841174340b7c2cde964736f6c634300080f0033
0x608060405260286009556032600a8190556063600b556000600c5560f9600d556001600e8190556102ee600f9081556002601055606460115560135560416014908155601555601891909155601955610708601b556103e8601d5562015180601e55601f805465ffffffff00001916650101010100001790553480156200008557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000620000d76012600a620004e7565b620000e890644d9c370555620004ff565b336000818152600160205260408082208490555192935090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001319085815260200190565b60405180910390a3601f8054797a250d5630b4cf539739df2c5dacb4c659f2488d000000000000600160301b600160d01b031990911617908190556040805163c45a015560e01b8152905166010000000000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000521565b6001600160a01b031663c9c6539630601f60069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c919062000521565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e0919062000521565b602080546001600160a01b03929092166001600160a01b0319928316811782556000908152600582526040808220805460ff1990811660019081179092556021805487167336385daa46aa351e6cc2533bb76e9cfcc1f4013290811790915560228054909716179095553383526004845281832080548616821790557f1fc5acd025f7cc5cf2691b667dba808b5a149bf27192c208fc66f1f0ec4222d78054861682179055308352818320805486168217905560039093527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805485168417905590208054909216179055506200054c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004295781600019048211156200040d576200040d620003d2565b808516156200041b57918102915b93841c9390800290620003ed565b509250929050565b6000826200044257506001620004e1565b816200045157506000620004e1565b81600181146200046a5760028114620004755762000495565b6001915050620004e1565b60ff841115620004895762000489620003d2565b50506001821b620004e1565b5060208310610133831016604e8410600b8410161715620004ba575081810a620004e1565b620004c68383620003e8565b8060001904821115620004dd57620004dd620003d2565b0290505b92915050565b6000620004f860ff84168362000431565b9392505050565b60008160001904831182151516156200051c576200051c620003d2565b500290565b6000602082840312156200053457600080fd5b81516001600160a01b0381168114620004f857600080fd5b61405d806200055c6000396000f3fe60806040526004361061046c5760003560e01c806375f0a8741161024a578063bbde77c111610139578063dbe66ca0116100b6578063e9d9e4fc1161007a578063e9d9e4fc14610db9578063f2fde38b14610dd9578063f7942b6314610df9578063fe575a8714610e19578063ff90061214610e4957600080fd5b8063dbe66ca014610cf7578063dd62ed3e14610d27578063df10b50814610d6d578063e0d2f9eb14610d83578063e52fb9ec14610da357600080fd5b8063c8c8ebe4116100fd578063c8c8ebe414610c65578063cc1776d314610c7b578063cfd1940e14610c91578063d24cd3ec14610cb1578063d46b6a3014610cc757600080fd5b8063bbde77c114610bcc578063bc43d84914610be2578063be617fa014610c02578063bfd8a75614610c18578063c3f4f54f14610c3857600080fd5b806395d89b41116101c7578063a9059cbb1161018b578063a9059cbb14610b30578063addc6c4814610b50578063aed04fae14610b80578063b40d09e214610b96578063b8668fbe14610bac57600080fd5b806395d89b4114610a9857806398d7e72114610ac45780639ec22c0e14610ae4578063a457c2d714610afa578063a4c82a0014610b1a57600080fd5b8063893d20e81161020e578063893d20e814610a1a578063896648c114610a3857806389ce89f914610a585780638da5cb5b14610a1a5780638ea5220f14610a7857600080fd5b806375f0a8741461098e5780637e47be79146109ae5780638124f7ac146109c4578063817d4bff146109da578063868b0141146109fa57600080fd5b80632c92293c1161036657806354bdc753116102e35780636c933f74116102a75780636c933f74146108ee57806370a082311461090e5780637115d00e14610944578063715018a614610959578063730c18881461096e57600080fd5b806354bdc753146107e857806358b6b904146108085780635cce86cd146108285780635cd0a874146108615780636386c1c71461087757600080fd5b806341aec3571161032a57806341aec3571461076957806346e35f031461077e5780634f7041a5146107935780635149f984146107a957806351bc3c85146107c957600080fd5b80632c92293c146106d65780632e82f1a0146106f6578063313ce5671461071757806333d6867814610733578063395093511461074957600080fd5b8063199ffc72116103f45780631f3d14f2116103b85780631f3d14f21461064957806323b872dd1461066b57806326254a861461068b5780632b112e49146106ab5780632c3e486c146106c057600080fd5b8063199ffc72146105c85780631a80029d146105de5780631d4eaead146105fe5780631d97b7cd146106145780631e293c101461062957600080fd5b80630c305c2c1161043b5780630c305c2c146105425780630eff4c6414610565578063114cfaf61461057b57806318160ddd1461059d578063184c16c5146105b257600080fd5b8063062287491461047857806306fdde03146104ab57806309218ee7146104ee578063095ea7b31461051257600080fd5b3661047357005b600080fd5b34801561048457600080fd5b5061048e61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156104b757600080fd5b506040805180820190915260118152702a3434b932102232b3b932b290213ab93760791b60208201525b6040516104a291906139b8565b3480156104fa57600080fd5b5061050460155481565b6040519081526020016104a2565b34801561051e57600080fd5b5061053261052d366004613a25565b610e69565b60405190151581526020016104a2565b34801561054e57600080fd5b50601f546105329065010000000000900460ff1681565b34801561057157600080fd5b5061050460115481565b34801561058757600080fd5b5061059b610596366004613a51565b610e80565b005b3480156105a957600080fd5b50610504610f0f565b3480156105be57600080fd5b50610504601b5481565b3480156105d457600080fd5b5061050460185481565b3480156105ea57600080fd5b5061059b6105f9366004613a78565b610f31565b34801561060a57600080fd5b50610504600d5481565b34801561062057600080fd5b5061059b610fc0565b34801561063557600080fd5b5061059b610644366004613a51565b6110d8565b34801561065557600080fd5b50601f5461053290640100000000900460ff1681565b34801561067757600080fd5b50610532610686366004613a95565b6111f1565b34801561069757600080fd5b506105046106a6366004613ad6565b611288565b3480156106b757600080fd5b506105046112d9565b3480156106cc57600080fd5b5061050460195481565b3480156106e257600080fd5b5061059b6106f1366004613a51565b61131b565b34801561070257600080fd5b50601f54610532906301000000900460ff1681565b34801561072357600080fd5b50604051601281526020016104a2565b34801561073f57600080fd5b50610504601e5481565b34801561075557600080fd5b50610532610764366004613a25565b611431565b34801561077557600080fd5b5061059b611468565b34801561078a57600080fd5b506105326114d6565b34801561079f57600080fd5b5061050460095481565b3480156107b557600080fd5b5061059b6107c4366004613af3565b61151c565b3480156107d557600080fd5b50601f5461053290610100900460ff1681565b3480156107f457600080fd5b5061059b610803366004613a78565b611607565b34801561081457600080fd5b5061059b610823366004613b2c565b611660565b34801561083457600080fd5b50610532610843366004613ad6565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561086d57600080fd5b50610504601d5481565b34801561088357600080fd5b506108d3610892366004613ad6565b6001600160a01b0316600090815260076020908152604091829020825160608101845281548082526001830154938201849052600290920154930183905292565b604080519384526020840192909252908201526060016104a2565b3480156108fa57600080fd5b5061059b610909366004613a51565b61171c565b34801561091a57600080fd5b50610504610929366004613ad6565b6001600160a01b031660009081526001602052604090205490565b34801561095057600080fd5b5061059b6117ad565b34801561096557600080fd5b5061059b6118f9565b34801561097a57600080fd5b5061059b610989366004613b5e565b61197c565b34801561099a57600080fd5b5060215461048e906001600160a01b031681565b3480156109ba57600080fd5b50610504600b5481565b3480156109d057600080fd5b50610504600c5481565b3480156109e657600080fd5b5061059b6109f5366004613ad6565b611abf565b348015610a0657600080fd5b5061059b610a15366004613a78565b611b46565b348015610a2657600080fd5b506000546001600160a01b031661048e565b348015610a4457600080fd5b50601f546105329062010000900460ff1681565b348015610a6457600080fd5b5061059b610a73366004613b97565b611bc8565b348015610a8457600080fd5b5060225461048e906001600160a01b031681565b348015610aa457600080fd5b5060408051808201909152600381526219a22160e91b60208201526104e1565b348015610ad057600080fd5b50610532610adf366004613a51565b611c9f565b348015610af057600080fd5b50610504601c5481565b348015610b0657600080fd5b50610532610b15366004613a25565b611f34565b348015610b2657600080fd5b50610504601a5481565b348015610b3c57600080fd5b50610532610b4b366004613a25565b611fb0565b348015610b5c57600080fd5b50610532610b6b366004613ad6565b60086020526000908152604090205460ff1681565b348015610b8c57600080fd5b5061050460135481565b348015610ba257600080fd5b5061050460125481565b348015610bb857600080fd5b5061059b610bc7366004613c12565b611fbd565b348015610bd857600080fd5b5061050460165481565b348015610bee57600080fd5b5061059b610bfd366004613a51565b612169565b348015610c0e57600080fd5b50610504600e5481565b348015610c2457600080fd5b5061059b610c33366004613a78565b6121e6565b348015610c4457600080fd5b5061dead6000526001602052600080516020613fe883398151915254610504565b348015610c7157600080fd5b5061050460175481565b348015610c8757600080fd5b50610504600a5481565b348015610c9d57600080fd5b5061059b610cac366004613a51565b612241565b348015610cbd57600080fd5b50610504600f5481565b348015610cd357600080fd5b50610532610ce2366004613ad6565b60056020526000908152604090205460ff1681565b348015610d0357600080fd5b50610532610d12366004613ad6565b60046020526000908152604090205460ff1681565b348015610d3357600080fd5b50610504610d42366004613c5e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610d7957600080fd5b5061050460145481565b348015610d8f57600080fd5b5061059b610d9e366004613af3565b6122bd565b348015610daf57600080fd5b5061050460105481565b348015610dc557600080fd5b5061059b610dd4366004613b97565b6123aa565b348015610de557600080fd5b5061059b610df4366004613ad6565b612458565b348015610e0557600080fd5b5061059b610e14366004613af3565b612551565b348015610e2557600080fd5b50610532610e34366004613ad6565b60066020526000908152604090205460ff1681565b348015610e5557600080fd5b5061059b610e64366004613ad6565b6125e6565b6000610e7633848461266d565b5060015b92915050565b33610e936000546001600160a01b031690565b6001600160a01b031614610ec25760405162461bcd60e51b8152600401610eb990613c8c565b60405180910390fd5b6064811015610f0a5760405162461bcd60e51b815260206004820152601460248201527321b0b73737ba1039b2ba103132b637bb9018929760611b6044820152606401610eb9565b601d55565b6000610f1d6012600a613dbb565b610f2c90644d9c370555613dca565b905090565b33610f446000546001600160a01b031690565b6001600160a01b031614610f6a5760405162461bcd60e51b8152600401610eb990613c8c565b601f8054821515620100000262ff0000199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610fb590831515815260200190565b60405180910390a150565b33610fd36000546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610eb990613c8c565b6012541561103b5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610eb9565b4260129081556103e89061105090600a613dbb565b61105f90644d9c370555613dca565b61106a90600a613dca565b6110749190613de9565b6016556127106110866012600a613dbb565b61109590644d9c370555613dca565b6110a0906064613dca565b6110aa9190613de9565b6017556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b336110eb6000546001600160a01b031690565b6001600160a01b0316146111115760405162461bcd60e51b8152600401610eb990613c8c565b601981101561114e5760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610eb9565b61271081111561118b5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610eb9565b6127108161119b6012600a613dbb565b6111aa90644d9c370555613dca565b6111b49190613dca565b6111be9190613de9565b6017556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac90602001610fb5565b60006111fe848484612760565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156112695760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610eb9565b61127d85336112788685613e0b565b61266d565b506001949350505050565b601e546001600160a01b038216600090815260076020526040812060010154909182916112b59190613e22565b9050428111156112d0576112c94282613e0b565b9392505050565b50600092915050565b61dead60009081526001602052600080516020613fe8833981519152546113026012600a613dbb565b61131190644d9c370555613dca565b610f2c9190613e0b565b3361132e6000546001600160a01b031690565b6001600160a01b0316146113545760405162461bcd60e51b8152600401610eb990613c8c565b600a81101561138e5760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610eb9565b6103e88111156113cb5760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610eb9565b6103e8816113db6012600a613dbb565b6113ea90644d9c370555613dca565b6113f49190613dca565b6113fe9190613de9565b6016556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610fb5565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610e76918590611278908690613e22565b3361147b6000546001600160a01b031690565b6001600160a01b0316146114a15760405162461bcd60e51b8152600401610eb990613c8c565b6114ab6001612932565b6040517f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f90600090a1565b60006103e86011546114e66112d9565b6114f09190613dca565b6114fa9190613de9565b602080546001600160a01b031660009081526001909152604090205411919050565b3361152f6000546001600160a01b031690565b6001600160a01b0316146115555760405162461bcd60e51b8152600401610eb990613c8c565b6020546001600160a01b03908116908316036115aa5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610eb9565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151517905590519182527fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f091015b60405180910390a15050565b3361161a6000546001600160a01b031690565b6001600160a01b0316146116405760405162461bcd60e51b8152600401610eb990613c8c565b601f80549115156401000000000264ff0000000019909216919091179055565b336116736000546001600160a01b031690565b6001600160a01b0316146116995760405162461bcd60e51b8152600401610eb990613c8c565b606481836116a78688613e22565b6116b19190613e22565b6116bb9190613e22565b11156116c657600080fd5b60138490556015839055601482905560408051858152602081018590529081018390527ff81b1f9d8b5d36a5a67d13006a8b091a9b63e2a38b331d315d99c6daefd2ddcc9060600160405180910390a150505050565b3361172f6000546001600160a01b031690565b6001600160a01b0316146117555760405162461bcd60e51b8152600401610eb990613c8c565b620151808111156117a85760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207365742061626f766520323420686f7572732e0000000000006044820152606401610eb9565b601e55565b336117c06000546001600160a01b031690565b6001600160a01b0316146117e65760405162461bcd60e51b8152600401610eb990613c8c565b6020546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190613e3a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156118a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cb9190613e53565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b3361190c6000546001600160a01b031690565b6001600160a01b0316146119325760405162461bcd60e51b8152600401610eb990613c8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361198f6000546001600160a01b031690565b6001600160a01b0316146119b55760405162461bcd60e51b8152600401610eb990613c8c565b610258831015611a235760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610eb9565b6103e88211158015611a33575060015b611a985760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610eb9565b601992909255601855601f805491151563010000000263ff00000019909216919091179055565b33611ad26000546001600160a01b031690565b6001600160a01b031614611af85760405162461bcd60e51b8152600401610eb990613c8c565b602180546001600160a01b0319166001600160a01b0383169081179091556040519081527f9e42de18c651175b949c09ca698a4cf63aa023f4038a9ed83bd882c7d6f8fb6490602001610fb5565b33611b596000546001600160a01b031690565b6001600160a01b031614611b7f5760405162461bcd60e51b8152600401610eb990613c8c565b601f80548215156101000261ff00199091161790556040517faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e11507082190610fb590831515815260200190565b33611bdb6000546001600160a01b031690565b6001600160a01b031614611c015760405162461bcd60e51b8152600401610eb990613c8c565b60005b82811015611c70578160066000868685818110611c2357611c23613e70565b9050602002016020810190611c389190613ad6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611c6981613e86565b9050611c04565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b600033611cb46000546001600160a01b031690565b6001600160a01b031614611cda5760405162461bcd60e51b8152600401610eb990613c8c565b601b54601c54611cea9190613e22565b4211611d385760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610eb9565b6103e8821115611d9d5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610eb9565b42601c556020546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e109190613e3a565b90506000612710611e218584613dca565b611e2b9190613de9565b90508015611e9e5761dead60009081526001602052600080516020613fe88339815191528054839290611e5f908490613e22565b909155505060205460405161dead916001600160a01b03169060008051602061400883398151915290611e959085815260200190565b60405180910390a35b6020546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015611f975760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610eb9565b611fa633856112788685613e0b565b5060019392505050565b6000610e76338484612760565b33611fd06000546001600160a01b031690565b6001600160a01b031614611ff65760405162461bcd60e51b8152600401610eb990613c8c565b6000612005600a6103e8613de9565b90508088111580156120175750808711155b80156120235750808611155b801561202f5750808211155b6120705760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610eb9565b6103e88361207e8688613e22565b6120889190613e22565b146120df5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610eb9565b6009889055600a879055600b829055600c869055600f849055600e839055600d8590556040805189815260208101899052908101879052606081018690526080810185905260a0810184905260c081018390527f6cdd0b254c12e6e079483ac4d60596517e9d8df83e5b35a3f23ad869581c44229060e00160405180910390a15050505050505050565b3361217c6000546001600160a01b031690565b6001600160a01b0316146121a25760405162461bcd60e51b8152600401610eb990613c8c565b6103e88111156121b157600080fd5b60118190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610fb5565b336121f96000546001600160a01b031690565b6001600160a01b03161461221f5760405162461bcd60e51b8152600401610eb990613c8c565b601f8054911515650100000000000265ff000000000019909216919091179055565b336122546000546001600160a01b031690565b6001600160a01b03161461227a5760405162461bcd60e51b8152600401610eb990613c8c565b600a81111561228857600080fd5b60108190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610fb5565b336122d06000546001600160a01b031690565b6001600160a01b0316146122f65760405162461bcd60e51b8152600401610eb990613c8c565b306001600160a01b0383160361234e5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610eb9565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed491016115fb565b336123bd6000546001600160a01b031690565b6001600160a01b0316146123e35760405162461bcd60e51b8152600401610eb990613c8c565b60005b8281101561245257816008600086868581811061240557612405613e70565b905060200201602081019061241a9190613ad6565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561244b81613e86565b90506123e6565b50505050565b3361246b6000546001600160a01b031690565b6001600160a01b0316146124915760405162461bcd60e51b8152600401610eb990613c8c565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610eb9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b336125646000546001600160a01b031690565b6001600160a01b03161461258a5760405162461bcd60e51b8152600401610eb990613c8c565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291016115fb565b336125f96000546001600160a01b031690565b6001600160a01b03161461261f5760405162461bcd60e51b8152600401610eb990613c8c565b602280546001600160a01b0319166001600160a01b0383169081179091556040519081527f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af90602001610fb5565b6001600160a01b0383166126b75760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610eb9565b6001600160a01b0382166126ff5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610eb9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166127ab5760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610eb9565b6001600160a01b0382166127f45760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610eb9565b601f5462010000900460ff1615612881576001600160a01b03831660009081526006602052604090205460ff1615801561284757506001600160a01b03821660009081526006602052604090205460ff16155b6128815760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610eb9565b6001600160a01b03831660009081526004602052604090205460ff16806128c057506001600160a01b03821660009081526004602052604090205460ff165b156128d5576128d0838383612bba565b505050565b6000601254116129275760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610eb9565b6128d0838383612cbb565b601f805460ff191660019081179091553060009081526020919091526040812054600f54600e549192916129669190613e22565b601054602080546001600160a01b0316600090815260019091526040812054929350916103e89161299691613dca565b6129a09190613de9565b9050816000036129b257505050612bad565b83156129ce5750306000908152600160205260409020546129de565b808310156129de57505050612bad565b60006129e86114d6565b612a0a5782600e54836129fb9190613dca565b612a059190613de9565b612a0d565b60005b90506000612a1b8284613e0b565b90506000612a2a600284613de9565b90506000612a388383613e22565b905047612a4482613416565b6000612a508247613e0b565b90508515612a7d57600083612a658684613dca565b612a6f9190613de9565b9050612a7b858261358f565b505b6000606460155447612a8f9190613dca565b612a999190613de9565b90506000606460135447612aad9190613dca565b612ab79190613de9565b90506000606460145447612acb9190613dca565b612ad59190613de9565b90508215612b34576021546040516000916001600160a01b03169085908381818185875af1925050503d8060008114612b2a576040519150601f19603f3d011682016040523d82523d6000602084013e612b2f565b606091505b505050505b8115612b91576022546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612b87576040519150601f19603f3d011682016040523d82523d6000602084013e612b8c565b606091505b505050505b8015612ba057612ba08161364d565b5050505050505050505050505b50601f805460ff19169055565b6001600160a01b03831660009081526001602052604090205481811015612c1e5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610eb9565b6001600160a01b03841660009081526001602052604081208054849290612c46908490613e0b565b90915550506001600160a01b03831660009081526001602052604081208054849290612c73908490613e22565b92505081905550826001600160a01b0316846001600160a01b031660008051602061400883398151915284604051612cad91815260200190565b60405180910390a350505050565b6001600160a01b03831660009081526001602052604090205481811015612d1f5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610eb9565b6001600160a01b03841660009081526003602052604081205460ff1680612d5e57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612d87575080155b15612e3457601754831115612dae5760405162461bcd60e51b8152600401610eb990613e9f565b6001600160a01b038416600090815260016020526040902054601654612dd48583613e22565b1115612e2e5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610eb9565b50612e81565b6001600160a01b03841660009081526005602052604090205460ff168015612e5a575080155b15612e8157601754831115612e815760405162461bcd60e51b8152600401610eb990613e9f565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156130cf57601254600190612ec3908290613e22565b421015612ed857612ed58160c86137a9565b91505b601f54640100000000900460ff168015612f0a57506001600160a01b03891660009081526008602052604090205460ff165b156130c357600b54601e546001600160a01b038b166000908152600760205260409020600101549193504291612f409190613e22565b1115612ff6576001600160a01b038916600090815260076020526040812054612f6a908990613e22565b6001600160a01b038b16600090815260076020526040902060020154909150811115612fd85760405162461bcd60e51b815260206004820181905260248201527f53656c6c20616d6f756e742065786365656473206461696c79206c696d69742e6044820152606401610eb9565b6001600160a01b038a166000908152600760205260409020556130c9565b612710601d5461301b8b6001600160a01b031660009081526001602052604090205490565b6130259190613dca565b61302f9190613de9565b6001600160a01b038a16600090815260076020526040902060020181905587111561309c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c20616d6f756e742065786365656473206461696c79206c696d69742e6044820152606401610eb9565b6001600160a01b0389166000908152600760205260409020878155426001909101556130c9565b600a5491505b506131f7565b821561314357601f5465010000000000900460ff161561310e576001600160a01b03871660009081526008602052604090205460ff1661310e57600080fd5b60125460019061311f908290613e22565b42101561313957613132816103e76137a9565b91506130c9565b50506009546131f7565b601f54640100000000900460ff16158061319a57506001600160a01b03871660009081526008602052604090205460ff1615801561319a57506001600160a01b03881660009081526008602052604090205460ff16155b6131f25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f742073656e6420746f6b656e7320746f206120666c6f6f7220686f604482015263363232b960e11b6064820152608401610eb9565b50600c545b6020546001600160a01b0389811691161480159061321d5750601f54610100900460ff16155b801561322c5750601f5460ff16155b1561323b5761323b6000612932565b601f5460ff1615801561326657506001600160a01b03871660009081526005602052604090205460ff165b801561327b5750601f546301000000900460ff165b80156132965750601954601a546132929190613e22565b4210155b156132a5576132a36137ef565b505b60006132b48783600d5461398b565b905060006132d28884600e54600f546132cd9190613e22565b61398b565b905060006132e08284613e22565b6132ea908a613e0b565b6001600160a01b038c16600090815260016020526040812080549293508b92909190613317908490613e0b565b9091555050306000908152600160205260408120805484929061333b908490613e22565b909155505061dead60009081526001602052600080516020613fe8833981519152805485929061336c908490613e22565b90915550506001600160a01b038a1660009081526001602052604081208054839290613399908490613e22565b909155505060405183815261dead906001600160a01b038d16906000805160206140088339815191529060200160405180910390a3896001600160a01b03168b6001600160a01b03166000805160206140088339815191528360405161340191815260200190565b60405180910390a35050505050505050505050565b601f54613435903090600160301b90046001600160a01b03168361266d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061346a5761346a613e70565b60200260200101906001600160a01b031690816001600160a01b031681525050601f60069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135019190613ee7565b8160018151811061351457613514613e70565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b8152600160301b9091049091169063791ac94790613563908590600090869030904290600401613f48565b600060405180830381600087803b15801561357d57600080fd5b505af19250505080156128d057505050565b601f546135ae903090600160301b90046001600160a01b03168461266d565b601f5460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a4820152600160301b9091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015613621573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136469190613f84565b5050505050565b604080516002808252606082018352600092602083019080368337019050509050601f60069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136e59190613ee7565b816000815181106136f8576136f8613e70565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061372c5761372c613e70565b6001600160a01b039283166020918202929092010152601f5460405163b6f9de9560e01b8152600160301b9091049091169063b6f9de9590849061377d90600090869061dead904290600401613fb2565b6000604051808303818588803b15801561379657600080fd5b505af1935050505080156128d057505050565b600080601254426137ba9190613e0b565b905083816137c9603286613e0b565b6137d39190613dca565b6137dd9190613de9565b6137e79084613e0b565b949350505050565b42601a556020546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015613840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138649190613e3a565b90506000612710601854836138799190613dca565b6138839190613de9565b905080156138f65761dead60009081526001602052600080516020613fe883398151915280548392906138b7908490613e22565b909155505060205460405161dead916001600160a01b031690600080516020614008833981519152906138ed9085815260200190565b60405180910390a35b6020546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561394057600080fd5b505af1158015613954573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b60006139996103e880613dca565b826139a48587613dca565b6139ae9190613dca565b6137e79190613de9565b600060208083528351808285015260005b818110156139e5578581018301518582016040015282016139c9565b818111156139f7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114613a2257600080fd5b50565b60008060408385031215613a3857600080fd5b8235613a4381613a0d565b946020939093013593505050565b600060208284031215613a6357600080fd5b5035919050565b8015158114613a2257600080fd5b600060208284031215613a8a57600080fd5b81356112c981613a6a565b600080600060608486031215613aaa57600080fd5b8335613ab581613a0d565b92506020840135613ac581613a0d565b929592945050506040919091013590565b600060208284031215613ae857600080fd5b81356112c981613a0d565b60008060408385031215613b0657600080fd5b8235613b1181613a0d565b91506020830135613b2181613a6a565b809150509250929050565b60008060008060808587031215613b4257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215613b7357600080fd5b83359250602084013591506040840135613b8c81613a6a565b809150509250925092565b600080600060408486031215613bac57600080fd5b833567ffffffffffffffff80821115613bc457600080fd5b818601915086601f830112613bd857600080fd5b813581811115613be757600080fd5b8760208260051b8501011115613bfc57600080fd5b60209283019550935050840135613b8c81613a6a565b600080600080600080600060e0888a031215613c2d57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613c7157600080fd5b8235613c7c81613a0d565b91506020830135613b2181613a0d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613d12578160001904821115613cf857613cf8613cc1565b80851615613d0557918102915b93841c9390800290613cdc565b509250929050565b600082613d2957506001610e7a565b81613d3657506000610e7a565b8160018114613d4c5760028114613d5657613d72565b6001915050610e7a565b60ff841115613d6757613d67613cc1565b50506001821b610e7a565b5060208310610133831016604e8410600b8410161715613d95575081810a610e7a565b613d9f8383613cd7565b8060001904821115613db357613db3613cc1565b029392505050565b60006112c960ff841683613d1a565b6000816000190483118215151615613de457613de4613cc1565b500290565b600082613e0657634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613e1d57613e1d613cc1565b500390565b60008219821115613e3557613e35613cc1565b500190565b600060208284031215613e4c57600080fd5b5051919050565b600060208284031215613e6557600080fd5b81516112c981613a6a565b634e487b7160e01b600052603260045260246000fd5b600060018201613e9857613e98613cc1565b5060010190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b600060208284031215613ef957600080fd5b81516112c981613a0d565b600081518084526020808501945080840160005b83811015613f3d5781516001600160a01b031687529582019590820190600101613f18565b509495945050505050565b85815284602082015260a060408201526000613f6760a0830186613f04565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215613f9957600080fd5b8351925060208401519150604084015190509250925092565b848152608060208201526000613fcb6080830186613f04565b6001600160a01b0394909416604083015250606001529291505056feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204eb8c6a4040b8fcea8c94c300e77a8f0523e09abd0e6815841174340b7c2cde964736f6c634300080f0033