0x608060405234801561001057600080fd5b506000805460ff60a01b1932166001600160a81b031990911617905560018055613d658061003f6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638456cb591161010f578063d547741f116100a2578063e63ab1e911610071578063e63ab1e914610497578063efef39a1146104be578063f3354b8f146104d1578063f99031a7146104e457600080fd5b8063d547741f14610456578063d94eaba114610469578063dbe55e561461047c578063e0cf9fea1461048f57600080fd5b8063ab033ea9116100de578063ab033ea91461040a578063b418e4f01461041d578063cb33496514610430578063d46938481461044357600080fd5b80638456cb59146103b357806391170da5146103bb57806391d14854146103ce5780639b19251a146103e157600080fd5b80633f4ba83a116101875780635c975abb116101565780635c975abb1461035b5780635e1045ec1461036d578063757699d4146103805780637811920b1461039357600080fd5b80633f4ba83a146102f4578063485cc955146102fc57806348c35ad41461030f57806351bbf59b1461032257600080fd5b806319d5a9e6116101c357806319d5a9e6146102485780631a01e315146102865780631c2f3e3d146102b65780632f2ff15d146102e157600080fd5b8063056c29ee146101ea578063107046bd146101ff57806318fdb3c914610231575b600080fd5b6101fd6101f8366004613460565b610512565b005b61021261020d3660046134fa565b610aec565b6040516102289a999897969594939291906135a3565b60405180910390f35b61023a60085481565b604051908152602001610228565b610276610256366004613640565b600760209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610228565b610299610294366004613640565b610cdb565b604080519315158452602084019290925290820152606001610228565b6000546102c9906001600160a01b031681565b6040516001600160a01b039091168152602001610228565b6101fd6102ef366004613640565b610ffe565b6101fd611036565b6101fd61030a36600461366c565b61106a565b61023a61031d3660046134fa565b611235565b610276610330366004613640565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054600160a01b900460ff16610276565b6101fd61037b3660046136ba565b611256565b6101fd61038e3660046136ba565b611360565b6103a66103a136600461374c565b611447565b60405161022891906137d2565b6101fd611743565b6009546102c9906001600160a01b031681565b6102766103dc366004613640565b6117c5565b6102c96103ef3660046138cd565b6004602052600090815260409020546001600160a01b031681565b6101fd6104183660046138cd565b6117f0565b6101fd61042b3660046134fa565b6118cb565b6101fd61043e3660046138cd565b611c57565b6101fd6104513660046134fa565b611ce4565b6101fd610464366004613640565b612046565b6101fd6104773660046138e8565b61207a565b600a546102c9906001600160a01b031681565b6103a6612184565b61023a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101fd6104cc3660046134fa565b61276d565b6101fd6104df36600461390a565b612ae8565b6102766104f23660046138cd565b6001600160a01b0390811660009081526004602052604090205416151590565b336000818152600460205260409020546001600160a01b03166105505760405162461bcd60e51b8152600401610547906139ae565b60405180910390fd5b600086511161059d5760405162461bcd60e51b8152602060048201526019602482015278383937b532b1ba103730b6b2903632b733ba341032b93937b960391b6044820152606401610547565b60008551116105e75760405162461bcd60e51b815260206004820152601660248201527534b6b0b3b2903ab936103632b733ba341032b93937b960511b6044820152606401610547565b600083116106375760405162461bcd60e51b815260206004820152601e60248201527f70726963652073686f756c642067726561746572207468616e207a65726f00006044820152606401610547565b600082116106875760405162461bcd60e51b815260206004820152601e60248201527f71756f74612073686f756c642067726561746572207468616e207a65726f00006044820152606401610547565b60006008549050600060066000838152602001908152602001600020604051806101400160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820180546106fb906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610727906139e3565b80156107745780601f1061074957610100808354040283529160200191610774565b820191906000526020600020905b81548152906001019060200180831161075757829003601f168201915b5050505050815260200160078201805461078d906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546107b9906139e3565b80156108065780601f106107db57610100808354040283529160200191610806565b820191906000526020600020905b8154815290600101906020018083116107e957829003601f168201915b5050505050815260200160088201805461081f906139e3565b80601f016020809104026020016040519081016040528092919081815260200182805461084b906139e3565b80156108985780601f1061086d57610100808354040283529160200191610898565b820191906000526020600020905b81548152906001019060200180831161087b57829003601f168201915b5050509183525050600982015460209091019060ff1660038111156108bf576108bf61356b565b60038111156108d0576108d061356b565b9052509050600081610120015160038111156108ee576108ee61356b565b146109345760405162461bcd60e51b815260206004820152601660248201527550726f6a65637420616c72656164792065786973747360501b6044820152606401610547565b604051806101400160405280428152602001428152602001600081526020018581526020018681526020018381526020018981526020018881526020018781526020016001600381111561098a5761098a61356b565b905260058054600181810183557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101859055600085815260066020818152604092839020865181558187015194810194909455918501516002840155606085015160038401556080850151600484015560a08501519383019390935560c0840151805194955085949293610a28939085019291909101906132ad565b5060e08201518051610a449160078401916020909101906132ad565b506101008201518051610a619160088401916020909101906132ad565b5061012082015160098201805460ff19166001836003811115610a8657610a8661356b565b0217905550506008805491506000610a9d83613a34565b9190505550817fcdab6acc8da06e0654eb41c1e759a9190d9aea638841a9bdc6a96bc6b7cfc40b8989888842604051610ada959493929190613a4f565b60405180910390a25050505050505050565b6006602052806000526040600020600091509050806000015490806001015490806002015490806003015490806004015490806005015490806006018054610b33906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5f906139e3565b8015610bac5780601f10610b8157610100808354040283529160200191610bac565b820191906000526020600020905b815481529060010190602001808311610b8f57829003601f168201915b505050505090806007018054610bc1906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed906139e3565b8015610c3a5780601f10610c0f57610100808354040283529160200191610c3a565b820191906000526020600020905b815481529060010190602001808311610c1d57829003601f168201915b505050505090806008018054610c4f906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7b906139e3565b8015610cc85780601f10610c9d57610100808354040283529160200191610cc8565b820191906000526020600020905b815481529060010190602001808311610cab57829003601f168201915b5050506009909301549192505060ff168a565b6009546040516370a0823160e01b81526001600160a01b03838116600483015260009283928392909116906370a0823190602401602060405180830381865afa158015610d2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190613a92565b905060006006600087815260200190815260200160002060405180610140016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054610dbf906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610deb906139e3565b8015610e385780601f10610e0d57610100808354040283529160200191610e38565b820191906000526020600020905b815481529060010190602001808311610e1b57829003601f168201915b50505050508152602001600782018054610e51906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7d906139e3565b8015610eca5780601f10610e9f57610100808354040283529160200191610eca565b820191906000526020600020905b815481529060010190602001808311610ead57829003601f168201915b50505050508152602001600882018054610ee3906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0f906139e3565b8015610f5c5780601f10610f3157610100808354040283529160200191610f5c565b820191906000526020600020905b815481529060010190602001808311610f3f57829003601f168201915b5050509183525050600982015460209091019060ff166003811115610f8357610f8361356b565b6003811115610f9457610f9461356b565b905250905060028161012001516003811115610fb257610fb261356b565b14610fc4576000809350935050610ff7565b60008681526007602090815260408083206001600160a01b038916845290915290205460809091015160ff909116935091505b9250925092565b6000546001600160a01b031633146110285760405162461bcd60e51b815260040161054790613aab565b6110328282612de6565b5050565b6000546001600160a01b031633146110605760405162461bcd60e51b815260040161054790613aab565b611068612e4f565b565b600354610100900460ff166110855760035460ff1615611089565b303b155b6110ec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610547565b600354610100900460ff1615801561110e576003805461ffff19166101011790555b6001600160a01b0383163b6111655760405162461bcd60e51b815260206004820152601860248201527f61776f6f20746f6b656e2061646472657373206572726f7200000000000000006044820152606401610547565b6001600160a01b0382166111b45760405162461bcd60e51b8152602060048201526016602482015275383630ba3337b9369030b2323932b9b99032b93937b960511b6044820152606401610547565b6111de7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33612de6565b60008054336001600160a01b0319918216179091556009805482166001600160a01b0386811691909117909155600a8054909216908416179055611f406008558015611230576003805461ff00191690555b505050565b6005818154811061124557600080fd5b600091825260209091200154905081565b6000546001600160a01b031633146112805760405162461bcd60e51b815260040161054790613aab565b60005b815181101561131b5781818151811061129e5761129e613ad3565b6020026020010151600460008484815181106112bc576112bc613ad3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550808061131390613a34565b915050611283565b50336001600160a01b03167f5e7546b1ffcfbbe49bdc1f598a10dcc5147e70a371cb768d5325001ca8e7a329826040516113559190613ae9565b60405180910390a250565b6000546001600160a01b0316331461138a5760405162461bcd60e51b815260040161054790613aab565b60005b815181101561140d576000600460008484815181106113ae576113ae613ad3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550808061140590613a34565b91505061138d565b50336001600160a01b03167fe4dffcabc60fe93411341cb8ba963c4b94ff3ad12c33b7457ceb950ccee536b4826040516113559190613ae9565b805160609060008167ffffffffffffffff811115611467576114676133a9565b6040519080825280602002602001820160405280156114a057816020015b61148d613331565b8152602001906001900390816114855790505b50905060005b8281101561173b57600660008683815181106114c4576114c4613ad3565b6020026020010151815260200190815260200160002060405180610140016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054611532906139e3565b80601f016020809104026020016040519081016040528092919081815260200182805461155e906139e3565b80156115ab5780601f10611580576101008083540402835291602001916115ab565b820191906000526020600020905b81548152906001019060200180831161158e57829003601f168201915b505050505081526020016007820180546115c4906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546115f0906139e3565b801561163d5780601f106116125761010080835404028352916020019161163d565b820191906000526020600020905b81548152906001019060200180831161162057829003601f168201915b50505050508152602001600882018054611656906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611682906139e3565b80156116cf5780601f106116a4576101008083540402835291602001916116cf565b820191906000526020600020905b8154815290600101906020018083116116b257829003601f168201915b5050509183525050600982015460209091019060ff1660038111156116f6576116f661356b565b60038111156117075761170761356b565b8152505082828151811061171d5761171d613ad3565b6020026020010181905250808061173390613a34565b9150506114a6565b509392505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61176e81336117c5565b6117ba5760405162461bcd60e51b815260206004820152601860248201527f6163636f756e74206973206d697373696e6720726f6c652e00000000000000006044820152606401610547565b6117c2612eec565b50565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000546001600160a01b0316331461181a5760405162461bcd60e51b815260040161054790613aab565b6001600160a01b0381166118705760405162461bcd60e51b815260206004820152601f60248201527f6e657720676f7665726e616e636520746865207a65726f2061646472657373006044820152606401610547565b600080546040516001600160a01b03808516939216917f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152600460205260409020546001600160a01b03166119005760405162461bcd60e51b8152600401610547906139ae565b611f408210156119225760405162461bcd60e51b815260040161054790613b36565b6000600660008481526020019081526020016000206040518061014001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805461198f906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546119bb906139e3565b8015611a085780601f106119dd57610100808354040283529160200191611a08565b820191906000526020600020905b8154815290600101906020018083116119eb57829003601f168201915b50505050508152602001600782018054611a21906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4d906139e3565b8015611a9a5780601f10611a6f57610100808354040283529160200191611a9a565b820191906000526020600020905b815481529060010190602001808311611a7d57829003601f168201915b50505050508152602001600882018054611ab3906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611adf906139e3565b8015611b2c5780601f10611b0157610100808354040283529160200191611b2c565b820191906000526020600020905b815481529060010190602001808311611b0f57829003601f168201915b5050509183525050600982015460209091019060ff166003811115611b5357611b5361356b565b6003811115611b6457611b6461356b565b905250905060008161012001516003811115611b8257611b8261356b565b1415611ba05760405162461bcd60e51b815260040161054790613b60565b60018161012001516003811115611bb957611bb961356b565b1480611bdb575060038161012001516003811115611bd957611bd961356b565b145b611bf75760405162461bcd60e51b815260040161054790613b90565b60008381526006602090815260409182902060098101805460ff1916600217905542600190910155905184815233917fbbb7c56a30e43781bc0605032f111a9f30b09a29c0fb35f63d0f64eed12523da91015b60405180910390a2505050565b6000546001600160a01b03163314611c815760405162461bcd60e51b815260040161054790613aab565b600a80546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935233917f3d09797f9feaf6cd1dc7faf74bbd4a607d61840894464fe8bcca180d3d373cca910160405180910390a25050565b336000818152600460205260409020546001600160a01b0316611d195760405162461bcd60e51b8152600401610547906139ae565b611f40821015611d3b5760405162461bcd60e51b815260040161054790613b36565b60006006600084815260200190815260200160002060405180610140016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054611da8906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd4906139e3565b8015611e215780601f10611df657610100808354040283529160200191611e21565b820191906000526020600020905b815481529060010190602001808311611e0457829003601f168201915b50505050508152602001600782018054611e3a906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611e66906139e3565b8015611eb35780601f10611e8857610100808354040283529160200191611eb3565b820191906000526020600020905b815481529060010190602001808311611e9657829003601f168201915b50505050508152602001600882018054611ecc906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef8906139e3565b8015611f455780601f10611f1a57610100808354040283529160200191611f45565b820191906000526020600020905b815481529060010190602001808311611f2857829003601f168201915b5050509183525050600982015460209091019060ff166003811115611f6c57611f6c61356b565b6003811115611f7d57611f7d61356b565b905250905060008161012001516003811115611f9b57611f9b61356b565b1415611fb95760405162461bcd60e51b815260040161054790613b60565b60028161012001516003811115611fd257611fd261356b565b14611fef5760405162461bcd60e51b815260040161054790613b90565b60008381526006602090815260409182902060098101805460ff1916600317905542600190910155905184815233917f703a8c42c8e10a03b1fa46891ea8129ac09f8b2dfa36fd3a879891bc0bbd450d9101611c4a565b6000546001600160a01b031633146120705760405162461bcd60e51b815260040161054790613aab565b6110328282612f74565b336000818152600460205260409020546001600160a01b03166120af5760405162461bcd60e51b8152600401610547906139ae565b611f408310156120d15760405162461bcd60e51b815260040161054790613b36565b600083815260066020526040812090600982015460ff1660038111156120f9576120f961356b565b14156121175760405162461bcd60e51b815260040161054790613b60565b60028101546121269084612fdb565b6003820190815560008581526006602090815260409182902042600190910155915481518781529283015233917f7e6287a98c904fb601a04d3278909775dfe84c422deeed1b9802234c837ca518910160405180910390a250505050565b600554606090612192613331565b6000805b8381101561243f5760066000600583815481106121b5576121b5613ad3565b9060005260206000200154815260200190815260200160002060405180610140016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054612226906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612252906139e3565b801561229f5780601f106122745761010080835404028352916020019161229f565b820191906000526020600020905b81548152906001019060200180831161228257829003601f168201915b505050505081526020016007820180546122b8906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546122e4906139e3565b80156123315780601f1061230657610100808354040283529160200191612331565b820191906000526020600020905b81548152906001019060200180831161231457829003601f168201915b5050505050815260200160088201805461234a906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612376906139e3565b80156123c35780601f10612398576101008083540402835291602001916123c3565b820191906000526020600020905b8154815290600101906020018083116123a657829003601f168201915b5050509183525050600982015460209091019060ff1660038111156123ea576123ea61356b565b60038111156123fb576123fb61356b565b9052509250600283610120015160038111156124195761241961356b565b141561242d5761242a600183613bbe565b91505b8061243781613a34565b915050612196565b5060008167ffffffffffffffff81111561245b5761245b6133a9565b60405190808252806020026020018201604052801561249457816020015b612481613331565b8152602001906001900390816124795790505b5090506000805b858110156127625760066000600583815481106124ba576124ba613ad3565b906000526020600020015481526020019081526020016000206040518061014001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805461252b906139e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612557906139e3565b80156125a45780601f10612579576101008083540402835291602001916125a4565b820191906000526020600020905b81548152906001019060200180831161258757829003601f168201915b505050505081526020016007820180546125bd906139e3565b80601f01602080910402602001604051908101604052809291908181526020018280546125e9906139e3565b80156126365780601f1061260b57610100808354040283529160200191612636565b820191906000526020600020905b81548152906001019060200180831161261957829003601f168201915b5050505050815260200160088201805461264f906139e3565b80601f016020809104026020016040519081016040528092919081815260200182805461267b906139e3565b80156126c85780601f1061269d576101008083540402835291602001916126c8565b820191906000526020600020905b8154815290600101906020018083116126ab57829003601f168201915b5050509183525050600982015460209091019060ff1660038111156126ef576126ef61356b565b60038111156127005761270061356b565b90525094506002856101200151600381111561271e5761271e61356b565b1415612750578483838151811061273757612737613ad3565b602090810291909101015261274d600183613bbe565b91505b8061275a81613a34565b91505061249b565b509095945050505050565b600260015414156127c05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610547565b6002600155600054600160a01b900460ff16156128125760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610547565b611f408110156128345760405162461bcd60e51b815260040161054790613b36565b600081815260066020526040812090600982015460ff16600381111561285c5761285c61356b565b141561287a5760405162461bcd60e51b815260040161054790613b60565b6002600982015460ff1660038111156128955761289561356b565b146128b25760405162461bcd60e51b815260040161054790613b90565b600082815260076020908152604080832033845290915290205460ff16156129105760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e481c1d5c98da185cd959607a1b6044820152606401610547565b600061292d82600201548360030154612fee90919063ffffffff16565b90506000811161296f5760405162461bcd60e51b815260206004820152600d60248201526c125d09dcc81cdbdb19081bdd5d609a1b6044820152606401610547565b6009546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129dc9190613a92565b90508260040154811015612a325760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742061776f6f2062616c616e6365000000000000006044820152606401610547565b600954600a546004850154612a57926001600160a01b03908116923392911690612ffa565b60008481526007602090815260408083203384529091529020805460ff191660019081179091556002840154612a8c91612fdb565b60028401554260018401819055600484015460405133927f56e211b5241df064f15ecbd738a971d3cfc9e96384489ddd491621cdbcce333792612ad692899260068a019291613c76565b60405180910390a25050600180555050565b336000818152600460205260409020546001600160a01b0316612b1d5760405162461bcd60e51b8152600401610547906139ae565b611f40871015612b3f5760405162461bcd60e51b815260040161054790613b36565b6000865111612b8c5760405162461bcd60e51b8152602060048201526019602482015278383937b532b1ba103730b6b2903632b733ba341032b93937b960391b6044820152606401610547565b6000855111612bd65760405162461bcd60e51b815260206004820152601660248201527534b6b0b3b2903ab936103632b733ba341032b93937b960511b6044820152606401610547565b60008311612c265760405162461bcd60e51b815260206004820152601e60248201527f70726963652073686f756c642067726561746572207468616e207a65726f00006044820152606401610547565b60008211612c765760405162461bcd60e51b815260206004820152601e60248201527f71756f74612073686f756c642067726561746572207468616e207a65726f00006044820152606401610547565b600087815260066020526040812090600982015460ff166003811115612c9e57612c9e61356b565b1415612cbc5760405162461bcd60e51b815260040161054790613b60565b8060020154831015612d38576040805162461bcd60e51b81526020600482015260248101919091527f51756f74612073686f756c642062652067726561746572207468616e206f722060448201527f657175616c20746f207768617420686173206265656e207075726368617365646064820152608401610547565b426001820155865115612d5c578651612d5a90600683019060208a01906132ad565b505b855115612d7a578551612d7890600783019060208901906132ad565b505b845115612d98578451612d9690600883019060208801906132ad565b505b600481018490556003810183905560405188907f5270dca3c9d7f09ad83672335f34a4316b6babffbde3fdfecb859f57d687ee1f90610ada9060068501906007860190899089904290613ca2565b612df082826117c5565b6110325760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600054600160a01b900460ff16612e9f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610547565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff1615612f395760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610547565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ecf3390565b612f7e82826117c5565b156110325760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000612fe78284613bbe565b9392505050565b6000612fe78284613cc7565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261305490859061305a565b50505050565b60006130af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661312c9092919063ffffffff16565b80519091501561123057808060200190518101906130cd9190613cde565b6112305760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610547565b606061313b8484600085613143565b949350505050565b6060824710156131a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610547565b6001600160a01b0385163b6131fb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610547565b600080866001600160a01b031685876040516132179190613d00565b60006040518083038185875af1925050503d8060008114613254576040519150601f19603f3d011682016040523d82523d6000602084013e613259565b606091505b5091509150613269828286613274565b979650505050505050565b60608315613283575081612fe7565b8251156132935782518084602001fd5b8160405162461bcd60e51b81526004016105479190613d1c565b8280546132b9906139e3565b90600052602060002090601f0160209004810192826132db5760008555613321565b82601f106132f457805160ff1916838001178555613321565b82800160010185558215613321579182015b82811115613321578251825591602001919060010190613306565b5061332d929150613394565b5090565b6040518061014001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081526020016000600381111561338f5761338f61356b565b905290565b5b8082111561332d5760008155600101613395565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e8576133e86133a9565b604052919050565b600082601f83011261340157600080fd5b813567ffffffffffffffff81111561341b5761341b6133a9565b61342e601f8201601f19166020016133bf565b81815284602083860101111561344357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561347857600080fd5b853567ffffffffffffffff8082111561349057600080fd5b61349c89838a016133f0565b965060208801359150808211156134b257600080fd5b6134be89838a016133f0565b955060408801359150808211156134d457600080fd5b506134e1888289016133f0565b9598949750949560608101359550608001359392505050565b60006020828403121561350c57600080fd5b5035919050565b60005b8381101561352e578181015183820152602001613516565b838111156130545750506000910152565b60008151808452613557816020860160208601613513565b601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6004811061359f57634e487b7160e01b600052602160045260246000fd5b9052565b60006101408c83528b60208401528a60408401528960608401528860808401528760a08401528060c08401526135db8184018861353f565b905082810360e08401526135ef818761353f565b9050828103610100840152613604818661353f565b915050613615610120830184613581565b9b9a5050505050505050505050565b80356001600160a01b038116811461363b57600080fd5b919050565b6000806040838503121561365357600080fd5b8235915061366360208401613624565b90509250929050565b6000806040838503121561367f57600080fd5b61368883613624565b915061366360208401613624565b600067ffffffffffffffff8211156136b0576136b06133a9565b5060051b60200190565b600060208083850312156136cd57600080fd5b823567ffffffffffffffff8111156136e457600080fd5b8301601f810185136136f557600080fd5b803561370861370382613696565b6133bf565b81815260059190911b8201830190838101908783111561372757600080fd5b928401925b828410156132695761373d84613624565b8252928401929084019061372c565b6000602080838503121561375f57600080fd5b823567ffffffffffffffff81111561377657600080fd5b8301601f8101851361378757600080fd5b803561379561370382613696565b81815260059190911b820183019083810190878311156137b457600080fd5b928401925b82841015613269578335825292840192908401906137b9565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156138bf57888303603f1901855281518051845287810151888501528681015187850152606080820151908501526080808201519085015260a0808201519085015260c080820151610140828701819052919061385b8388018261353f565b9250505060e08083015186830382880152613876838261353f565b925050506101008083015186830382880152613892838261353f565b925050506101208083015192506138ab81870184613581565b5095880195935050908601906001016137f9565b509098975050505050505050565b6000602082840312156138df57600080fd5b612fe782613624565b600080604083850312156138fb57600080fd5b50508035926020909101359150565b60008060008060008060c0878903121561392357600080fd5b86359550602087013567ffffffffffffffff8082111561394257600080fd5b61394e8a838b016133f0565b9650604089013591508082111561396457600080fd5b6139708a838b016133f0565b9550606089013591508082111561398657600080fd5b5061399389828a016133f0565b9350506080870135915060a087013590509295509295509295565b6020808252818101527f7468652075736572206973206e6f74206f6e207468652077686974656c697374604082015260600190565b600181811c908216806139f757607f821691505b60208210811415613a1857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415613a4857613a48613a1e565b5060010190565b60a081526000613a6260a083018861353f565b8281036020840152613a74818861353f565b60408401969096525050606081019290925260809091015292915050565b600060208284031215613aa457600080fd5b5051919050565b6020808252600e908201526d6e6f7420676f7665726e616e636560901b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015613b2a5783516001600160a01b031683529284019291840191600101613b05565b50909695505050505050565b60208082526010908201526f383937b532b1ba1034b21032b93937b960811b604082015260600190565b602080825260169082015275141c9bda9958dd08191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b602080825260149082015273383937b532b1ba1039ba30ba3ab99032b93937b960611b604082015260600190565b60008219821115613bd157613bd1613a1e565b500190565b8054600090600181811c9080831680613bf057607f831692505b6020808410821415613c1257634e487b7160e01b600052602260045260246000fd5b83885260208801828015613c2d5760018114613c3e57613c69565b60ff19871682528282019750613c69565b60008981526020902060005b87811015613c6357815484820152908601908401613c4a565b83019850505b5050505050505092915050565b848152608060208201526000613c8f6080830186613bd6565b6040830194909452506060015292915050565b60a081526000613cb560a0830188613bd6565b8281036020840152613a748188613bd6565b600082821015613cd957613cd9613a1e565b500390565b600060208284031215613cf057600080fd5b81518015158114612fe757600080fd5b60008251613d12818460208701613513565b9190910192915050565b602081526000612fe7602083018461353f56fea2646970667358221220f8927550ebc15367f60e50bbfdb15a3e80462f3e8c0a84406778e1bdf227cfb264736f6c634300080c0033