0x60806040526008805460ff19169055600f8054600160a01b600160e01b031916602d60a51b1790553480156200003457600080fd5b50604051620033763803806200337683398101604081905262000057916200018c565b620000623362000123565b6001600555600f80546001600160a01b038086166001600160a01b031992831617909255600e8054928516929091168217905560408051637f0a6c5160e11b8152905163fe14d8a2916004808201926020929091908290030181865afa158015620000d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f79190620001e0565b600655600d80546001600160a01b0319166001600160a01b039290921691909117905550620001fa9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018957600080fd5b50565b600080600060608486031215620001a257600080fd5b8351620001af8162000173565b6020850151909350620001c28162000173565b6040850151909250620001d58162000173565b809150509250925092565b600060208284031215620001f357600080fd5b5051919050565b61316c806200020a6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806398eaa4a71161010f578063e6b165ed116100a2578063fc446e5b11610071578063fc446e5b146104bd578063fdaec65c146104e8578063fdf35f0c146104fb578063fe14d8a21461050e57600080fd5b8063e6b165ed14610471578063e77ec69514610484578063f2fde38b14610497578063f8869cf5146104aa57600080fd5b8063abfae7f1116100de578063abfae7f11461041f578063d5b9221b14610432578063d8952a4914610455578063e1b5b8a81461046857600080fd5b806398eaa4a7146103a5578063a2f7d4c3146103b8578063ab7f9c7a146103eb578063ab8a1f19146103fe57600080fd5b806345c613501161018757806377329f351161015657806377329f351461035b57806388730d1e1461036e5780638da5cb5b146103815780638ee7fb2d1461039257600080fd5b806345c61350146102ea5780636ccd5e5014610323578063704f7c7514610340578063715018a61461035357600080fd5b806320be2759116101c357806320be27591461025f578063308640281461028a57806330c8d9df146102c457806330ea4199146102d757600080fd5b8063070ffee3146101f55780630a6f94fc1461020a5780630aa287661461021d5780631052581414610230575b600080fd5b6102086102033660046129ae565b610517565b005b610208610218366004612a03565b610aa1565b61020861022b366004612a2b565b610b4a565b61024361023e366004612aae565b610e2c565b60405165ffffffffffff90911681526020015b60405180910390f35b600f54610272906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b61029d610298366004612ada565b610fa2565b604080516001600160a01b0390941684526020840192909252151590820152606001610256565b6102086102d2366004612af3565b610fe2565b6102086102e5366004612b25565b611071565b6103156102f8366004612aae565b600b60209081526000928352604080842090915290825290205481565b604051908152602001610256565b6008546103309060ff1681565b6040519015158152602001610256565b61020861034e366004612aae565b611113565b6102086113b9565b610208610369366004612af3565b61141f565b61020861037c366004612b54565b6117a7565b6000546001600160a01b0316610272565b6102086103a0366004612af3565b611a7e565b6102086103b3366004612af3565b611c60565b6102436103c6366004612aae565b600a60209081526000928352604080842090915290825290205465ffffffffffff1681565b6102086103f9366004612aae565b611d76565b61041161040c366004612af3565b611f13565b604051610256929190612bcd565b61031561042d366004612d14565b612270565b610330610440366004612af3565b60046020526000908152604090205460ff1681565b610208610463366004612d93565b6122d0565b61031560075481565b61020861047f366004612af3565b612411565b610315610492366004612aae565b6124ae565b6102086104a5366004612af3565b6125e2565b6102086104b8366004612ada565b6126c4565b6103156104cb366004612aae565b600c60209081526000928352604080842090915290825290205481565b600d54610272906001600160a01b031681565b600e54610272906001600160a01b031681565b61031560065481565b6002600554141561056f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260055560085460ff166105c65760405162461bcd60e51b815260206004820152601460248201527f436c61696d696e6720697320696e6163746976650000000000000000000000006044820152606401610566565b6105e9335b6001600160a01b031660009081526004602052604090205460ff1690565b806105fc57506001600160a01b03831633145b6106485760405162461bcd60e51b815260206004820152601a60248201527f556e617574686f72697a656420636c61696d20617474656d70740000000000006044820152606401610566565b6000805b60ff81168311156109cc573684848360ff1681811061066d5761066d612dcc565b905060200281019061067f9190612dfb565b905060006010816106936020850185612af3565b6001600160a01b0316815260208101919091526040016000205460ff169050806106ff5760405162461bcd60e51b815260206004820152601460248201527f556e737570706f7274656420636f6e74726163740000000000000000000000006044820152606401610566565b6000600961070e600184612e68565b60ff168154811061072157610721612dcc565b600091825260209182902060408051606081018252600390930290910180546001600160a01b0316835260018101549383019390935260029092015460ff16151591810182905291506107b65760405162461bcd60e51b815260206004820152601160248201527f496e61637469766520636f6e74726163740000000000000000000000000000006044820152606401610566565b60005b6107c66020850185612e8b565b90508161ffff1610156109b55760006107e26020860186612e8b565b8361ffff168181106107f6576107f6612dcc565b905060200201602081019061080b9190612ef3565b83516040517f6352211e00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529192506000916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190612f0e565b90508a6001600160a01b0316816001600160a01b0316146108fe5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206f776e657220636c61696d20617474656d707400000000006044820152606401610566565b600061091485600001518463ffffffff166124ae565b9050801561099f57610926818a612f2b565b85516001600160a01b039081166000908152600a6020908152604080832063ffffffff891680855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000164265ffffffffffff161790558a519094168352600c82528083209383529290529081205598505b50505080806109ad90612f43565b9150506107b9565b5050505080806109c490612f65565b91505061064c565b508015610a9657600f546040517fce9a38540000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018490529091169063ce9a385490604401600060405180830381600087803b158015610a3a57600080fd5b505af1158015610a4e573d6000803e3d6000fd5b50505050836001600160a01b03167f896e034966eaaf1adc54acc0f257056febbd300c9e47182cf761982cf1f5e43082604051610a8d91815260200190565b60405180910390a25b505060016005555050565b6000610ab06020830183612af3565b6001600160a01b031614158015610ae057506000610ad46040830160208401612af3565b6001600160a01b031614155b610b2c5760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646d696e206164647265737300000000000000000000006044820152606401610566565b610b3960018260026128ca565b50506003805460ff19166001179055565b610b533361271e565b610b9f5760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b828114610bee5760405162461bcd60e51b815260206004820152601560248201527f4172726179206c656e677468206d69736d6174636800000000000000000000006044820152606401610566565b6001600160a01b03851660009081526010602052604081205460ff16906009610c18600184612e68565b60ff1681548110610c2b57610c2b612dcc565b6000918252602080832060408051606081018252600390940290910180546001600160a01b0316845260018101549284019290925260029091015460ff1615159082015291505b61ffff8116861115610e225784848261ffff16818110610c9457610c94612dcc565b9050602002016020810190610ca99190612f85565b65ffffffffffff16610cd78989898561ffff16818110610ccb57610ccb612dcc565b90506020020135610e2c565b65ffffffffffff161015610e1057610d368288888461ffff16818110610cff57610cff612dcc565b9050602002013587878561ffff16818110610d1c57610d1c612dcc565b9050602002016020810190610d319190612f85565b61276f565b6001600160a01b0389166000908152600c6020526040812090898961ffff8616818110610d6557610d65612dcc565b9050602002013581526020019081526020016000208190555084848261ffff16818110610d9457610d94612dcc565b9050602002016020810190610da99190612f85565b6001600160a01b0389166000908152600a6020526040812090898961ffff8616818110610dd857610dd8612dcc565b90506020020135815260200190815260200160002060006101000a81548165ffffffffffff021916908365ffffffffffff1602179055505b80610e1a81612f43565b915050610c72565b5050505050505050565b6001600160a01b0382166000908152600a6020908152604080832084845290915281205465ffffffffffff168015610e65579050610f9c565b600e546040517fa2f7d4c30000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690529091169063a2f7d4c390604401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190612fad565b905065ffffffffffff811615610f0a579050610f9c565b600d546040517fa2f7d4c30000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690529091169063a2f7d4c390604401602060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190612fad565b9150505b92915050565b60098181548110610fb257600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925060ff1683565b610feb3361271e565b6110375760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b600f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61107a3361271e565b6110c65760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b6008805460ff1916821515908117909155604080519182523360208301527f57ec2230a677703d9071197a435147b1a0ed881f4b08d2aad2c73f279be0072f91015b60405180910390a150565b61111c3361271e565b6111685760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b80670de0b6b3a76400008110156111c15760405162461bcd60e51b815260206004820152601e60248201527f426173652072617465206d75737420626520696e2077656920756e69747300006044820152606401610566565b6111ca83612843565b6112165760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420636f6e7472616374416464726573730000000000000000006044820152606401610566565b6001600160a01b03831660009081526010602052604090205460ff161561127f5760405162461bcd60e51b815260206004820152601a60248201527f436f6e747261637420616c726561647920737570706f727465640000000000006044820152606401610566565b60408051606081019091526001600160a01b0384168152600f546009919060208201906112ce9074010000000000000000000000000000000000000000900467ffffffffffffffff1686612fc6565b815260016020918201819052835480820185556000948552828520845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831617815584840151928101929092556040938401516002909201805460ff199081169315159390931790556009549088168552601090925291909220805490911660ff928316179055600f80547c0100000000000000000000000000000000000000000000000000000000900490911690601c61139b83612f65565b91906101000a81548160ff021916908360ff16021790555050505050565b6000546001600160a01b031633146114135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610566565b61141d6000612862565b565b600260055414156114725760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610566565b600260055560085460ff166114c95760405162461bcd60e51b815260206004820152601460248201527f436c61696d696e6720697320696e6163746976650000000000000000000000006044820152606401610566565b6114d2336105cb565b806114e557506001600160a01b03811633145b6115315760405162461bcd60e51b815260206004820152601a60248201527f556e617574686f72697a656420636c61696d20617474656d70740000000000006044820152606401610566565b60008061153d83611f13565b91509150600081116115915760405162461bcd60e51b815260206004820152601b60248201527f4e6f20746f6b656e732068617665206265656e206163637275656400000000006044820152606401610566565b60005b82518160ff1610156116da576000838260ff16815181106115b7576115b7612dcc565b602002602001015190506000816060015111156116c75760005b8160200151518161ffff1610156116c55781516001600160a01b03166000908152600a6020908152604082209084015180514293919061ffff861690811061161b5761161b612dcc565b6020026020010151815260200190815260200160002060006101000a81548165ffffffffffff021916908365ffffffffffff160217905550600c600083600001516001600160a01b03166001600160a01b03168152602001908152602001600020600083602001518361ffff168151811061169857611698612dcc565b602002602001015181526020019081526020016000206000905580806116bd90612f43565b9150506115d1565b505b50806116d281612f65565b915050611594565b50600f546040517fce9a38540000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018490529091169063ce9a385490604401600060405180830381600087803b15801561174257600080fd5b505af1158015611756573d6000803e3d6000fd5b50505050826001600160a01b03167f896e034966eaaf1adc54acc0f257056febbd300c9e47182cf761982cf1f5e4308260405161179591815260200190565b60405180910390a25050600160055550565b6117b0336105cb565b6117fc5760405162461bcd60e51b815260206004820152601860248201527f53656e646572206973206e6f7420617574686f72697a656400000000000000006044820152606401610566565b80670de0b6b3a76400008110156118555760405162461bcd60e51b815260206004820152601e60248201527f426173652072617465206d75737420626520696e2077656920756e69747300006044820152606401610566565b60008363ffffffff16116118ab5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420746f6b656e496400000000000000000000000000000000006044820152606401610566565b6001600160a01b03841660009081526010602052604090205460ff16806119145760405162461bcd60e51b815260206004820152601460248201527f556e737570706f7274656420636f6e74726163740000000000000000000000006044820152606401610566565b6009611921600183612e68565b60ff168154811061193457611934612dcc565b600091825260209091206002600390920201015460ff166119975760405162461bcd60e51b815260206004820152601160248201527f496e61637469766520636f6e74726163740000000000000000000000000000006044820152606401610566565b6119a7858563ffffffff166124ae565b6001600160a01b0386166000818152600c6020908152604080832063ffffffff8a1680855290835281842095909555928252600a815282822093825292909252902080547fffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000164265ffffffffffff16179055600f54611a489074010000000000000000000000000000000000000000900467ffffffffffffffff1684612fc6565b6001600160a01b039095166000908152600b6020908152604080832063ffffffff90971683529590529390932093909355505050565b611a873361271e565b611ad35760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b6001600160a01b03811660009081526010602052604090205460ff16611b3b5760405162461bcd60e51b815260206004820152601460248201527f556e737570706f7274656420636f6e74726163740000000000000000000000006044820152606401610566565b6001600160a01b038116600090815260106020526040812054600990611b669060019060ff16612e68565b60ff1681548110611b7957611b79612dcc565b60009182526020808320600392909202909101600201805460ff1916931515939093179092556001600160a01b038316815260109091526040812054600990611bc79060019060ff16612e68565b60ff1681548110611bda57611bda612dcc565b60009182526020808320600160039093020191909101929092556001600160a01b0383168152601090915260409020805460ff19169055600f80547c0100000000000000000000000000000000000000000000000000000000900460ff1690601c611c4483613001565b91906101000a81548160ff021916908360ff1602179055505050565b611c693361271e565b611cb55760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b611cbe81612843565b611d0a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420636f6e7472616374416464726573730000000000000000006044820152606401610566565b6001600160a01b0381166000908152600460205260409020805460ff191660011790557ff8b6e5731f94977c9f6aca99256be7afb84b3fcf9efee0cddd9822f1cbfe2a4481611d563390565b604080516001600160a01b03938416815292909116602083015201611108565b611d7f3361271e565b611dcb5760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b80670de0b6b3a7640000811015611e245760405162461bcd60e51b815260206004820152601e60248201527f426173652072617465206d75737420626520696e2077656920756e69747300006044820152606401610566565b6001600160a01b03831660009081526010602052604090205460ff16611e8c5760405162461bcd60e51b815260206004820152601460248201527f556e737570706f7274656420636f6e74726163740000000000000000000000006044820152606401610566565b600f54611ebb9074010000000000000000000000000000000000000000900467ffffffffffffffff1683612fc6565b6001600160a01b038416600090815260106020526040902054600990611ee69060019060ff16612e68565b60ff1681548110611ef957611ef9612dcc565b906000526020600020906003020160010181905550505050565b600f5460609060009081907c0100000000000000000000000000000000000000000000000000000000900460ff1667ffffffffffffffff811115611f5957611f59612c96565b604051908082528060200260200182016040528015611fbe57816020015b611fab604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600081525090565b815260200190600190039081611f775790505b50905060008060005b60095460ff8216101561226457600060098260ff1681548110611fec57611fec612dcc565b600091825260209182902060408051606081018252600390930290910180546001600160a01b0316835260018101549383019390935260029092015460ff16158015928201929092529150612251578261204581612f65565b82516040517f8462151c0000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015292965060009350911690638462151c90602401600060405180830381865afa1580156120ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526120f3919081019061303c565b90506000815167ffffffffffffffff81111561211157612111612c96565b60405190808252806020026020018201604052801561213a578160200160208202803683370190505b5090506000805b83518161ffff1610156121f5576000848261ffff168151811061216657612166612dcc565b6020026020010151905060006121808760000151836124ae565b905061218c8185612f2b565b9350612198818b612f2b565b995081868461ffff16815181106121b1576121b1612dcc565b60200260200101818152505080858461ffff16815181106121d4576121d4612dcc565b602002602001018181525050505080806121ed90612f43565b915050612141565b506040805160808101825285516001600160a01b031681526020810185905290810183905260608101829052808961222e60018a612e68565b60ff168151811061224157612241612dcc565b6020026020010181905250505050505b508061225c81612f65565b915050611fc7565b50919590945092505050565b81516001600160a01b03166000908152600b602090815260408083208484529091528120546122a35782602001516122c9565b82516001600160a01b03166000908152600b602090815260408083208584529091529020545b9392505050565b6122d93361271e565b6123255760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b600e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038416908117909155604080517ffe14d8a2000000000000000000000000000000000000000000000000000000008152905163fe14d8a2916004808201926020929091908290030181865afa1580156123af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d39190612fad565b600655600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b61241a3361271e565b6124665760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b6001600160a01b0381166000908152600460205260409020805460ff191690557ff06321695c86a1fbc00e739847170ccd4e7a383985e5636c16f079a2280384b98133611d56565b6001600160a01b03821660009081526010602052604081205460ff16806125175760405162461bcd60e51b815260206004820152601460248201527f556e737570706f7274656420636f6e74726163740000000000000000000000006044820152606401610566565b60006009612526600184612e68565b60ff168154811061253957612539612dcc565b600091825260209182902060408051606081018252600390930290910180546001600160a01b0316835260018101549383019390935260029092015460ff16151591810182905291506125ce5760405162461bcd60e51b815260206004820152601160248201527f496e61637469766520636f6e74726163740000000000000000000000000000006044820152606401610566565b6125d981854261276f565b95945050505050565b6000546001600160a01b0316331461263c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610566565b6001600160a01b0381166126b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610566565b6126c181612862565b50565b6126cd3361271e565b6127195760405162461bcd60e51b815260206004820152601560248201527f4e6f7420616e206f776e6572206f722061646d696e00000000000000000000006044820152606401610566565b600755565b600080546001600160a01b0383811691161480610f9c575060035460ff168015610f9c57506001546001600160a01b0383811691161480610f9c5750506002546001600160a01b0390811691161490565b600080612780856000015185610e2c565b905060006007546000148061279e57506007548465ffffffffffff16105b6127aa576007546127b4565b8365ffffffffffff165b86516001600160a01b03166000908152600c602090815260408083208984529091528120549192506127e68888612270565b905065ffffffffffff84161561283357603c61280a65ffffffffffff8616856130e2565b61281490836130f9565b61281e9190612fc6565b6128289083612f2b565b9450505050506122c9565b603c6006548461280a91906130e2565b60006001600160a01b03821661285b57506000919050565b503b151590565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8260028101928215612928579160200282015b828111156129285781547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038435161782556020909201916001909101906128dd565b50612934929150612938565b5090565b5b808211156129345760008155600101612939565b6001600160a01b03811681146126c157600080fd5b60008083601f84011261297457600080fd5b50813567ffffffffffffffff81111561298c57600080fd5b6020830191508360208260051b85010111156129a757600080fd5b9250929050565b6000806000604084860312156129c357600080fd5b83356129ce8161294d565b9250602084013567ffffffffffffffff8111156129ea57600080fd5b6129f686828701612962565b9497909650939450505050565b600060408284031215612a1557600080fd5b82604083011115612a2557600080fd5b50919050565b600080600080600060608688031215612a4357600080fd5b8535612a4e8161294d565b9450602086013567ffffffffffffffff80821115612a6b57600080fd5b612a7789838a01612962565b90965094506040880135915080821115612a9057600080fd5b50612a9d88828901612962565b969995985093965092949392505050565b60008060408385031215612ac157600080fd5b8235612acc8161294d565b946020939093013593505050565b600060208284031215612aec57600080fd5b5035919050565b600060208284031215612b0557600080fd5b81356122c98161294d565b80358015158114612b2057600080fd5b919050565b600060208284031215612b3757600080fd5b6122c982612b10565b803563ffffffff81168114612b2057600080fd5b600080600060608486031215612b6957600080fd5b8335612b748161294d565b9250612b8260208501612b40565b9150604084013590509250925092565b600081518084526020808501945080840160005b83811015612bc257815187529582019590820190600101612ba6565b509495945050505050565b60006040808301818452808651808352606092508286019150828160051b8701016020808a0160005b84811015612c81577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018652815160806001600160a01b038251168652848201518186880152612c4b82880182612b92565b915050898201518682038b880152612c638282612b92565b928a0151968a01969096525095830195935090820190600101612bf6565b50509690960196909652509295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612d0c57612d0c612c96565b604052919050565b6000808284036080811215612d2857600080fd5b6060811215612d3657600080fd5b506040516060810181811067ffffffffffffffff82111715612d5a57612d5a612c96565b6040528335612d688161294d565b815260208481013590820152612d8060408501612b10565b6040820152946060939093013593505050565b60008060408385031215612da657600080fd5b8235612db18161294d565b91506020830135612dc18161294d565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612e2f57600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff841680821015612e8257612e82612e39565b90039392505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612ec057600080fd5b83018035915067ffffffffffffffff821115612edb57600080fd5b6020019150600581901b36038213156129a757600080fd5b600060208284031215612f0557600080fd5b6122c982612b40565b600060208284031215612f2057600080fd5b81516122c98161294d565b60008219821115612f3e57612f3e612e39565b500190565b600061ffff80831681811415612f5b57612f5b612e39565b6001019392505050565b600060ff821660ff811415612f7c57612f7c612e39565b60010192915050565b600060208284031215612f9757600080fd5b813565ffffffffffff811681146122c957600080fd5b600060208284031215612fbf57600080fd5b5051919050565b600082612ffc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060ff82168061301457613014612e39565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b6000602080838503121561304f57600080fd5b825167ffffffffffffffff8082111561306757600080fd5b818501915085601f83011261307b57600080fd5b81518181111561308d5761308d612c96565b8060051b915061309e848301612cc5565b81815291830184019184810190888411156130b857600080fd5b938501935b838510156130d6578451825293850193908501906130bd565b98975050505050505050565b6000828210156130f4576130f4612e39565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561313157613131612e39565b50029056fea2646970667358221220ef5b41da611373207167c32fd02528c419f0de3fb1678dbed1962e0be2f4e63a64736f6c634300080c0033000000000000000000000000ffe844169bfc6da1b87c9157f684e18e7f1663ad0000000000000000000000001ff94eeb38d25cc081be1b4032afb638bc810728000000000000000000000000b0612ad4a005d60869d5b8269ac7bc794e1a3bde