Loading
608060405234801561001057600080fd5b50613908806100206000396000f3fe6080604052600436106102045760003560e01c80638456cb5911610118578063cdcd897e116100a0578063e98585ee1161006f578063e98585ee14610612578063e985e9c514610649578063f2fde38b14610692578063f3e414f8146106b2578063f4f3b200146106d257600080fd5b8063cdcd897e14610590578063d46e6734146105bd578063da90b77d146105dd578063e8a3d485146105fd57600080fd5b8063a0ef91df116100e7578063a0ef91df146104de578063a22cb465146104f3578063b88d4fde14610513578063c0214fd914610533578063c87b56dd1461057057600080fd5b80638456cb59146104765780638da5cb5b1461048b57806395d89b41146104a9578063a0bcfc7f146104be57600080fd5b80632e1688231161019b5780636352211e1161016a5780636352211e146103d357806370a08231146103f3578063715018a6146104215780637362f1a9146104365780637ab4339d1461045657600080fd5b80632e168823146103655780633f4ba83a1461038657806342842e0e1461039b5780635c975abb146103bb57600080fd5b8063104cbfef116101d7578063104cbfef146102ba5780632231fe54146102e557806323b872dd146103065780632a55205a1461032657600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b50610229610224366004612a89565b6106f2565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b5061025361071d565b6040516102359190612afe565b34801561026c57600080fd5b5061028061027b366004612b11565b6107af565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612b3f565b610849565b005b6102cd6102c8366004612d26565b61095f565b6040516001600160401b039091168152602001610235565b3480156102f157600080fd5b5061013054610280906001600160a01b031681565b34801561031257600080fd5b506102b8610321366004612e3e565b61103c565b34801561033257600080fd5b50610346610341366004612e7f565b61106d565b604080516001600160a01b039093168352602083019190915201610235565b34801561037157600080fd5b5061013154610280906001600160a01b031681565b34801561039257600080fd5b506102b8611124565b3480156103a757600080fd5b506102b86103b6366004612e3e565b611158565b3480156103c757600080fd5b5060c95460ff16610229565b3480156103df57600080fd5b506102806103ee366004612b11565b611173565b3480156103ff57600080fd5b5061041361040e366004612ea1565b6111ea565b604051908152602001610235565b34801561042d57600080fd5b506102b8611271565b34801561044257600080fd5b50610413610451366004612ebe565b6112a5565b34801561046257600080fd5b506102b8610471366004612fb3565b611324565b34801561048257600080fd5b506102b861148e565b34801561049757600080fd5b506097546001600160a01b0316610280565b3480156104b557600080fd5b506102536114c0565b3480156104ca57600080fd5b506102b86104d9366004613004565b6114cf565b3480156104ea57600080fd5b506102b8611511565b3480156104ff57600080fd5b506102b861050e366004613046565b611581565b34801561051f57600080fd5b506102b861052e366004613074565b61158c565b34801561053f57600080fd5b5061055361054e366004612b11565b6115c4565b6040805163ffffffff938416815292909116602083015201610235565b34801561057c57600080fd5b5061025361058b366004612b11565b61160d565b34801561059c57600080fd5b5061012d546105ab9060ff1681565b60405160ff9091168152602001610235565b3480156105c957600080fd5b506102b86105d8366004612ea1565b61178d565b3480156105e957600080fd5b506102b86105f8366004613102565b61185c565b34801561060957600080fd5b5061025361191d565b34801561061e57600080fd5b506102cd61062d366004612b11565b61012f602052600090815260409020546001600160401b031681565b34801561065557600080fd5b5061022961066436600461311f565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561069e57600080fd5b506102b86106ad366004612ea1565b61193d565b3480156106be57600080fd5b506102b86106cd366004612b3f565b6119d8565b3480156106de57600080fd5b506102b86106ed366004612ea1565b611aa0565b60006001600160e01b0319821663152a902d60e11b1480610717575061071782611c2c565b92915050565b60606065805461072c9061314d565b80601f01602080910402602001604051908101604052809291908181526020018280546107589061314d565b80156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661082d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b600061085482611173565b9050806001600160a01b0316836001600160a01b031614156108c25760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610824565b336001600160a01b03821614806108de57506108de8133610664565b6109505760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610824565b61095a8383611c7c565b505050565b600061096d60c95460ff1690565b156109ad5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610824565b600260fb5414156109d05760405162461bcd60e51b815260040161082490613188565b600260fb556101305460405163b901d35760e01b81526001600160a01b039091169063b901d35790610a0c9088908b908b903390600401613233565b602060405180830381865afa158015610a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4d919061328e565b610a5657600080fd5b610130546040516347984ee760e01b815263ffffffff871660048201526001600160a01b03909116906347984ee790602401602060405180830381865afa158015610aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac991906132b6565b63ffffffff16610c195783511580610b54575061013054604051636c4adf5560e01b81526001600160a01b0390911690636c4adf5590610b11908890889033906004016132d3565b602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b52919061328e565b155b15610bae57604051630ac6f28b60e41b8152602060048201526024808201527f6e6f207265736572766174696f6e73206c656674206f722070726f6f662066616044820152631a5b195960e21b6064820152608401610824565b6101305460405163c728172360e01b815263ffffffff871660048201523360248201526001600160a01b039091169063c728172390604401600060405180830381600087803b158015610c0057600080fd5b505af1158015610c14573d6000803e3d6000fd5b505050505b6101305460405163367c1e4960e21b81526000916001600160a01b03169063d9f0792490610c4f9089908c908c9060040161333c565b602060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190613377565b905080341015610cb357604051638d53e55360e01b815260040160405180910390fd5b6000888888604051602001610cca93929190613390565b60408051601f198184030181529181528151602092830120600081815261012f9093529120549091506001600160401b031615610d1a57604051632c48efd760e21b815260040160405180910390fd5b61013054604051621caf6f60e01b815263ffffffff891660048201526000916001600160a01b031690621caf6f906024016020604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e91906132b6565b6040516001600160e01b031960e08b811b8216602084015283901b166024820152909150610dcf906028016040516020818303038152906040526000611cea565b600083815261012f60205260408120805467ffffffffffffffff19166001600160401b0384161790559094505b8a51811015610efa5760008b8281518110610e1957610e1961340f565b60200260200101516001600160a01b0316636352211e8c8481518110610e4157610e4161340f565b60200260200101516040518263ffffffff1660e01b8152600401610e6791815260200190565b602060405180830381865afa158015610e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea89190613430565b90506001600160a01b03811633141580610ec957506001600160a01b038116155b15610ee75760405163fe6b905b60e01b815260040160405180910390fd5b5080610ef281613463565b915050610dfc565b506101305460405163275fc7d160e21b815263ffffffff8a166004820152610f7e916001600160a01b031690639d7f1f4490602401600060405180830381865afa158015610f4c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7491908101906134ce565b60e0015184611d47565b610f9133856001600160401b0316611e60565b8763ffffffff16846001600160401b03168b8b604051602001610fb59291906135b2565b60408051601f19818403018152908290528051602090910120907fb80f047a8f7705b219221f734fc94ce5e7db261886bcfc0e95d57083fe371fa790600090a460006110013485611e7a565b905060008111801561101a575067016345785d8a000081105b15611029576110293382611d47565b50505050600160fb559695505050505050565b6110463382611e8d565b6110625760405162461bcd60e51b8152600401610824906135e0565b61095a838383611f80565b600080600061107b856115c4565b506101305460405163275fc7d160e21b815263ffffffff831660048201529192506001600160a01b031690639d7f1f4490602401600060405180830381865afa1580156110cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110f491908101906134ce565b60e0015161012d5490935061111a9060649061111490879060ff16613631565b90612120565b9150509250929050565b6097546001600160a01b0316331461114e5760405162461bcd60e51b815260040161082490613650565b61115661212c565b565b61095a8383836040518060200160405280600081525061158c565b6000818152606760205260408120546001600160a01b0316806107175760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610824565b60006001600160a01b0382166112555760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610824565b506001600160a01b031660009081526068602052604090205490565b6097546001600160a01b0316331461129b5760405162461bcd60e51b815260040161082490613650565b61115660006121bf565b6101305460405163367c1e4960e21b81526000916001600160a01b03169063d9f07924906112db9087908790879060040161333c565b602060405180830381865afa1580156112f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131c9190613377565b949350505050565b600054610100900460ff1661133f5760005460ff1615611343565b303b155b6113a65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610824565b600054610100900460ff161580156113c8576000805461ffff19166101011790555b61140e6040518060400160405280600681526020016553706c69636560d01b8152506040518060400160405280600681526020016553504c49434560d01b815250612211565b611416612252565b61141e612289565b6114266122c0565b61012d805460ff1916600a17905561013180546001600160a01b03191633179055825161145b9061012e9060208601906129da565b5061013080546001600160a01b0319166001600160a01b038416179055801561095a576000805461ff0019169055505050565b6097546001600160a01b031633146114b85760405162461bcd60e51b815260040161082490613650565b6111566122ef565b60606066805461072c9061314d565b6097546001600160a01b031633146114f95760405162461bcd60e51b815260040161082490613650565b805161150d9061012e9060208401906129da565b5050565b600260fb5414156115345760405162461bcd60e51b815260040161082490613188565b600260fb556097546001600160a01b031633146115635760405162461bcd60e51b815260040161082490613650565b6101315461157a906001600160a01b031647611d47565b600160fb55565b61150d33838361236a565b6115963383611e8d565b6115b25760405162461bcd60e51b8152600401610824906135e0565b6115be84848484612439565b50505050565b6000806000836040516020016115dc91815260200190565b60405160208183030381529060405290506115f881601861246c565b925061160581601c61246c565b915050915091565b6000818152606760205260409020546060906001600160a01b03166116445760405162461bcd60e51b815260040161082490613685565b600080611650846115c4565b6101305460405163b6719c8960e01b815263ffffffff841660048201529294509092506001600160a01b03169063b6719c8990602401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c7919061328e565b15611784576101305460405163275fc7d160e21b815263ffffffff841660048201526000916001600160a01b031690639d7f1f4490602401600060405180830381865afa15801561171c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261174491908101906134ce565b90508060a0015161175a8363ffffffff166124c9565b60405160200161176b9291906136d4565b6040516020818303038152906040529350505050919050565b61131c846125c6565b6097546001600160a01b031633146117b75760405162461bcd60e51b815260040161082490613650565b6001600160a01b0381166118065760405162461bcd60e51b81526020600482015260166024820152756d7573742062652061207265616c206164647265737360501b6044820152606401610824565b61013180546001600160a01b0319166001600160a01b0383169081179091556040519081527f373c72efabe4ef3e552ff77838be729f3bc3d8c586df0012902d1baa2377fa1d906020015b60405180910390a150565b6097546001600160a01b031633146118865760405162461bcd60e51b815260040161082490613650565b600a8160ff1611156118da5760405162461bcd60e51b815260206004820152601f60248201527f726f79616c74696573206d757374206e657665722065786365656420313025006044820152606401610824565b61012d805460ff191660ff83169081179091556040519081527facdc039ddefe0ba231b1a075c764b86c103dc99b2bded9c47bebdc4ae605c06c90602001611851565b60606040518060600160405280602681526020016138ad60269139905090565b6097546001600160a01b031633146119675760405162461bcd60e51b815260040161082490613650565b6001600160a01b0381166119cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610824565b6119d5816121bf565b50565b600260fb5414156119fb5760405162461bcd60e51b815260040161082490613188565b600260fb556097546001600160a01b03163314611a2a5760405162461bcd60e51b815260040161082490613650565b610131546040516323b872dd60e01b81523060048201526001600160a01b03918216602482015260448101839052908316906323b872dd90606401600060405180830381600087803b158015611a7f57600080fd5b505af1158015611a93573d6000803e3d6000fd5b5050600160fb5550505050565b600260fb541415611ac35760405162461bcd60e51b815260040161082490613188565b600260fb556097546001600160a01b03163314611af25760405162461bcd60e51b815260040161082490613650565b610131546040516370a0823160e01b81523060048201526000916001600160a01b038481169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6f9190613377565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bde919061328e565b905080611c235760405162461bcd60e51b81526020600482015260136024820152721d1a19481d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610824565b5050600160fb55565b60006001600160e01b031982166380ac58cd60e01b1480611c5d57506001600160e01b03198216635b5e139f60e01b145b8061071757506301ffc9a760e01b6001600160e01b0319831614610717565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611cb182611173565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611cf7826008613723565b83511015611d3e5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606401610824565b50016008015190565b80471015611d975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610824565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611de4576040519150601f19603f3d011682016040523d82523d6000602084013e611de9565b606091505b505090508061095a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610824565b61150d828260405180602001604052806000815250612658565b6000611e86828461373b565b9392505050565b6000818152606760205260408120546001600160a01b0316611f065760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610824565b6000611f1183611173565b9050806001600160a01b0316846001600160a01b03161480611f4c5750836001600160a01b0316611f41846107af565b6001600160a01b0316145b8061131c57506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff1661131c565b826001600160a01b0316611f9382611173565b6001600160a01b031614611ffb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610824565b6001600160a01b03821661205d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610824565b612068600082611c7c565b6001600160a01b038316600090815260686020526040812080546001929061209190849061373b565b90915550506001600160a01b03821660009081526068602052604081208054600192906120bf908490613723565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611e868284613768565b60c95460ff166121755760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610824565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166122385760405162461bcd60e51b81526004016108249061377c565b61224061268b565b61224861268b565b61150d82826126b2565b600054610100900460ff166122795760405162461bcd60e51b81526004016108249061377c565b61228161268b565b611156612700565b600054610100900460ff166122b05760405162461bcd60e51b81526004016108249061377c565b6122b861268b565b611156612730565b600054610100900460ff166122e75760405162461bcd60e51b81526004016108249061377c565b611156612763565b60c95460ff16156123355760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610824565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121a23390565b816001600160a01b0316836001600160a01b031614156123cc5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610824565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612444848484611f80565b6124508484848461278a565b6115be5760405162461bcd60e51b8152600401610824906137c7565b6000612479826004613723565b835110156124c05760405162461bcd60e51b8152602060048201526014602482015273746f55696e7433325f6f75744f66426f756e647360601b6044820152606401610824565b50016004015190565b6060816124ed5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612517578061250181613463565b91506125109050600a83613768565b91506124f1565b6000816001600160401b0381111561253157612531612b6b565b6040519080825280601f01601f19166020018201604052801561255b576020820181803683370190505b5090505b841561131c5761257060018361373b565b915061257d600a86613819565b612588906030613723565b60f81b81838151811061259d5761259d61340f565b60200101906001600160f81b031916908160001a9053506125bf600a86613768565b945061255f565b6000818152606760205260409020546060906001600160a01b03166125fd5760405162461bcd60e51b815260040161082490613685565b6000612607612888565b905060008151116126275760405180602001604052806000815250611e86565b80612631846124c9565b60405160200161264292919061382d565b6040516020818303038152906040529392505050565b6126628383612898565b61266f600084848461278a565b61095a5760405162461bcd60e51b8152600401610824906137c7565b600054610100900460ff166111565760405162461bcd60e51b81526004016108249061377c565b600054610100900460ff166126d95760405162461bcd60e51b81526004016108249061377c565b81516126ec9060659060208501906129da565b50805161095a9060669060208401906129da565b600054610100900460ff166127275760405162461bcd60e51b81526004016108249061377c565b611156336121bf565b600054610100900460ff166127575760405162461bcd60e51b81526004016108249061377c565b60c9805460ff19169055565b600054610100900460ff1661157a5760405162461bcd60e51b81526004016108249061377c565b60006001600160a01b0384163b1561287d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906127ce90339089908890889060040161385c565b6020604051808303816000875af1925050508015612809575060408051601f3d908101601f191682019092526128069181019061388f565b60015b612863573d808015612837576040519150601f19603f3d011682016040523d82523d6000602084013e61283c565b606091505b50805161285b5760405162461bcd60e51b8152600401610824906137c7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061131c565b506001949350505050565b606061012e805461072c9061314d565b6001600160a01b0382166128ee5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610824565b6000818152606760205260409020546001600160a01b0316156129535760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610824565b6001600160a01b038216600090815260686020526040812080546001929061297c908490613723565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546129e69061314d565b90600052602060002090601f016020900481019282612a085760008555612a4e565b82601f10612a2157805160ff1916838001178555612a4e565b82800160010185558215612a4e579182015b82811115612a4e578251825591602001919060010190612a33565b50612a5a929150612a5e565b5090565b5b80821115612a5a5760008155600101612a5f565b6001600160e01b0319811681146119d557600080fd5b600060208284031215612a9b57600080fd5b8135611e8681612a73565b60005b83811015612ac1578181015183820152602001612aa9565b838111156115be5750506000910152565b60008151808452612aea816020860160208601612aa6565b601f01601f19169290920160200192915050565b602081526000611e866020830184612ad2565b600060208284031215612b2357600080fd5b5035919050565b6001600160a01b03811681146119d557600080fd5b60008060408385031215612b5257600080fd5b8235612b5d81612b2a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612ba457612ba4612b6b565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612bd257612bd2612b6b565b604052919050565b60006001600160401b03821115612bf357612bf3612b6b565b5060051b60200190565b600082601f830112612c0e57600080fd5b81356020612c23612c1e83612bda565b612baa565b82815260059290921b84018101918181019086841115612c4257600080fd5b8286015b84811015612c66578035612c5981612b2a565b8352918301918301612c46565b509695505050505050565b600082601f830112612c8257600080fd5b81356020612c92612c1e83612bda565b82815260059290921b84018101918181019086841115612cb157600080fd5b8286015b84811015612c665780358352918301918301612cb5565b63ffffffff811681146119d557600080fd5b60008083601f840112612cf057600080fd5b5081356001600160401b03811115612d0757600080fd5b602083019150836020828501011115612d1f57600080fd5b9250929050565b60008060008060008060a08789031215612d3f57600080fd5b86356001600160401b0380821115612d5657600080fd5b612d628a838b01612bfd565b9750602091508189013581811115612d7957600080fd5b612d858b828c01612c71565b9750506040890135612d9681612ccc565b9550606089013581811115612daa57600080fd5b8901601f81018b13612dbb57600080fd5b8035612dc9612c1e82612bda565b81815260059190911b8201840190848101908d831115612de857600080fd5b928501925b82841015612e0657833582529285019290850190612ded565b97505050506080890135915080821115612e1f57600080fd5b50612e2c89828a01612cde565b979a9699509497509295939492505050565b600080600060608486031215612e5357600080fd5b8335612e5e81612b2a565b92506020840135612e6e81612b2a565b929592945050506040919091013590565b60008060408385031215612e9257600080fd5b50508035926020909101359150565b600060208284031215612eb357600080fd5b8135611e8681612b2a565b600080600060608486031215612ed357600080fd5b8335612ede81612ccc565b925060208401356001600160401b0380821115612efa57600080fd5b612f0687838801612bfd565b93506040860135915080821115612f1c57600080fd5b50612f2986828701612c71565b9150509250925092565b60006001600160401b03821115612f4c57612f4c612b6b565b50601f01601f191660200190565b6000612f68612c1e84612f33565b9050828152838383011115612f7c57600080fd5b828260208301376000602084830101529392505050565b600082601f830112612fa457600080fd5b611e8683833560208501612f5a565b60008060408385031215612fc657600080fd5b82356001600160401b03811115612fdc57600080fd5b612fe885828601612f93565b9250506020830135612ff981612b2a565b809150509250929050565b60006020828403121561301657600080fd5b81356001600160401b0381111561302c57600080fd5b61131c84828501612f93565b80151581146119d557600080fd5b6000806040838503121561305957600080fd5b823561306481612b2a565b91506020830135612ff981613038565b6000806000806080858703121561308a57600080fd5b843561309581612b2a565b935060208501356130a581612b2a565b92506040850135915060608501356001600160401b038111156130c757600080fd5b8501601f810187136130d857600080fd5b6130e787823560208401612f5a565b91505092959194509250565b60ff811681146119d557600080fd5b60006020828403121561311457600080fd5b8135611e86816130f3565b6000806040838503121561313257600080fd5b823561313d81612b2a565b91506020830135612ff981612b2a565b600181811c9082168061316157607f821691505b6020821081141561318257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600081518084526020808501945080840160005b838110156131f85781516001600160a01b0316875295820195908201906001016131d3565b509495945050505050565b600081518084526020808501945080840160005b838110156131f857815187529582019590820190600101613217565b63ffffffff8516815260806020820152600061325260808301866131bf565b82810360408401526132648186613203565b91505060018060a01b038316606083015295945050505050565b805161328981613038565b919050565b6000602082840312156132a057600080fd5b8151611e8681613038565b805161328981612ccc565b6000602082840312156132c857600080fd5b8151611e8681612ccc565b60006060820163ffffffff861683526020606081850152818651808452608086019150828801935060005b8181101561331a578451835293830193918301916001016132fe565b50506001600160a01b0395909516604094909401939093525091949350505050565b63ffffffff8416815260606020820152600061335b60608301856131bf565b828103604084015261336d8185613203565b9695505050505050565b60006020828403121561338957600080fd5b5051919050565b835160009082906020808801845b838110156133c35781516001600160a01b03168552938201939082019060010161339e565b5050865181880193925060005b818110156133ec578451845293820193928201926001016133d0565b50505060e09490941b6001600160e01b0319168452505060049091019392505050565b634e487b7160e01b600052603260045260246000fd5b805161328981612b2a565b60006020828403121561344257600080fd5b8151611e8681612b2a565b634e487b7160e01b600052601160045260246000fd5b60006000198214156134775761347761344d565b5060010190565b600082601f83011261348f57600080fd5b815161349d612c1e82612f33565b8181528460208386010111156134b257600080fd5b61131c826020830160208701612aa6565b8051613289816130f3565b6000602082840312156134e057600080fd5b81516001600160401b03808211156134f757600080fd5b90830190610100828603121561350c57600080fd5b613514612b81565b61351d836132ab565b815261352b602084016132ab565b602082015261353c60408401613425565b604082015261354d6060840161327e565b606082015261355e6080840161327e565b608082015260a08301518281111561357557600080fd5b6135818782860161347e565b60a08301525061359360c084016134c3565b60c08201526135a460e08401613425565b60e082015295945050505050565b6040815260006135c560408301856131bf565b82810360208401526135d78185613203565b95945050505050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600081600019048311821515161561364b5761364b61344d565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b66697066733a2f2f60c81b8152600083516136f6816007850160208801612aa6565b602f60f81b6007918401918201528351613717816008840160208801612aa6565b01600801949350505050565b600082198211156137365761373661344d565b500190565b60008282101561374d5761374d61344d565b500390565b634e487b7160e01b600052601260045260246000fd5b60008261377757613777613752565b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261382857613828613752565b500690565b6000835161383f818460208801612aa6565b835190830190613853818360208801612aa6565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061336d90830184612ad2565b6000602082840312156138a157600080fd5b8151611e8681612a7356fe68747470733a2f2f67657473706c6963652e696f2f636f6e74726163742d6d65746164617461a2646970667358221220eefc55241b0e9d15d85873414905356901cfe5a73e6b7232f0c51c024d70f4c864736f6c634300080a0033