60806040526003805460a060020a60ff021916905534801561002057600080fd5b5060038054600160a060020a031916339081179091556b033b2e3c9fd0803ce800000060008181559182526001602052604090912055610f3e806100656000396000f3006080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610116578063095ea7b3146101a057806318160ddd146101d85780631f49caac146101ff57806323b872dd14610214578063313ce5671461023e578063399d6465146102535780633f4ba83a1461027457806347ec81381461028957806356f2f140146102b85780635c975abb146102d95780636e53909a146102ee57806370a08231146103145780638456cb59146103355780638da5cb5b1461034a57806395d89b4114610116578063a9059cbb1461037b578063bb6e85db1461039f578063dd62ed3e146103e7578063f2fde38b1461040e575b600080fd5b34801561012257600080fd5b5061012b61042f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016557818101518382015260200161014d565b50505050905090810190601f1680156101925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ac57600080fd5b506101c4600160a060020a0360043516602435610466565b604080519115158252519081900360200190f35b3480156101e457600080fd5b506101ed610508565b60408051918252519081900360200190f35b34801561020b57600080fd5b506101c461050e565b34801561022057600080fd5b506101c4600160a060020a0360043581169060243516604435610525565b34801561024a57600080fd5b506101ed61058c565b34801561025f57600080fd5b506101ed600160a060020a0360043516610591565b34801561028057600080fd5b506101c4610659565b34801561029557600080fd5b506102b6600160a060020a036004351660243563ffffffff604435166106d8565b005b3480156102c457600080fd5b506101ed600160a060020a03600435166109b5565b3480156102e557600080fd5b506101c46109d0565b3480156102fa57600080fd5b506102b6600160a060020a036004351660243515156109e0565b34801561032057600080fd5b506101ed600160a060020a0360043516610a4b565b34801561034157600080fd5b506101c4610a66565b34801561035657600080fd5b5061035f610aea565b60408051600160a060020a039092168252519081900360200190f35b34801561038757600080fd5b506101c4600160a060020a0360043516602435610af9565b3480156103ab57600080fd5b506103c9600160a060020a036004351663ffffffff60243516610b55565b6040805192835263ffffffff90911660208301528051918290030190f35b3480156103f357600080fd5b506101ed600160a060020a0360043581169060243516610c14565b34801561041a57600080fd5b506102b6600160a060020a0360043516610c3f565b60408051808201909152600381527f4646430000000000000000000000000000000000000000000000000000000000602082015281565b60008115806104965750336000908152600260209081526040808320600160a060020a0387168452909152902054155b15156104a157600080fd5b336000818152600260209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005481565b3360009081526005602052604090205460ff165b90565b60035460009060a060020a900460ff161561053f57600080fd5b8161057161054c33610591565b600160a060020a0387166000908152600160205260409020549063ffffffff610cd416565b101561057957fe5b610584848484610ce6565b949350505050565b601281565b600080805b600160a060020a03841660009081526004602052604090205463ffffffff8216101561065257600160a060020a0384166000908152600460205260409020805442919063ffffffff84169081106105e957fe5b600091825260209091206001600290920201015463ffffffff16111561064a57600160a060020a0384166000908152600460205260409020805463ffffffff831690811061063357fe5b906000526020600020906002020160000154820191505b600101610596565b5092915050565b600354600090600160a060020a0316331461067357600080fd5b60035460a060020a900460ff16151561068b57600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a150600190565b600354600090819060a060020a900460ff16156106f457600080fd5b3360009081526005602052604090205460ff16151560011461071257fe5b4263ffffffff84161161072157fe5b61072b8585610af9565b5060019150600090505b600160a060020a03851660009081526004602052604090205463ffffffff8216101561089557600160a060020a0385166000908152600460205260409020805442919063ffffffff841690811061078857fe5b600091825260209091206001600290920201015463ffffffff16101561088d57600160a060020a0385166000908152600460205260409020805484919063ffffffff84169081106107d557fe5b60009182526020808320600292909202909101600101805463ffffffff191663ffffffff948516179055600160a060020a0388168252600490526040902080548692841690811061082257fe5b6000918252602091829020600290910201919091556040805186815263ffffffff8616928101929092528051600160a060020a0388169233927fcca13628a39fb6f93b19dcd48c288605d535eb491cacb43ab1a509aec720785a92918290030190a360009150610895565b600101610735565b600182151514156109ae57600160a060020a03851660009081526004602052604090208054906108c89060018301610eb4565b50600160a060020a0385166000908152600460205260409020805484919060001981019081106108f457fe5b60009182526020808320600292909202909101600101805463ffffffff191663ffffffff9490941693909317909255600160a060020a03871681526004909152604090208054859190600019810190811061094b57fe5b6000918252602091829020600290910201919091556040805186815263ffffffff8616928101929092528051600160a060020a0388169233927fcca13628a39fb6f93b19dcd48c288605d535eb491cacb43ab1a509aec720785a92918290030190a35b5050505050565b600160a060020a031660009081526004602052604090205490565b60035460a060020a900460ff1681565b600354600160a060020a031633146109f757600080fd5b600160a060020a03821660009081526005602052604090205460ff1615158115151415610a2057fe5b600160a060020a03919091166000908152600560205260409020805460ff1916911515919091179055565b600160a060020a031660009081526001602052604090205490565b600354600090600160a060020a03163314610a8057600080fd5b60035460a060020a900460ff1615610a9757600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a150600190565b600354600160a060020a031681565b60035460009060a060020a900460ff1615610b1357600080fd5b81610b3c610b2033610591565b336000908152600160205260409020549063ffffffff610cd416565b1015610b4457fe5b610b4e8383610df5565b9392505050565b600160a060020a038216600090815260046020526040812054819063ffffffff841610610b8757506000905080610c0d565b600160a060020a0384166000908152600460205260409020805463ffffffff8516908110610bb157fe5b60009182526020808320600290920290910154600160a060020a03871683526004909152604090912080549193509063ffffffff8516908110610bf057fe5b600091825260209091206001600290920201015463ffffffff1690505b9250929050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a03163314610c5657600080fd5b600160a060020a0381161515610c6b57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115610ce057fe5b50900390565b600160a060020a03808416600090815260026020908152604080832033845282528083205493861683526001909152812054909190610d2b908463ffffffff610ea516565b600160a060020a038086166000908152600160205260408082209390935590871681522054610d60908463ffffffff610cd416565b600160a060020a038616600090815260016020526040902055610d89818463ffffffff610cd416565b600160a060020a03808716600081815260026020908152604080832033845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506001949350505050565b33600090815260016020526040812054610e15908363ffffffff610cd416565b3360009081526001602052604080822092909255600160a060020a03851681522054610e47908363ffffffff610ea516565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600082820183811015610b4e57fe5b815481835581811115610ee057600202816002028360005260206000209182019101610ee09190610ee5565b505050565b61052291905b80821115610f0e576000815560018101805463ffffffff19169055600201610eeb565b50905600a165627a7a72305820a1ac9638fa0d4e7a4bfd03277ed42ae42f8bf4294b234bd978884c0bd0c04ec30029