610100604052600060015560006008553480156200001c57600080fd5b506040516200342e3803806200342e8339810160408190526200003f9162000318565b6040518060400160405280601381526020017f48617a65204d6f6e6b657920536f6369657479000000000000000000000000008152506040518060400160405280600481526020016348415a4560e01b8152508484620000ae620000a86200021e60201b60201c565b62000222565b600081116200011b5760405162461bcd60e51b815260206004820152602e60248201527f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060448201526d6e6f6e7a65726f20737570706c7960901b60648201526084015b60405180910390fd5b600082116200017d5760405162461bcd60e51b815260206004820152602760248201527f455243373231413a206d61782062617463682073697a65206d757374206265206044820152666e6f6e7a65726f60c81b606482015260840162000112565b83516200019290600290602087019062000272565b508251620001a890600390602086019062000272565b5060a0919091526080525050600160095560c083905260e081905281811115620002155760405162461bcd60e51b815260206004820152601d60248201527f6c617267657220636f6c6c656374696f6e2073697a65206e6565646564000000604482015260640162000112565b50505062000384565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620002809062000347565b90600052602060002090601f016020900481019282620002a45760008555620002ef565b82601f10620002bf57805160ff1916838001178555620002ef565b82800160010185558215620002ef579182015b82811115620002ef578251825591602001919060010190620002d2565b50620002fd92915062000301565b5090565b5b80821115620002fd576000815560010162000302565b6000806000606084860312156200032e57600080fd5b8351925060208401519150604084015190509250925092565b600181811c908216806200035c57607f821691505b602082108114156200037e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161302a62000404600039600081816107080152610d20015260008181610471015261140c015260008181610db601528181610e4401528181610e7c0152818161205c0152818161208601526126630152600081816113940152818161179c01528181611e470152611e79015261302a6000f3fe6080604052600436106102045760003560e01c80638bc35c2f11610118578063c87b56dd116100a0578063dc33e6811161006f578063dc33e6811461064d578063e985e9c51461066d578063f2fde38b146106b6578063f5f7c80c146106d6578063fbe1aa51146106f657600080fd5b8063c87b56dd146105e4578063c9b298f114610604578063d7224ba014610617578063dbcad76f1461062d57600080fd5b806395d89b41116100e757806395d89b4114610567578063a22cb4651461057c578063ac4460021461059c578063b3ab66b0146105b1578063b88d4fde146105c457600080fd5b80638bc35c2f1461045f5780638da5cb5b1461049357806390aa0b0f146104b15780639231ab2a1461051957600080fd5b80632d20fb601161019b5780634f6ccce71161016a5780634f6ccce7146103ca57806355f804b3146103ea5780636352211e1461040a57806370a082311461042a578063715018a61461044a57600080fd5b80632d20fb601461034a5780632f745c591461036a578063375a069a1461038a57806342842e0e146103aa57600080fd5b806312fb92e0116101d757806312fb92e0146102ba57806318160ddd146102f55780631dc4a6261461030a57806323b872dd1461032a57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b50610229610224366004612bfb565b61072a565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b50610253610797565b6040516102359190612dc9565b34801561026c57600080fd5b5061028061027b366004612ca7565b610829565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612b17565b6108b9565b005b3480156102c657600080fd5b506102e76102d5366004612991565b600b6020526000908152604090205481565b604051908152602001610235565b34801561030157600080fd5b506001546102e7565b34801561031657600080fd5b506102b8610325366004612ce2565b6109d1565b34801561033657600080fd5b506102b86103453660046129df565b610a92565b34801561035657600080fd5b506102b8610365366004612ca7565b610a9d565b34801561037657600080fd5b506102e7610385366004612b17565b610b4e565b34801561039657600080fd5b506102b86103a5366004612ca7565b610cd6565b3480156103b657600080fd5b506102b86103c53660046129df565b610eb2565b3480156103d657600080fd5b506102e76103e5366004612ca7565b610ecd565b3480156103f657600080fd5b506102b8610405366004612c35565b610f36565b34801561041657600080fd5b50610280610425366004612ca7565b610f8a565b34801561043657600080fd5b506102e7610445366004612991565b610f9c565b34801561045657600080fd5b506102b861102d565b34801561046b57600080fd5b506102e77f000000000000000000000000000000000000000000000000000000000000000081565b34801561049f57600080fd5b506000546001600160a01b0316610280565b3480156104bd57600080fd5b50600a546104ec9063ffffffff81169067ffffffffffffffff6401000000008204811691600160601b90041683565b6040805163ffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610235565b34801561052557600080fd5b50610539610534366004612ca7565b611081565b6040805182516001600160a01b0316815260209283015167ffffffffffffffff169281019290925201610235565b34801561057357600080fd5b5061025361109e565b34801561058857600080fd5b506102b8610597366004612adb565b6110ad565b3480156105a857600080fd5b506102b8611172565b6102b86105bf366004612ca7565b6112aa565b3480156105d057600080fd5b506102b86105df366004612a1b565b6114af565b3480156105f057600080fd5b506102536105ff366004612ca7565b61152e565b6102b8610612366004612ca7565b611609565b34801561062357600080fd5b506102e760085481565b34801561063957600080fd5b50610229610648366004612cc0565b611857565b34801561065957600080fd5b506102e7610668366004612991565b61186c565b34801561067957600080fd5b506102296106883660046129ac565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156106c257600080fd5b506102b86106d1366004612991565b611877565b3480156106e257600080fd5b506102b86106f1366004612b41565b611930565b34801561070257600080fd5b506102e77f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b031982166380ac58cd60e01b148061075b57506001600160e01b03198216635b5e139f60e01b145b8061077657506001600160e01b0319821663780e9d6360e01b145b8061079157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600280546107a690612efc565b80601f01602080910402602001604051908101604052809291908181526020018280546107d290612efc565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050905090565b6000610836826001541190565b61089d5760405162461bcd60e51b815260206004820152602d60248201527f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560448201526c3c34b9ba32b73a103a37b5b2b760991b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006108c482610f8a565b9050806001600160a01b0316836001600160a01b031614156109335760405162461bcd60e51b815260206004820152602260248201527f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60448201526132b960f11b6064820152608401610894565b336001600160a01b038216148061094f575061094f8133610688565b6109c15760405162461bcd60e51b815260206004820152603960248201527f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656420666f7220616c6c000000000000006064820152608401610894565b6109cc8383836119da565b505050565b6000546001600160a01b03163314610a195760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b6040805160608101825263ffffffff9290921680835267ffffffffffffffff94851660208401819052939094169101819052600a80546bffffffffffffffffffffffff19169093176401000000009092029190911773ffffffffffffffff0000000000000000000000001916600160601b909102179055565b6109cc838383611a43565b6000546001600160a01b03163314610ae55760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b60026009541415610b385760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610894565b6002600955610b4681611dd6565b506001600955565b6000610b5983610f9c565b8210610bb25760405162461bcd60e51b815260206004820152602260248201527f455243373231413a206f776e657220696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610894565b6000610bbd60015490565b905060008060005b83811015610c67576000818152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b90910467ffffffffffffffff169183019190915215610c1857805192505b876001600160a01b0316836001600160a01b03161415610c545786841415610c465750935061079192505050565b83610c5081612f37565b9450505b5080610c5f81612f37565b915050610bc5565b5060405162461bcd60e51b815260206004820152602e60248201527f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060448201527f6f776e657220627920696e6465780000000000000000000000000000000000006064820152608401610894565b6000546001600160a01b03163314610d1e5760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b7f000000000000000000000000000000000000000000000000000000000000000081610d4960015490565b610d539190612e2f565b1115610db15760405162461bcd60e51b815260206004820152602760248201527f746f6f206d616e7920616c7265616479206d696e746564206265666f72652064604482015266195d881b5a5b9d60ca1b6064820152608401610894565b610ddb7f000000000000000000000000000000000000000000000000000000000000000082612f52565b15610e3d5760405162461bcd60e51b815260206004820152602c60248201527f63616e206f6e6c79206d696e742061206d756c7469706c65206f66207468652060448201526b6d6178426174636853697a6560a01b6064820152608401610894565b6000610e697f000000000000000000000000000000000000000000000000000000000000000083612e47565b905060005b818110156109cc57610ea0337f0000000000000000000000000000000000000000000000000000000000000000611fc0565b80610eaa81612f37565b915050610e6e565b6109cc838383604051806020016040528060008152506114af565b6000610ed860015490565b8210610f325760405162461bcd60e51b815260206004820152602360248201527f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f756044820152626e647360e81b6064820152608401610894565b5090565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b6109cc600c83836128cd565b6000610f9582611fda565b5192915050565b60006001600160a01b0382166110085760405162461bcd60e51b815260206004820152602b60248201527f455243373231413a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b6064820152608401610894565b506001600160a01b03166000908152600560205260409020546001600160801b031690565b6000546001600160a01b031633146110755760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b61107f6000612192565b565b604080518082019091526000808252602082015261079182611fda565b6060600380546107a690612efc565b6001600160a01b0382163314156111065760405162461bcd60e51b815260206004820152601a60248201527f455243373231413a20617070726f766520746f2063616c6c65720000000000006044820152606401610894565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b031633146111ba5760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b6002600954141561120d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610894565b6002600955604051600090339047908381818185875af1925050503d8060008114611254576040519150601f19603f3d011682016040523d82523d6000602084013e611259565b606091505b5050905080610b465760405162461bcd60e51b815260206004820152601060248201527f5472616e73666572206661696c65642e000000000000000000000000000000006044820152606401610894565b3233146112f95760405162461bcd60e51b815260206004820152601e60248201527f5468652063616c6c657220697320616e6f7468657220636f6e747261637400006044820152606401610894565b60408051606081018252600a5463ffffffff811680835267ffffffffffffffff640100000000830481166020850152600160601b9092049091169282018390529091906113468282611857565b6113925760405162461bcd60e51b815260206004820152601d60248201527f7075626c69632073616c6520686173206e6f7420626567756e207965740000006044820152606401610894565b7f0000000000000000000000000000000000000000000000000000000000000000846113bd60015490565b6113c79190612e2f565b111561140a5760405162461bcd60e51b815260206004820152601260248201527172656163686564206d617820737570706c7960701b6044820152606401610894565b7f0000000000000000000000000000000000000000000000000000000000000000846114353361186c565b61143f9190612e2f565b111561148d5760405162461bcd60e51b815260206004820152601660248201527f63616e206e6f74206d696e742074686973206d616e79000000000000000000006044820152606401610894565b6114973385611fc0565b6114a96114a48584612e5b565b6121ef565b50505050565b6114ba848484611a43565b6114c68484848461227d565b6114a95760405162461bcd60e51b815260206004820152603360248201527f455243373231413a207472616e7366657220746f206e6f6e204552433732315260448201527232b1b2b4bb32b91034b6b83632b6b2b73a32b960691b6064820152608401610894565b606061153b826001541190565b6115ad5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610894565b60006115b76123d7565b905060008151116115d75760405180602001604052806000815250611602565b806115e1846123e6565b6040516020016115f2929190612d5e565b6040516020818303038152906040525b9392505050565b3233146116585760405162461bcd60e51b815260206004820152601e60248201527f5468652063616c6c657220697320616e6f7468657220636f6e747261637400006044820152606401610894565b600a5460009061167b908390640100000000900467ffffffffffffffff16612e5b565b9050806116d55760405162461bcd60e51b815260206004820152602260248201527f70726573616c654c6973742073616c6520686173206e6f7420626567756e2079604482015261195d60f21b6064820152608401610894565b336000908152600b602052604090205461173b5760405162461bcd60e51b815260206004820152602160248201527f6e6f7420656c696769626c6520666f722070726573616c654c697374206d696e6044820152601d60fa1b6064820152608401610894565b336000908152600b602052604090205482111561179a5760405162461bcd60e51b815260206004820152601960248201527f4d617820616d6f756e7420616c7265616479206d696e746564000000000000006044820152606401610894565b7f0000000000000000000000000000000000000000000000000000000000000000826117c560015490565b6117cf9190612e2f565b11156118125760405162461bcd60e51b815260206004820152601260248201527172656163686564206d617820737570706c7960701b6044820152606401610894565b336000908152600b602052604090205461182d908390612ea2565b336000818152600b602052604090209190915561184a9083611fc0565b611853816121ef565b5050565b60008215801590611602575050421015919050565b6000610791826124fc565b6000546001600160a01b031633146118bf5760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b6001600160a01b0381166119245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610894565b61192d81612192565b50565b6000546001600160a01b031633146119785760405162461bcd60e51b81526020600482018190526024820152600080516020612fd58339815191526044820152606401610894565b60005b82518110156109cc5781600b600085848151811061199b5761199b612f92565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080806119d290612f37565b91505061197b565b600082815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000611a4e82611fda565b80519091506000906001600160a01b0316336001600160a01b03161480611a85575033611a7a84610829565b6001600160a01b0316145b80611a9757508151611a979033610688565b905080611b0c5760405162461bcd60e51b815260206004820152603260248201527f455243373231413a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610894565b846001600160a01b031682600001516001600160a01b031614611b805760405162461bcd60e51b815260206004820152602660248201527f455243373231413a207472616e736665722066726f6d20696e636f72726563746044820152651037bbb732b960d11b6064820152608401610894565b6001600160a01b038416611be45760405162461bcd60e51b815260206004820152602560248201527f455243373231413a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610894565b611bf460008484600001516119da565b6001600160a01b0385166000908152600560205260408120805460019290611c269084906001600160801b0316612e7a565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03861660009081526005602052604081208054600194509092611c7291859116612e0d565b82546001600160801b039182166101009390930a9283029190920219909116179055506040805180820182526001600160a01b03808716825267ffffffffffffffff428116602080850191825260008981526004909152948520935184549151909216600160a01b026001600160e01b03199091169190921617179055611cfa846001612e2f565b6000818152600460205260409020549091506001600160a01b0316611d8c57611d24816001541190565b15611d8c5760408051808201825284516001600160a01b03908116825260208087015167ffffffffffffffff9081168285019081526000878152600490935294909120925183549451909116600160a01b026001600160e01b03199094169116179190911790555b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b60085481611e265760405162461bcd60e51b815260206004820152601860248201527f7175616e74697479206d757374206265206e6f6e7a65726f00000000000000006044820152606401610894565b60006001611e348484612e2f565b611e3e9190612ea2565b9050611e6b60017f0000000000000000000000000000000000000000000000000000000000000000612ea2565b811115611ea057611e9d60017f0000000000000000000000000000000000000000000000000000000000000000612ea2565b90505b611eab816001541190565b611f065760405162461bcd60e51b815260206004820152602660248201527f6e6f7420656e6f756768206d696e7465642079657420666f722074686973206360448201526506c65616e75760d41b6064820152608401610894565b815b818111611fac576000818152600460205260409020546001600160a01b0316611f9a576000611f3682611fda565b60408051808201825282516001600160a01b03908116825260209384015167ffffffffffffffff9081168584019081526000888152600490965293909420915182549351909416600160a01b026001600160e01b0319909316931692909217179055505b80611fa481612f37565b915050611f08565b50611fb8816001612e2f565b600855505050565b6118538282604051806020016040528060008152506125a6565b6040805180820190915260008082526020820152611ff9826001541190565b6120585760405162461bcd60e51b815260206004820152602a60248201527f455243373231413a206f776e657220717565727920666f72206e6f6e657869736044820152693a32b73a103a37b5b2b760b11b6064820152608401610894565b60007f000000000000000000000000000000000000000000000000000000000000000083106120b9576120ab7f000000000000000000000000000000000000000000000000000000000000000084612ea2565b6120b6906001612e2f565b90505b825b818110612123576000818152600460209081526040918290208251808401909352546001600160a01b038116808452600160a01b90910467ffffffffffffffff16918301919091521561211057949350505050565b508061211b81612ee5565b9150506120bb565b5060405162461bcd60e51b815260206004820152602f60248201527f455243373231413a20756e61626c6520746f2064657465726d696e652074686560448201527f206f776e6572206f6620746f6b656e00000000000000000000000000000000006064820152608401610894565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8034101561223f5760405162461bcd60e51b815260206004820152601660248201527f4e65656420746f2073656e64206d6f7265204554482e000000000000000000006044820152606401610894565b8034111561192d57336108fc6122558334612ea2565b6040518115909202916000818181858888f19350505050158015611853573d6000803e3d6000fd5b60006001600160a01b0384163b156123cb57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906122c1903390899088908890600401612d8d565b602060405180830381600087803b1580156122db57600080fd5b505af192505050801561230b575060408051601f3d908101601f1916820190925261230891810190612c18565b60015b6123b1573d808015612339576040519150601f19603f3d011682016040523d82523d6000602084013e61233e565b606091505b5080516123a95760405162461bcd60e51b815260206004820152603360248201527f455243373231413a207472616e7366657220746f206e6f6e204552433732315260448201527232b1b2b4bb32b91034b6b83632b6b2b73a32b960691b6064820152608401610894565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506123cf565b5060015b949350505050565b6060600c80546107a690612efc565b60608161240a5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612434578061241e81612f37565b915061242d9050600a83612e47565b915061240e565b60008167ffffffffffffffff81111561244f5761244f612fa8565b6040519080825280601f01601f191660200182016040528015612479576020820181803683370190505b5090505b84156123cf5761248e600183612ea2565b915061249b600a86612f52565b6124a6906030612e2f565b60f81b8183815181106124bb576124bb612f92565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506124f5600a86612e47565b945061247d565b60006001600160a01b03821661257a5760405162461bcd60e51b815260206004820152603160248201527f455243373231413a206e756d626572206d696e74656420717565727920666f7260448201527f20746865207a65726f20616464726573730000000000000000000000000000006064820152608401610894565b506001600160a01b0316600090815260056020526040902054600160801b90046001600160801b031690565b6001546001600160a01b0384166126095760405162461bcd60e51b815260206004820152602160248201527f455243373231413a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610894565b612614816001541190565b156126615760405162461bcd60e51b815260206004820152601d60248201527f455243373231413a20746f6b656e20616c7265616479206d696e7465640000006044820152606401610894565b7f00000000000000000000000000000000000000000000000000000000000000008311156126dc5760405162461bcd60e51b815260206004820152602260248201527f455243373231413a207175616e7469747920746f206d696e7420746f6f2068696044820152610ced60f31b6064820152608401610894565b6001600160a01b0384166000908152600560209081526040918290208251808401845290546001600160801b038082168352600160801b9091041691810191909152815180830190925280519091908190612738908790612e0d565b6001600160801b031681526020018583602001516127569190612e0d565b6001600160801b039081169091526001600160a01b0380881660008181526005602090815260408083208751978301518716600160801b0297909616969096179094558451808601865291825267ffffffffffffffff4281168386019081528883526004909552948120915182549451909516600160a01b026001600160e01b031990941694909216939093179190911790915582905b858110156128c25760405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a461283a600088848861227d565b6128a25760405162461bcd60e51b815260206004820152603360248201527f455243373231413a207472616e7366657220746f206e6f6e204552433732315260448201527232b1b2b4bb32b91034b6b83632b6b2b73a32b960691b6064820152608401610894565b816128ac81612f37565b92505080806128ba90612f37565b9150506127ed565b506001819055611dce565b8280546128d990612efc565b90600052602060002090601f0160209004810192826128fb5760008555612941565b82601f106129145782800160ff19823516178555612941565b82800160010185558215612941579182015b82811115612941578235825591602001919060010190612926565b50610f329291505b80821115610f325760008155600101612949565b80356001600160a01b038116811461297457600080fd5b919050565b803567ffffffffffffffff8116811461297457600080fd5b6000602082840312156129a357600080fd5b6116028261295d565b600080604083850312156129bf57600080fd5b6129c88361295d565b91506129d66020840161295d565b90509250929050565b6000806000606084860312156129f457600080fd5b6129fd8461295d565b9250612a0b6020850161295d565b9150604084013590509250925092565b60008060008060808587031215612a3157600080fd5b612a3a8561295d565b93506020612a4981870161295d565b935060408601359250606086013567ffffffffffffffff80821115612a6d57600080fd5b818801915088601f830112612a8157600080fd5b813581811115612a9357612a93612fa8565b612aa5601f8201601f19168501612ddc565b91508082528984828501011115612abb57600080fd5b808484018584013760008482840101525080935050505092959194509250565b60008060408385031215612aee57600080fd5b612af78361295d565b915060208301358015158114612b0c57600080fd5b809150509250929050565b60008060408385031215612b2a57600080fd5b612b338361295d565b946020939093013593505050565b60008060408385031215612b5457600080fd5b823567ffffffffffffffff80821115612b6c57600080fd5b818501915085601f830112612b8057600080fd5b8135602082821115612b9457612b94612fa8565b8160051b9250612ba5818401612ddc565b8281528181019085830185870184018b1015612bc057600080fd5b600096505b84871015612bea57612bd68161295d565b835260019690960195918301918301612bc5565b509997909101359750505050505050565b600060208284031215612c0d57600080fd5b813561160281612fbe565b600060208284031215612c2a57600080fd5b815161160281612fbe565b60008060208385031215612c4857600080fd5b823567ffffffffffffffff80821115612c6057600080fd5b818501915085601f830112612c7457600080fd5b813581811115612c8357600080fd5b866020828501011115612c9557600080fd5b60209290920196919550909350505050565b600060208284031215612cb957600080fd5b5035919050565b60008060408385031215612cd357600080fd5b50508035926020909101359150565b600080600060608486031215612cf757600080fd5b612d0084612979565b9250612d0e60208501612979565b9150604084013563ffffffff81168114612d2757600080fd5b809150509250925092565b60008151808452612d4a816020860160208601612eb9565b601f01601f19169290920160200192915050565b60008351612d70818460208801612eb9565b835190830190612d84818360208801612eb9565b01949350505050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612dbf6080830184612d32565b9695505050505050565b6020815260006116026020830184612d32565b604051601f8201601f1916810167ffffffffffffffff81118282101715612e0557612e05612fa8565b604052919050565b60006001600160801b03808316818516808303821115612d8457612d84612f66565b60008219821115612e4257612e42612f66565b500190565b600082612e5657612e56612f7c565b500490565b6000816000190483118215151615612e7557612e75612f66565b500290565b60006001600160801b0383811690831681811015612e9a57612e9a612f66565b039392505050565b600082821015612eb457612eb4612f66565b500390565b60005b83811015612ed4578181015183820152602001612ebc565b838111156114a95750506000910152565b600081612ef457612ef4612f66565b506000190190565b600181811c90821680612f1057607f821691505b60208210811415612f3157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612f4b57612f4b612f66565b5060010190565b600082612f6157612f61612f7c565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461192d57600080fdfe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220e80978fafac938c07fc899a539197061764c519d6454bb082e3f92d75124cb3564736f6c63430008070033000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000010680000000000000000000000000000000000000000000000000000000000000046