0x60e06040523480156200001157600080fd5b5060405162003ea938038062003ea98339810160408190526200003491620000db565b60808190526001600160a01b038316620000a95760405162461bcd60e51b815260206004820152602c60248201527f4272696467653a207a6b427269646765456e64706f696e74206973207468652060448201526b7a65726f206164647265737360a01b606482015260840160405180910390fd5b506001600160a01b0391821660a0521660c05262000123565b6001600160a01b0381168114620000d857600080fd5b50565b600080600060608486031215620000f157600080fd5b8351620000fe81620000c2565b60208501519093506200011181620000c2565b80925050604084015190509250925092565b60805160a05160c051613c9962000210600039600081816107b80152818161124a015281816112c201528181611658015281816117ea015281816118be0152818161191b0152818161198a01528181611d5f01528181611eca0152611f720152600081816109df01528181610bbf01528181611c4901528181612840015261295101526000818161035701528181610a5801528181610aa401528181610cdf01528181610e43015281816111f20152818161169e01528181611b5401528181611da501528181611df301528181611e64015281816122890152818161250901526125c40152613c996000f3fe6080604052600436106102c95760003560e01c80637216a5d711610175578063a94a1706116100dc578063dc4c90d311610095578063ed9953071161006f578063ed995307146109a5578063f9085b45146109ad578063fb04c9e0146109cd578063ff440f6914610a0157600080fd5b8063dc4c90d31461095d578063e10bd0cf1461097d578063e7747ce31461098557600080fd5b8063a94a17061461086d578063abca4a92146108d5578063b2ce8089146108e8578063bbc4078414610908578063cfe60a9014610928578063d294f0931461094857600080fd5b8063969b53da1161012e578063969b53da146107a657806398f6b77c146107da5780639a06ce27146107ed5780639cd441da1461080d5780639d7de6b31461082d5780639e5b71051461084d57600080fd5b80637216a5d7146106e657806377f5c01b146107065780638129fc1c1461072657806386b9f6cb1461073b5780638e3b5d6a1461075057806395ce2f5f1461078657600080fd5b8063363b2eb2116102345780634ffb1bd9116101ed57806353d6fd59116101c757806353d6fd591461067957806355ce196814610699578063587f5ed7146106b15780635ea54543146106c657600080fd5b80634ffb1bd91461062457806350bce91b146106445780635226dc5a1461065957600080fd5b8063363b2eb2146105715780633b3edf68146105845780633b824d6a146105a45780633cf6b3f5146105c45780633ef07ff2146105e45780634e6cbad11461060457600080fd5b80631e7be210116102865780631e7be210146104af5780631f034ac6146104ef57806321e0694a146105025780632b4dbf081461051c5780632de9952a1461053c5780632fb228681461055c57600080fd5b806301d16b14146102ce5780630f76c9fe1461031257806310c38ef31461034557806314cc01a01461038757806314d9e096146103a75780631526fe27146103bc575b600080fd5b3480156102da57600080fd5b506098546102f590630100000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561031e57600080fd5b5060985461033290610100900461ffff1681565b60405161ffff9091168152602001610309565b34801561035157600080fd5b506103797f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610309565b34801561039357600080fd5b506034546102f5906001600160a01b031681565b6103ba6103b536600461339a565b610a21565b005b3480156103c857600080fd5b506104646103d73660046133da565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260666020908152604091829020825160a081018452815460ff8082161515835261010082041693820193909352620100009092046001600160a01b03169282019290925260018201546060820152600290910154608082015290565b604051610309919081511515815260208083015160ff16908201526040808301516001600160a01b031690820152606080830151908201526080918201519181019190915260a00190565b3480156104bb57600080fd5b506104df6104ca3660046133f3565b60676020526000908152604090205460ff1681565b6040519015158152602001610309565b6103ba6104fd3660046133da565b610a97565b34801561050e57600080fd5b506098546104df9060ff1681565b34801561052857600080fd5b506103ba610537366004613417565b610acc565b34801561054857600080fd5b506103ba61055736600461344f565b610bac565b34801561056857600080fd5b506103ba610db4565b6103ba61057f3660046134f5565b610e39565b34801561059057600080fd5b506036546102f5906001600160a01b031681565b3480156105b057600080fd5b506103ba6105bf3660046133f3565b610ec7565b3480156105d057600080fd5b506103796105df36600461353d565b610f3d565b3480156105f057600080fd5b506103ba6105ff366004613417565b610fa7565b34801561061057600080fd5b506103ba61061f3660046133f3565b61102a565b34801561063057600080fd5b506103ba61063f3660046133f3565b6110a0565b34801561065057600080fd5b506103ba611116565b34801561066557600080fd5b506035546102f5906001600160a01b031681565b34801561068557600080fd5b506103ba610694366004613580565b61119b565b3480156106a557600080fd5b50610379633b9aca0081565b3480156106bd57600080fd5b506103796111f0565b3480156106d257600080fd5b506103ba6106e13660046135b9565b611232565b3480156106f257600080fd5b5061037961070136600461353d565b611246565b34801561071257600080fd5b506037546102f5906001600160a01b031681565b34801561073257600080fd5b506103ba611348565b34801561074757600080fd5b506103ba611460565b34801561075c57600080fd5b506102f561076b3660046135e5565b6097602052600090815260409020546001600160a01b031681565b34801561079257600080fd5b506103ba6107a1366004613600565b6114e5565b3480156107b257600080fd5b506102f57f000000000000000000000000000000000000000000000000000000000000000081565b6103ba6107e83660046134f5565b61164e565b3480156107f957600080fd5b506103ba61080836600461362c565b6119d9565b34801561081957600080fd5b506103ba610828366004613417565b611ab4565b34801561083957600080fd5b506103ba610848366004613417565b611aef565b34801561085957600080fd5b5061037961086836600461353d565b611c09565b34801561087957600080fd5b5061088d610888366004613667565b611cc0565b60405161030991908151151581526020808301516001600160801b03169082015260408083015167ffffffffffffffff16908201526060918201519181019190915260800190565b6103ba6108e336600461339a565b611d55565b3480156108f457600080fd5b506103ba61090336600461353d565b612035565b34801561091457600080fd5b506103ba610923366004613693565b6120d1565b34801561093457600080fd5b506038546102f5906001600160a01b031681565b34801561095457600080fd5b506103ba6121f2565b34801561096957600080fd5b506033546102f5906001600160a01b031681565b6103ba61227f565b34801561099157600080fd5b506103ba6109a0366004613600565b612352565b6103ba6124d5565b3480156109b957600080fd5b506103ba6109c83660046136c8565b612531565b3480156109d957600080fd5b506102f57f000000000000000000000000000000000000000000000000000000000000000081565b348015610a0d57600080fd5b50610379610a1c3660046133da565b61271d565b610a2961273f565b81341015610a525760405162461bcd60e51b8152600401610a4990613705565b60405180910390fd5b610a88837f00000000000000000000000000000000000000000000000000000000000000008484610a838234613752565b612798565b50610a9260018055565b505050565b610a9f6124d5565b610ac97f000000000000000000000000000000000000000000000000000000000000000082610fa7565b50565b610ad461273f565b610add82612a70565b60008281526066602052604090206002015460001914610b0f5760405162461bcd60e51b8152600401610a4990613765565b610b198282612ace565b600082815260666020526040902054610b43906201000090046001600160a01b0316333084612b45565b60008281526066602052604081206001018054839290610b649084906137ce565b909155505060405181815282907fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb4906020015b60405180910390a2610ba860018055565b5050565b610bb461273f565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c365760405162461bcd60e51b815260206004820152602160248201527f4272696467653a204e6f742066726f6d207a6b427269646765456e64706f696e6044820152601d60fa1b6064820152608401610a49565b6001600160a01b03841615801590610c6c575061ffff85166000908152609760205260409020546001600160a01b038581169116145b610cb85760405162461bcd60e51b815260206004820152601760248201527f4272696467653a20496e76616c696420656d69747465720000000000000000006044820152606401610a49565b60008080610cc8848601866137e1565b9250925092506000610cdb848a85612bb0565b90507f00000000000000000000000000000000000000000000000000000000000000008403610d1357610d0e8282612c64565b610d3c565b600084815260666020526040902054610d3c906201000090046001600160a01b03168383612d7d565b8361ffff8a16610d506305f5e1008a61380f565b604080516001600160a01b03871681526020810188905267ffffffffffffffff92909216917f302b3ebcd58d43753be6657117391b4a3b8dc310ae7054a9905486dd23241676910160405180910390a450505050610dad60018055565b5050505050565b6037546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610a4990613837565b603780546001600160a01b0319908116909155603480543392811683179091556040516001600160a01b03909116919082907fd2201da7c443ffc780844bb92267eecd254053cee6183556572d891f029db87d90600090a350565b610e4161273f565b7f00000000000000000000000000000000000000000000000000000000000000008303610e805760405162461bcd60e51b8152600401610a4990613879565b600083815260666020526040902054610eaa906201000090046001600160a01b0316333085612b45565b610eb78484848434612798565b50610ec160018055565b50505050565b6033546001600160a01b03163314610ef15760405162461bcd60e51b8152600401610a49906138d6565b603680546001600160a01b0319166001600160a01b03831690811790915560405133907f224c573cdb8950a1cf5382cbdc4c6fbb5a94c2a07579e014482d20c77d7c8ee490600090a350565b600083815260656020908152604080832061ffff8616845290915281205461010081046001600160801b031690633b9aca0090610f8b90600160881b900467ffffffffffffffff168561390b565b610f959190613938565b610f9f91906137ce565b949350505050565b6033546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610a49906138d6565b610fd961273f565b610fe282612a70565b600082815260666020526040908190206002018290555182907fffc60309bc0541f9cc67841ccfe5f8600c078153f74509d2c439ec1e40e8b3c090610b979084815260200190565b6034546001600160a01b031633146110545760405162461bcd60e51b8152600401610a499061394c565b603780546001600160a01b0319166001600160a01b03831690811790915560405133907f52eae2ba1561aaf57acd728abc519e08906e6c49b9ec8ba4209bae7fecbcee6f90600090a350565b6035546001600160a01b031633146110ca5760405162461bcd60e51b8152600401610a499061398e565b603880546001600160a01b0319166001600160a01b03831690811790915560405133907f788d10307525180759bacde6500c4c7159d8e09bd79209dea881e3b43e27547290600090a350565b6036546001600160a01b031633146111405760405162461bcd60e51b8152600401610a4990613837565b603680546001600160a01b0319908116909155603380543392811683179091556040516001600160a01b03909116919082907f12887552f8810a293cba3d436e02a0b49397e811c9b41187c89d7290d9bd192690600090a350565b6033546001600160a01b031633146111c55760405162461bcd60e51b8152600401610a49906138d6565b6001600160a01b03919091166000908152606760205260409020805460ff1916911515919091179055565b7f000000000000000000000000000000000000000000000000000000000000000060009081526066602052604081206001015461122d9047613752565b905090565b61123c8383611ab4565b610a928382610fa7565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128e5760405162461bcd60e51b8152600401610a49906139d1565b600061129b858585611c09565b604051632f08b92f60e21b815261ffff861660048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063bc22e4bc90602401602060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d9190613a08565b905080821161133c578061133e565b815b9695505050505050565b600054610100900460ff16158080156113685750600054600160ff909116105b806113825750303b158015611382575060005460ff166001145b6113e55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a49565b6000805460ff191660011790558015611408576000805461ff0019166101001790555b611410612dad565b611418612ddc565b8015610ac9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6038546001600160a01b0316331461148a5760405162461bcd60e51b8152600401610a4990613837565b603880546001600160a01b0319908116909155603580543392811683179091556040516001600160a01b03909116919082907f5c4b9e5621878f91d14b060afe833a3597e6e5edbdd74b6161973f747c712ad490600090a350565b6034546001600160a01b0316331461150f5760405162461bcd60e51b8152600401610a499061394c565b61151761273f565b6035546034546001600160a01b039081169116146115bc576098805460ff196001600160a01b038416630100000081026301000000600160b81b031961ffff8816610100810291909116610100600160b81b03199095169490941717919091166001179092556040805191825260208201929092527f375b189bc53525ca31c6fc74f38c76b308773d66c780a57fbb0b9ac94f1d2285910160405180910390a1611645565b61ffff8216600090815260976020526040902080546001600160a01b0319166001600160a01b03831617905560985460ff16156115fe576098805460ff191690555b6040805161ffff841681526001600160a01b03831660208201527f543c07f3f8ff9852dd72fe83bc9f1462fd99575d6a23f6b3f523eab3654b03b191015b60405180910390a15b610ba860018055565b61165661273f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661169c5760405162461bcd60e51b8152600401610a49906139d1565b7f000000000000000000000000000000000000000000000000000000000000000083036116db5760405162461bcd60e51b8152600401610a4990613879565b6000838152606660205260409020546201000090046001600160a01b03168061173f5760405162461bcd60e51b8152602060048201526016602482015275109c9a5919d94e881c1bdbdb081b9bdd08199bdd5b9960521b6044820152606401610a49565b6117546001600160a01b038216333086612b45565b600084815260666020526040812060028101546001909101546117789086906137ce565b111580156117a65750600085815260656020908152604080832061ffff8a1684529091529020600101548411155b156117ce5760006117ba8787878734612798565b90506117c68134613752565b9150506119be565b604051632f08b92f60e21b815261ffff871660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bc22e4bc90602401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190613a08565b9050803410156118af5760405162461bcd60e51b815260206004820152601860248201527f4272696467653a20496e73756666696369656e742066656500000000000000006044820152606401610a49565b6118e36001600160a01b0384167f000000000000000000000000000000000000000000000000000000000000000087612e31565b60405163f6ea14a760e01b815261ffff881660048201526001600160a01b0384811660248301526044820187905285811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063f6ea14a79083906084016000604051808303818588803b15801561196057600080fd5b505af1158015611974573d6000803e3d6000fd5b506119b0935050506001600160a01b03851690507f00000000000000000000000000000000000000000000000000000000000000006000612e31565b6119ba8134613752565b9150505b80156119ce576119ce3382612c64565b5050610ec160018055565b6033546001600160a01b03163314611a035760405162461bcd60e51b8152600401610a49906138d6565b611a0b61273f565b611a158484612f46565b600084815260656020908152604080832061ffff8716808552908352928190208054610100600160c81b0319166101006001600160801b0388160267ffffffffffffffff60881b191617600160881b67ffffffffffffffff871602179055805185815291820184905286917f69a58b4f1bc0b96ad7ed7c6519275c08221919b7a912310afb48f9f46c15bc10910160405180910390a3610ec160018055565b6033546001600160a01b03163314611ade5760405162461bcd60e51b8152600401610a49906138d6565b611ae661273f565b610b0f82612a70565b6033546001600160a01b03163314611b195760405162461bcd60e51b8152600401610a49906138d6565b611b2161273f565b611b2a82612a70565b611b348282612ace565b600082815260666020526040902060010154811115611b5257600080fd5b7f00000000000000000000000000000000000000000000000000000000000000008203611b8857611b833382612c64565b611bb1565b600082815260666020526040902054611bb1906201000090046001600160a01b03163383612d7d565b60008281526066602052604081206001018054839290611bd2908490613752565b909155505060405181815282907f9101fb4cb96b608de64eae79af26fc5fbe69904c5e3b6108204eefd9212f477090602001610b97565b6000611c158484612f46565b6000611c22858585610f3d565b60405163103dd74560e11b815261ffff861660048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063207bae8a90602401602060405180830381865afa158015611c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb49190613a08565b905061133e81836137ce565b60408051608081018252600080825260208201819052918101829052606081019190915250600082815260656020908152604080832061ffff851684528252918290208251608081018452815460ff81161515825261010081046001600160801b031693820193909352600160881b90920467ffffffffffffffff169282019290925260019091015460608201525b92915050565b611d5d61273f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611da35760405162461bcd60e51b8152600401610a49906139d1565b7f000000000000000000000000000000000000000000000000000000000000000060009081526066602052604081206002810154600190910154611de89085906137ce565b11158015611e3757507f0000000000000000000000000000000000000000000000000000000000000000600090815260656020908152604080832061ffff881684529091529020600101548311155b15611eae5782341015611e5c5760405162461bcd60e51b8152600401610a4990613705565b6000611e8f857f00000000000000000000000000000000000000000000000000000000000000008686610a838234613752565b905080611e9c8534613752565b611ea69190613752565b915050612025565b604051632f08b92f60e21b815261ffff851660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bc22e4bc90602401602060405180830381865afa158015611f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3d9190613a08565b9050611f4981856137ce565b341015611f685760405162461bcd60e51b8152600401610a4990613705565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166314d9e096611fa183876137ce565b6040516001600160e01b031960e084901b16815261ffff89166004820152602481018890526001600160a01b03871660448201526064016000604051808303818588803b158015611ff157600080fd5b505af1158015612005573d6000803e3d6000fd5b50505050508084346120179190613752565b6120219190613752565b9150505b8015610a8857610a883382612c64565b6033546001600160a01b0316331461205f5760405162461bcd60e51b8152600401610a49906138d6565b61206761273f565b6120718383612f46565b600083815260656020908152604080832061ffff8616808552908352928190206001018490555183815285917f09cf37f97f4dae874e7cb6b93f49e96cdbe942556630d0c1c446f9de9b5682f3910160405180910390a3610a9260018055565b6033546001600160a01b031633146120fb5760405162461bcd60e51b8152600401610a49906138d6565b61210361273f565b61210c83612a70565b600083815260656020908152604080832061ffff8616845290915290205481151560ff9091161515036121925760405162461bcd60e51b815260206004820152602860248201527f506f6f6c3a2064737420636861696e20616c726561647920656e61626c65642f604482015267191a5cd8589b195960c21b6064820152608401610a49565b600083815260656020908152604080832061ffff86168085529252808320805460ff19168515159081179091559051909286917f188e2234f6d184edf99d8c78e1fa948bb86c9ba285dc3059bdbe5704e48181aa9190a4610a9260018055565b6033546001600160a01b0316331461221c5760405162461bcd60e51b8152600401610a49906138d6565b61222461273f565b600061222e6111f0565b905061223a3382612c64565b60408051338152602081018390527f0bd19e112d63748ab3d987993abf5208a9a80e2a5615aebf45188a1d1cc59be5910160405180910390a15061227d60018055565b565b61228761273f565b7f00000000000000000000000000000000000000000000000000000000000000006122b181612a70565b600081815260666020526040902060020154600019146122e35760405162461bcd60e51b8152600401610a4990613765565b6122ed8134612ace565b6000818152606660205260408120600101805434929061230e9084906137ce565b909155505060405134815281907fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb49060200160405180910390a25061227d60018055565b6035546001600160a01b0316331461237c5760405162461bcd60e51b8152600401610a499061398e565b61238461273f565b60985460ff166123d65760405162461bcd60e51b815260206004820152601960248201527f4272696467653a206e6f2070656e64696e6720627269646765000000000000006044820152606401610a49565b60985461ffff8381166101009092041614801561240757506098546001600160a01b03828116630100000090920416145b6124675760405162461bcd60e51b815260206004820152602b60248201527f4272696467653a20647374436861696e4964206f722062726964676520646f6560448201526a0e640dcdee840dac2e8c6d60ab1b6064820152608401610a49565b61ffff821660008181526097602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091556098805460ff191690558251938452908301527f543c07f3f8ff9852dd72fe83bc9f1462fd99575d6a23f6b3f523eab3654b03b1910161163c565b6033546001600160a01b031633146124ff5760405162461bcd60e51b8152600401610a49906138d6565b61250761273f565b7f00000000000000000000000000000000000000000000000000000000000000006122e381612a70565b6034546001600160a01b0316331461255b5760405162461bcd60e51b8152600401610a499061394c565b61256361273f565b60008381526066602052604090205460ff16156125c25760405162461bcd60e51b815260206004820152601a60248201527f506f6f6c3a20706f6f6c20616c726561647920637265617465640000000000006044820152606401610a49565b7f00000000000000000000000000000000000000000000000000000000000000008303612663576001600160a01b0382161561265e5760405162461bcd60e51b815260206004820152603560248201527f506f6f6c3a206e617469766520746f6b656e20706f6f6c2073686f756c64206e6044820152746f74206861766520746f6b656e206164647265737360581b6064820152608401610a49565b6126c8565b6001600160a01b0382166126c85760405162461bcd60e51b815260206004820152602660248201527f506f6f6c3a20746f6b656e20616464726573732073686f756c64206e6f74206260448201526565207a65726f60d01b6064820152608401610a49565b60008381526066602052604090208054600161ffff1990911661010060ff85160217811762010000600160b01b031916620100006001600160a01b038616021782556000196002909201919091558055505050565b600081815260666020526040812054611d4f90610100900460ff16600a613b05565b6002600154036127915760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a49565b6002600155565b61ffff85166000908152609760205260408120546001600160a01b03168061280c5760405162461bcd60e51b815260206004820152602160248201527f4272696467653a20647374436861696e496420646f6573206e6f7420657869736044820152601d60fa1b6064820152608401610a49565b6000612819878988610f3d565b60405163103dd74560e11b815261ffff8a1660048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063207bae8a90602401602060405180830381865afa158015612887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ab9190613a08565b90506128b781836137ce565b8510156129065760405162461bcd60e51b815260206004820152601860248201527f4272696467653a20496e73756666696369656e742046656500000000000000006044820152606401610a49565b6000612913898b8a612fce565b60408051602081018c90529081018290526001600160a01b0389166060820152909150600090608001604051602081830303815290604052905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1d995dd858e89866040518563ffffffff1660e01b81526004016129a093929190613b64565b60206040518083038185885af11580156129be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129e39190613b9b565b90508a61ffff8d166129f96305f5e1008461380f565b604080513381526001600160a01b038e16602082015290810187905267ffffffffffffffff91909116907fe0442d4e58b97ff2055e08df9305389520a00ac06c83a83131ef3d0e1572068c9060600160405180910390a4612a5a84866137ce565b9c9b505050505050505050505050565b60018055565b60008181526066602052604090205460ff16610ac95760405162461bcd60e51b815260206004820152601960248201527f506f6f6c3a20706f6f6c204944206e6f7420656e61626c6564000000000000006044820152606401610a49565b612ad78261271d565b612ae19082613bb8565b15610ba85760405162461bcd60e51b815260206004820152602e60248201527f506f6f6c3a20616d6f756e74206973206e6f742061206d756c7469706c65206f60448201526d6620636f6e76657274207261746560901b6064820152608401610a49565b6040516001600160a01b0380851660248301528316604482015260648101829052610ec19085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261314f565b6000612bbc8484612f46565b6000612bc78561271d565b612bd1908461390b565b600086815260666020526040902060010154909150811115612c355760405162461bcd60e51b815260206004820152601860248201527f506f6f6c3a204c69717569646974792073686f727461676500000000000000006044820152606401610a49565b60008581526066602052604081206001018054839290612c56908490613752565b909155509095945050505050565b80471015612cb45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a49565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612d01576040519150601f19603f3d011682016040523d82523d6000602084013e612d06565b606091505b5050905080610a925760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a49565b6040516001600160a01b038316602482015260448101829052610a9290849063a9059cbb60e01b90606401612b79565b600054610100900460ff16612dd45760405162461bcd60e51b8152600401610a4990613bcc565b61227d613224565b600054610100900460ff16612e035760405162461bcd60e51b8152600401610a4990613bcc565b60338054336001600160a01b0319918216811790925560348054821683179055603580549091169091179055565b801580612eab5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea99190613a08565b155b612f165760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610a49565b6040516001600160a01b038316602482015260448101829052610a9290849063095ea7b360e01b90606401612b79565b612f4f82612a70565b600082815260656020908152604080832061ffff8516845290915290205460ff16610ba85760405162461bcd60e51b815260206004820152602960248201527f506f6f6c3a20706f6f6c204944206f722064737420636861696e204944206e6f6044820152681d08195b98589b195960ba1b6064820152608401610a49565b6000612fda8484612f46565b612fe48483612ace565b600084815260666020526040902060028101546001909101546130089084906137ce565b111561306f5760405162461bcd60e51b815260206004820152603060248201527f506f6f6c3a20496e73756666696369656e74206c6971756964697479206f6e2060448201526f3a3432903a30b933b2ba1031b430b4b760811b6064820152608401610a49565b3360009081526067602052604090205460ff1661311557600084815260656020908152604080832061ffff871684529091529020600101548211156131155760405162461bcd60e51b815260206004820152603660248201527f506f6f6c3a20457863656564696e6720746865206d6178696d756d206c696d696044820152753a1037b310309039b4b733b632903a3930b739b332b960511b6064820152608401610a49565b600084815260666020526040812060010180548492906131369084906137ce565b9091555061314590508461271d565b610f9f9083613938565b60006131a4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661324b9092919063ffffffff16565b90508051600014806131c55750808060200190518101906131c59190613c17565b610a925760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a49565b600054610100900460ff16612a6a5760405162461bcd60e51b8152600401610a4990613bcc565b6060610f9f848460008585600080866001600160a01b031685876040516132729190613c34565b60006040518083038185875af1925050503d80600081146132af576040519150601f19603f3d011682016040523d82523d6000602084013e6132b4565b606091505b50915091506132c5878383876132d0565b979650505050505050565b6060831561333f578251600003613338576001600160a01b0385163b6133385760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a49565b5081610f9f565b610f9f83838151156133545781518083602001fd5b8060405162461bcd60e51b8152600401610a499190613c50565b803561ffff8116811461338057600080fd5b919050565b6001600160a01b0381168114610ac957600080fd5b6000806000606084860312156133af57600080fd5b6133b88461336e565b92506020840135915060408401356133cf81613385565b809150509250925092565b6000602082840312156133ec57600080fd5b5035919050565b60006020828403121561340557600080fd5b813561341081613385565b9392505050565b6000806040838503121561342a57600080fd5b50508035926020909101359150565b67ffffffffffffffff81168114610ac957600080fd5b60008060008060006080868803121561346757600080fd5b6134708661336e565b9450602086013561348081613385565b9350604086013561349081613439565b9250606086013567ffffffffffffffff808211156134ad57600080fd5b818801915088601f8301126134c157600080fd5b8135818111156134d057600080fd5b8960208285010111156134e257600080fd5b9699959850939650602001949392505050565b6000806000806080858703121561350b57600080fd5b6135148561336e565b93506020850135925060408501359150606085013561353281613385565b939692955090935050565b60008060006060848603121561355257600080fd5b833592506135626020850161336e565b9150604084013590509250925092565b8015158114610ac957600080fd5b6000806040838503121561359357600080fd5b823561359e81613385565b915060208301356135ae81613572565b809150509250929050565b6000806000606084860312156135ce57600080fd5b505081359360208301359350604090920135919050565b6000602082840312156135f757600080fd5b6134108261336e565b6000806040838503121561361357600080fd5b61361c8361336e565b915060208301356135ae81613385565b6000806000806080858703121561364257600080fd5b843593506136526020860161336e565b93969395505050506040820135916060013590565b6000806040838503121561367a57600080fd5b8235915061368a6020840161336e565b90509250929050565b6000806000606084860312156136a857600080fd5b833592506136b86020850161336e565b915060408401356133cf81613572565b6000806000606084860312156136dd57600080fd5b8335925060208401356136ef81613385565b9150604084013560ff811681146133cf57600080fd5b60208082526018908201527f4272696467653a20496e73756666696369656e74204554480000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115611d4f57611d4f61373c565b60208082526043908201527f506f6f6c3a206164644c69717569646974795075626c6963206f6e6c7920776f60408201527f726b207768656e206d61784c6971756964697479206973206e6f74206c696d696060820152621d195960ea1b608082015260a00190565b80820180821115611d4f57611d4f61373c565b6000806000606084860312156137f657600080fd5b833592506020840135915060408401356133cf81613385565b67ffffffffffffffff8181168382160190808211156138305761383061373c565b5092915050565b60208082526022908201527f41646d696e3a2063616c6c6572206973206e6f7420746865206e6577206f776e60408201526132b960f11b606082015260800190565b60208082526037908201527f4272696467653a2043616e2774207472616e7366657220746f6b656e2075736960408201527f6e67206e617469766520746f6b656e20706f6f6c204944000000000000000000606082015260800190565b6020808252818101527f41646d696e3a2063616c6c6572206973206e6f7420706f6f6c4d616e61676572604082015260600190565b8082028115828204841417611d4f57611d4f61373c565b634e487b7160e01b600052601260045260246000fd5b60008261394757613947613922565b500490565b60208082526022908201527f41646d696e3a2063616c6c6572206973206e6f74206272696467654d616e616760408201526132b960f11b606082015260800190565b60208082526023908201527f41646d696e3a2063616c6c6572206973206e6f742062726964676552657669656040820152623bb2b960e91b606082015260800190565b6020808252601e908201527f4272696467653a206c31427269646765206e6f7420617661696c61626c650000604082015260600190565b600060208284031215613a1a57600080fd5b5051919050565b600181815b80851115613a5c578160001904821115613a4257613a4261373c565b80851615613a4f57918102915b93841c9390800290613a26565b509250929050565b600082613a7357506001611d4f565b81613a8057506000611d4f565b8160018114613a965760028114613aa057613abc565b6001915050611d4f565b60ff841115613ab157613ab161373c565b50506001821b611d4f565b5060208310610133831016604e8410600b8410161715613adf575081810a611d4f565b613ae98383613a21565b8060001904821115613afd57613afd61373c565b029392505050565b600061341060ff841683613a64565b60005b83811015613b2f578181015183820152602001613b17565b50506000910152565b60008151808452613b50816020860160208601613b14565b601f01601f19169290920160200192915050565b61ffff841681526001600160a01b0383166020820152606060408201819052600090613b9290830184613b38565b95945050505050565b600060208284031215613bad57600080fd5b815161341081613439565b600082613bc757613bc7613922565b500690565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215613c2957600080fd5b815161341081613572565b60008251613c46818460208701613b14565b9190910192915050565b6020815260006134106020830184613b3856fea26469706673582212200e47f4523d39976e4197372a73fbf8f0996a43c7944e5b88752f02bd83f48b2164736f6c63430008120033000000000000000000000000a8a4547be2ece6dde2dd91b4a5adfe4a043b21c700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001