60c060405260086080819052674d4554414441544160c01b60a09081526200002b91600a9190620002cd565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200005a91600b91620002cd565b506040805160208101918290526000908190526200007b91600c91620002cd565b50666a94d74f430000600e819055600f556122b9601055600b60118190556012805462ffffff191662010001179055600060135560036014556015556108ae6016557f29d49e683bd7a8fbb6cd36773fb395d3ce290f2725a55ca497ad4378e9d62f3f601855348015620000ee57600080fd5b50604080518082018252600f81526e0a6eae0e4cadaca4084dedccae640b608b1b6020808301918252835180850190945260038452620a684b60eb1b9084015281519192916200014191600291620002cd565b50805162000157906003906020840190620002cd565b50506001600055506200016a33620001b8565b6200018e6040518060600160405280602c815260200162003c7f602c91396200020a565b620001b26040518060600160405280602e815260200162003cab602e913962000272565b620003af565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546001600160a01b03163314620002595760405162461bcd60e51b8152602060048201819052602482015260008051602062003c5f83398151915260448201526064015b60405180910390fd5b80516200026e90600d906020840190620002cd565b5050565b6008546001600160a01b03163314620002bd5760405162461bcd60e51b8152602060048201819052602482015260008051602062003c5f833981519152604482015260640162000250565b80516200026e90600c9060208401905b828054620002db9062000373565b90600052602060002090601f016020900481019282620002ff57600085556200034a565b82601f106200031a57805160ff19168380011785556200034a565b828001600101855582156200034a579182015b828111156200034a5782518255916020019190600101906200032d565b50620003589291506200035c565b5090565b5b808211156200035857600081556001016200035d565b600181811c908216806200038857607f821691505b602082108103620003a957634e487b7160e01b600052602260045260246000fd5b50919050565b6138a080620003bf6000396000f3fe6080604052600436106103de5760003560e01c806370a082311161020d578063a45ba8e711610128578063c87b56dd116100bb578063e88731291161008a578063e985e9c51161006f578063e985e9c514610b1a578063efbd73f414610b63578063f2fde38b14610b7657600080fd5b8063e887312914610af0578063e8a3d48514610b0557600080fd5b8063c87b56dd14610a7a578063d5abeb0114610a9a578063de6c6d3614610ab0578063e0a8085314610ad057600080fd5b8063c0e72740116100f7578063c0e72740146109ed578063c23dc68f14610a02578063c4e41b2214610a2f578063c71fbb7114610a4457600080fd5b8063a45ba8e714610978578063b071401b1461098d578063b88d4fde146109ad578063bd2f6eb8146109cd57600080fd5b80638da5cb5b116101a057806395d89b411161016f57806395d89b411461090557806399a2557a1461091a5780639dddc2921461093a578063a22cb4651461095857600080fd5b80638da5cb5b1461089b57806393822557146108b9578063938e3d7b146108cf57806394354fd0146108ef57600080fd5b8063815d544c116101dc578063815d544c1461082657806381692722146108465780638462151c14610866578063861ec1f41461088657600080fd5b806370a08231146107b1578063715018a6146107d15780637cb64759146107e65780637ec4a6591461080657600080fd5b80632db11544116102fd578063518302271161029057806362b99ad41161025f57806362b99ad4146107465780636352211e1461075b57806365a85d481461077b5780636fd02e4b1461079b57600080fd5b806351830227146106cb5780635503a0e8146106ea5780635bbb2177146106ff5780635c975abb1461072c57600080fd5b806342842e0e116102cc57806342842e0e1461063e578063438b63001461065e57806344a0d68a1461068b5780634fdd43cb146106ab57600080fd5b80632db11544146105ea5780632eb4a7ab146105fd5780633c8463a1146106135780633ccfd60b1461062957600080fd5b806313faede6116103755780631c0de051116103445780631c0de0511461058957806323b872dd146105a15780632904e6d9146105c15780632b2bda4f146105d457600080fd5b806313faede61461051657806316ba10e01461052c57806316c38b3c1461054c57806318160ddd1461056c57600080fd5b8063081812fc116103b1578063081812fc1461047b57806308346d85146104b3578063095ea7b3146104c95780630a398b88146104e957600080fd5b806301ffc9a7146103e357806302bdd75514610418578063065721bf1461043a57806306fdde0314610459575b600080fd5b3480156103ef57600080fd5b506104036103fe36600461303f565b610b96565b60405190151581526020015b60405180910390f35b34801561042457600080fd5b50610438610433366004613071565b610c33565b005b34801561044657600080fd5b506015545b60405190815260200161040f565b34801561046557600080fd5b5061046e610c9c565b60405161040f91906130e4565b34801561048757600080fd5b5061049b6104963660046130f7565b610d2e565b6040516001600160a01b03909116815260200161040f565b3480156104bf57600080fd5b5061044b60165481565b3480156104d557600080fd5b506104386104e4366004613127565b610d8b565b3480156104f557600080fd5b5061044b610504366004613151565b60176020526000908152604090205481565b34801561052257600080fd5b5061044b600f5481565b34801561053857600080fd5b5061043861054736600461320b565b610eb9565b34801561055857600080fd5b50610438610567366004613071565b610f18565b34801561057857600080fd5b50600154600054036000190161044b565b34801561059557600080fd5b5060125460ff16610403565b3480156105ad57600080fd5b506104386105bc366004613254565b610f73565b6104386105cf3660046132dc565b610f83565b3480156105e057600080fd5b5061044b60155481565b6104386105f83660046130f7565b611460565b34801561060957600080fd5b5061044b60185481565b34801561061f57600080fd5b5061044b60135481565b34801561063557600080fd5b506104386117f1565b34801561064a57600080fd5b50610438610659366004613254565b6118ad565b34801561066a57600080fd5b5061067e610679366004613151565b6118c8565b60405161040f9190613328565b34801561069757600080fd5b506104386106a63660046130f7565b6119a8565b3480156106b757600080fd5b506104386106c636600461320b565b6119f5565b3480156106d757600080fd5b5060125461040390610100900460ff1681565b3480156106f657600080fd5b5061046e611a50565b34801561070b57600080fd5b5061071f61071a366004613360565b611ade565b60405161040f9190613406565b34801561073857600080fd5b506012546104039060ff1681565b34801561075257600080fd5b5061046e611ba5565b34801561076757600080fd5b5061049b6107763660046130f7565b611bb2565b34801561078757600080fd5b506104386107963660046130f7565b611bbd565b3480156107a757600080fd5b5061044b60145481565b3480156107bd57600080fd5b5061044b6107cc366004613151565b611c0a565b3480156107dd57600080fd5b50610438611c6c565b3480156107f257600080fd5b506104386108013660046130f7565b611cc0565b34801561081257600080fd5b5061043861082136600461320b565b611d0d565b34801561083257600080fd5b506012546104039062010000900460ff1681565b34801561085257600080fd5b506104386108613660046130f7565b611d68565b34801561087257600080fd5b5061067e610881366004613151565b611db5565b34801561089257600080fd5b5060165461044b565b3480156108a757600080fd5b506008546001600160a01b031661049b565b3480156108c557600080fd5b5061044b600e5481565b3480156108db57600080fd5b506104386108ea36600461320b565b611eb2565b3480156108fb57600080fd5b5061044b60115481565b34801561091157600080fd5b5061046e611f0d565b34801561092657600080fd5b5061067e610935366004613471565b611f1c565b34801561094657600080fd5b5060125462010000900460ff16610403565b34801561096457600080fd5b506104386109733660046134a4565b6120bd565b34801561098457600080fd5b5061046e61216b565b34801561099957600080fd5b506104386109a83660046130f7565b612178565b3480156109b957600080fd5b506104386109c83660046134d7565b6121c5565b3480156109d957600080fd5b506104386109e83660046130f7565b612209565b3480156109f957600080fd5b5061046e612256565b348015610a0e57600080fd5b50610a22610a1d3660046130f7565b612263565b60405161040f9190613553565b348015610a3b57600080fd5b5061044b6122d8565b348015610a5057600080fd5b5061044b610a5f366004613151565b6001600160a01b031660009081526017602052604090205490565b348015610a8657600080fd5b5061046e610a953660046130f7565b6122f2565b348015610aa657600080fd5b5061044b60105481565b348015610abc57600080fd5b50610438610acb366004613589565b612473565b348015610adc57600080fd5b50610438610aeb366004613071565b6125a4565b348015610afc57600080fd5b5060145461044b565b348015610b1157600080fd5b5061046e612606565b348015610b2657600080fd5b50610403610b353660046135f5565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b610438610b7136600461361f565b612657565b348015610b8257600080fd5b50610438610b91366004613151565b612708565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161480610bf957507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b80610c2d57507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6008546001600160a01b03163314610c805760405162461bcd60e51b8152602060048201819052602482015260008051602061384b83398151915260448201526064015b60405180910390fd5b60128054911515620100000262ff000019909216919091179055565b606060028054610cab90613642565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd790613642565b8015610d245780601f10610cf957610100808354040283529160200191610d24565b820191906000526020600020905b815481529060010190602001808311610d0757829003601f168201915b5050505050905090565b6000610d39826127d5565b610d6f576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610d968261280a565b9050806001600160a01b0316836001600160a01b031603610de3576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336001600160a01b03821614610e50576001600160a01b038116600090815260076020908152604080832033845290915290205460ff16610e50576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6008546001600160a01b03163314610f015760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b8051610f1490600b906020840190612f90565b5050565b6008546001600160a01b03163314610f605760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b6012805460ff1916911515919091179055565b610f7e838383612892565b505050565b601254819060ff1615610fd85760405162461bcd60e51b815260206004820152601260248201527f4d696e74696e67206973205041555345442100000000000000000000000000006044820152606401610c77565b600081118015610fe9575060115481105b6110355760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610c77565b33321461106f5760405162461bcd60e51b81526020600482015260086024820152674e6f20426f74732160c01b6044820152606401610c77565b601054600154600054839190036000190161108a9190613692565b106110ce5760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b6044820152606401610c77565b601654600154600054036000190110156110ed576014546013556110f4565b6015546013555b6016546001546000540360001901108015611127575060165460015460005483919003600019016111259190613692565b115b15611172576000601654826111456001546000546000199190030190565b61114f9190613692565b61115991906136aa565b905080600e5461116991906136c1565b600f55506111cf565b601654600154600054839190036000190161118d9190613692565b11156111a95780600e546111a191906136c1565b600f556111cf565b60165460015460005483919003600019016111c49190613692565b116111cf576000600f555b600f543410156112215760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e742066756e647321000000000000000000000000006044820152606401610c77565b6013543360009081526017602052604090205461123f908390613692565b1061128c5760405162461bcd60e51b815260206004820152601d60248201527f4d6178204d696e7473205065722057616c6c65742052656163686564210000006044820152606401610c77565b60125462010000900460ff161561141b576040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050611317858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506018549150849050612adb565b6113635760405162461bcd60e51b815260206004820152601460248201527f4e6f74206f6e207468652057686974656c6973740000000000000000000000006044820152606401610c77565b6040516bffffffffffffffffffffffff193360601b166020820152819060340160405160208183030381529060405280519060200120146113e65760405162461bcd60e51b815260206004820152601060248201527f4e617567687479204e61756768747921000000000000000000000000000000006044820152606401610c77565b3360009081526017602052604081208054859290611405908490613692565b9091555061141590503384612af1565b5061145a565b60125462010000900460ff1661145a57336000908152601760205260408120805484929061144a908490613692565b9091555061145a90503383612af1565b50505050565b601254819060ff16156114b55760405162461bcd60e51b815260206004820152601260248201527f4d696e74696e67206973205041555345442100000000000000000000000000006044820152606401610c77565b6000811180156114c6575060115481105b6115125760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610c77565b33321461154c5760405162461bcd60e51b81526020600482015260086024820152674e6f20426f74732160c01b6044820152606401610c77565b60105460015460005483919003600019016115679190613692565b106115ab5760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b6044820152606401610c77565b601654600154600054036000190110156115ca576014546013556115d1565b6015546013555b6016546001546000540360001901108015611604575060165460015460005483919003600019016116029190613692565b115b1561164f576000601654826116226001546000546000199190030190565b61162c9190613692565b61163691906136aa565b905080600e5461164691906136c1565b600f55506116ac565b601654600154600054839190036000190161166a9190613692565b11156116865780600e5461167e91906136c1565b600f556116ac565b60165460015460005483919003600019016116a19190613692565b116116ac576000600f555b600f543410156116fe5760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e742066756e647321000000000000000000000000006044820152606401610c77565b6013543360009081526017602052604090205461171c908390613692565b106117695760405162461bcd60e51b815260206004820152601d60248201527f4d6178204d696e7473205065722057616c6c65742052656163686564210000006044820152606401610c77565b60125462010000900460ff16156117c25760405162461bcd60e51b815260206004820152601860248201527f5374696c6c20696e2057686974656c6973742053616c652100000000000000006044820152606401610c77565b33600090815260176020526040812080548492906117e1908490613692565b90915550610f1490503383612af1565b6008546001600160a01b031633146118395760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b600061184d6008546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114611897576040519150601f19603f3d011682016040523d82523d6000602084013e61189c565b606091505b50509050806118aa57600080fd5b50565b610f7e838383604051806020016040528060008152506121c5565b606060006118d583611c0a565b905060008167ffffffffffffffff8111156118f2576118f261316c565b60405190808252806020026020018201604052801561191b578160200160208202803683370190505b509050600160005b838110801561193457506010548211155b1561199e57600061194483611bb2565b9050866001600160a01b0316816001600160a01b03160361198b5782848381518110611972576119726136e0565b602090810291909101015281611987816136f6565b9250505b82611995816136f6565b93505050611923565b5090949350505050565b6008546001600160a01b031633146119f05760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b600f55565b6008546001600160a01b03163314611a3d5760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b8051610f1490600d906020840190612f90565b600b8054611a5d90613642565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8990613642565b8015611ad65780601f10611aab57610100808354040283529160200191611ad6565b820191906000526020600020905b815481529060010190602001808311611ab957829003601f168201915b505050505081565b805160609060008167ffffffffffffffff811115611afe57611afe61316c565b604051908082528060200260200182016040528015611b4957816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181611b1c5790505b50905060005b828114611b9d57611b78858281518110611b6b57611b6b6136e0565b6020026020010151612263565b828281518110611b8a57611b8a6136e0565b6020908102919091010152600101611b4f565b509392505050565b600a8054611a5d90613642565b6000610c2d8261280a565b6008546001600160a01b03163314611c055760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601555565b600081600003611c46576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6008546001600160a01b03163314611cb45760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b611cbe6000612b0b565b565b6008546001600160a01b03163314611d085760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601855565b6008546001600160a01b03163314611d555760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b8051610f1490600a906020840190612f90565b6008546001600160a01b03163314611db05760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601455565b60606000806000611dc585611c0a565b905060008167ffffffffffffffff811115611de257611de261316c565b604051908082528060200260200182016040528015611e0b578160200160208202803683370190505b50604080516060810182526000808252602082018190529181019190915290915060015b838614611ea657611e3f81612b6a565b91508160400151611e9e5781516001600160a01b031615611e5f57815194505b876001600160a01b0316856001600160a01b031603611e9e5780838780600101985081518110611e9157611e916136e0565b6020026020010181815250505b600101611e2f565b50909695505050505050565b6008546001600160a01b03163314611efa5760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b8051610f1490600c906020840190612f90565b606060038054610cab90613642565b6060818310611f57576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080611f6360005490565b90506001851015611f7357600194505b80841115611f7f578093505b6000611f8a87611c0a565b905084861015611fa95785850381811015611fa3578091505b50611fad565b5060005b60008167ffffffffffffffff811115611fc857611fc861316c565b604051908082528060200260200182016040528015611ff1578160200160208202803683370190505b509050816000036120075793506120b692505050565b600061201288612263565b905060008160400151612023575080515b885b8881141580156120355750848714155b156120aa5761204381612b6a565b925082604001516120a25782516001600160a01b03161561206357825191505b8a6001600160a01b0316826001600160a01b0316036120a25780848880600101995081518110612095576120956136e0565b6020026020010181815250505b600101612025565b50505092835250909150505b9392505050565b336001600160a01b038316036120ff576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600d8054611a5d90613642565b6008546001600160a01b031633146121c05760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601155565b6121d0848484612892565b6001600160a01b0383163b1561145a576121ec84848484612bd5565b61145a576040516368d2bf6b60e11b815260040160405180910390fd5b6008546001600160a01b031633146122515760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601655565b600c8054611a5d90613642565b604080516060808201835260008083526020808401829052838501829052845192830185528183528201819052928101929092529060018310806122a957506000548310155b156122b45792915050565b6122bd83612b6a565b90508060400151156122cf5792915050565b6120b683612cc1565b60006122ed6001546000546000199190030190565b905090565b60606122fd826127d5565b61236f5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610c77565b601254610100900460ff16151560000361241557600d805461239090613642565b80601f01602080910402602001604051908101604052809291908181526020018280546123bc90613642565b80156124095780601f106123de57610100808354040283529160200191612409565b820191906000526020600020905b8154815290600101906020018083116123ec57829003601f168201915b50505050509050919050565b600061241f612d25565b9050600081511161243f57604051806020016040528060008152506120b6565b8061244984612d34565b600b60405160200161245d939291906137a8565b6040516020818303038152906040529392505050565b6008546001600160a01b031633146124bb5760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b60005b8381101561259d576010548383838181106124db576124db6136e0565b905060200201356124f56001546000546000199190030190565b6124ff9190613692565b106125435760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b6044820152606401610c77565b61258b858583818110612558576125586136e0565b905060200201602081019061256d9190613151565b84848481811061257f5761257f6136e0565b90506020020135612af1565b80612595816136f6565b9150506124be565b5050505050565b6008546001600160a01b031633146125ec5760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b601280549115156101000261ff0019909216919091179055565b60606000600c805461261790613642565b905011612631575060408051602081019091526000815290565b600c60405160200161264391906137e5565b604051602081830303815290604052905090565b6008546001600160a01b0316331461269f5760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b60105460015460005484919003600019016126ba9190613692565b106126fe5760405162461bcd60e51b81526020600482015260146024820152734d617820737570706c792065786365656465642160601b6044820152606401610c77565b610f148183612af1565b6008546001600160a01b031633146127505760405162461bcd60e51b8152602060048201819052602482015260008051602061384b8339815191526044820152606401610c77565b6001600160a01b0381166127cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c77565b6118aa81612b0b565b6000816001111580156127e9575060005482105b8015610c2d575050600090815260046020526040902054600160e01b161590565b60008180600111612860576000548110156128605760008181526004602052604081205490600160e01b8216900361285e575b806000036120b657506000190160008181526004602052604090205461283d565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061289d8261280a565b9050836001600160a01b0316816001600160a01b0316146128ea576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600660205260408120546001600160a01b039081169190861633148061293857506001600160a01b038616600090815260076020908152604080832033845290915290205460ff165b8061294b57506001600160a01b03821633145b905080612984576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846000036129be576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156129ee576000848152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b6001600160a01b0386811660009081526005602090815260408083208054600019019055928816825282822080546001019055868252600490529081207c02000000000000000000000000000000000000000000000000000000004260a01b8817811790915584169003612a9257600184016000818152600460205260408120549003612a90576000548114612a905760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b600082612ae88584612d83565b14949350505050565b610f14828260405180602001604052806000815250612def565b600880546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160608101825260008082526020820181905291810191909152600082815260046020526040902054610c2d90604080516060810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b90921615159082015290565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290612c0a9033908990889088906004016137f1565b6020604051808303816000875af1925050508015612c45575060408051601f3d908101601f19168201909252612c429181019061382d565b60015b612ca3573d808015612c73576040519150601f19603f3d011682016040523d82523d6000602084013e612c78565b606091505b508051600003612c9b576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6040805160608101825260008082526020820181905291810191909152610c2d612cea8361280a565b604080516060810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b90921615159082015290565b6060600a8054610cab90613642565b604080516080810191829052607f0190826030600a8206018353600a90045b8015612d7157600183039250600a81066030018353600a9004612d53565b50819003601f19909101908152919050565b600081815b8451811015611b9d576000858281518110612da557612da56136e0565b60200260200101519050808311612dcb5760008381526020829052604090209250612ddc565b600081815260208490526040902092505b5080612de7816136f6565b915050612d88565b60005483600003612e2c576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003612e66576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841660008181526005602090815260408083208054680100000000000000018902019055848352600490915290204260a01b86176001861460e11b1790558190818501903b15612f3b575b60405182906001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4612f046000878480600101955087612bd5565b612f21576040516368d2bf6b60e11b815260040160405180910390fd5b808210612eb9578260005414612f3657600080fd5b612f80565b5b6040516001830192906001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4808210612f3c575b50600090815561145a9085838684565b828054612f9c90613642565b90600052602060002090601f016020900481019282612fbe5760008555613004565b82601f10612fd757805160ff1916838001178555613004565b82800160010185558215613004579182015b82811115613004578251825591602001919060010190612fe9565b50613010929150613014565b5090565b5b808211156130105760008155600101613015565b6001600160e01b0319811681146118aa57600080fd5b60006020828403121561305157600080fd5b81356120b681613029565b8035801515811461306c57600080fd5b919050565b60006020828403121561308357600080fd5b6120b68261305c565b60005b838110156130a757818101518382015260200161308f565b8381111561145a5750506000910152565b600081518084526130d081602086016020860161308c565b601f01601f19169290920160200192915050565b6020815260006120b660208301846130b8565b60006020828403121561310957600080fd5b5035919050565b80356001600160a01b038116811461306c57600080fd5b6000806040838503121561313a57600080fd5b61314383613110565b946020939093013593505050565b60006020828403121561316357600080fd5b6120b682613110565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156131ab576131ab61316c565b604052919050565b600067ffffffffffffffff8311156131cd576131cd61316c565b6131e0601f8401601f1916602001613182565b90508281528383830111156131f457600080fd5b828260208301376000602084830101529392505050565b60006020828403121561321d57600080fd5b813567ffffffffffffffff81111561323457600080fd5b8201601f8101841361324557600080fd5b612cb9848235602084016131b3565b60008060006060848603121561326957600080fd5b61327284613110565b925061328060208501613110565b9150604084013590509250925092565b60008083601f8401126132a257600080fd5b50813567ffffffffffffffff8111156132ba57600080fd5b6020830191508360208260051b85010111156132d557600080fd5b9250929050565b6000806000604084860312156132f157600080fd5b833567ffffffffffffffff81111561330857600080fd5b61331486828701613290565b909790965060209590950135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611ea657835183529284019291840191600101613344565b6000602080838503121561337357600080fd5b823567ffffffffffffffff8082111561338b57600080fd5b818501915085601f83011261339f57600080fd5b8135818111156133b1576133b161316c565b8060051b91506133c2848301613182565b81815291830184019184810190888411156133dc57600080fd5b938501935b838510156133fa578435825293850193908501906133e1565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611ea65761345e83855180516001600160a01b0316825260208082015167ffffffffffffffff16908301526040908101511515910152565b9284019260609290920191600101613422565b60008060006060848603121561348657600080fd5b61348f84613110565b95602085013595506040909401359392505050565b600080604083850312156134b757600080fd5b6134c083613110565b91506134ce6020840161305c565b90509250929050565b600080600080608085870312156134ed57600080fd5b6134f685613110565b935061350460208601613110565b925060408501359150606085013567ffffffffffffffff81111561352757600080fd5b8501601f8101871361353857600080fd5b613547878235602084016131b3565b91505092959194509250565b81516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260608101610c2d565b6000806000806040858703121561359f57600080fd5b843567ffffffffffffffff808211156135b757600080fd5b6135c388838901613290565b909650945060208701359150808211156135dc57600080fd5b506135e987828801613290565b95989497509550505050565b6000806040838503121561360857600080fd5b61361183613110565b91506134ce60208401613110565b6000806040838503121561363257600080fd5b823591506134ce60208401613110565b600181811c9082168061365657607f821691505b60208210810361367657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156136a5576136a561367c565b500190565b6000828210156136bc576136bc61367c565b500390565b60008160001904831182151516156136db576136db61367c565b500290565b634e487b7160e01b600052603260045260246000fd5b6000600182016137085761370861367c565b5060010190565b8054600090600181811c908083168061372957607f831692505b6020808410820361374a57634e487b7160e01b600052602260045260246000fd5b81801561375e576001811461376f5761379c565b60ff1986168952848901965061379c565b60008881526020902060005b868110156137945781548b82015290850190830161377b565b505084890196505b50505050505092915050565b600084516137ba81846020890161308c565b8451908301906137ce81836020890161308c565b6137da8183018661370f565b979650505050505050565b60006120b6828461370f565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261382360808301846130b8565b9695505050505050565b60006020828403121561383f57600080fd5b81516120b68161302956fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212205909a9fa7a8049d02f8cd05ce01cabb6665c58e7916fc21b9aff34b05a22f68464736f6c634300080e00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657268747470733a2f2f7777772e73757072656d65626f6e6573782e696f2f68696464656e4d6574612e6a736f6e68747470733a2f2f7777772e73757072656d6573626f6e6573782e696f2f736278636f6e74726163742e6a736f6e